הטמעה של בידינג בהתאמה אישית

אפשר להשתמש ב-Display & Video 360 API כדי לנהל הטמעות של בידינג בהתאמה אישית. אתם יכולים ליצור אלגוריתמים של בידינג בהתאמה אישית, להעלות ולאמת סקריפטים בודדים ולהקצות אלגוריתם ספציפי למשאב כשיטת הבידינג שלו.

במאמר הזה מוסבר איך ליצור, לעדכן ולהקצות אלגוריתמים של הצעות מחיר מותאמות אישית באמצעות Display & Video 360 API. בכל קטע מופיעה דוגמת קוד.

יצירה של אלגוריתם בידינג בהתאמה אישית

אובייקט CustomBiddingAlgorithm מייצג אלגוריתם ספציפי שאפשר להקצות לפריט הזמנה לשימוש בשיטת הבידינג שלו. האובייקט הזה כולל פרטים על האלגוריתם, כמו customBiddingAlgorithmType,‏ entityStatus וcustomBiddingAlgorithmState. אפשר ליצור אובייקטים של CustomBiddingScript כמשאבי צאצא לשימוש האלגוריתם.

דוגמה לאופן שבו יוצרים אלגוריתם מותאם אישית לבידינג מבוסס-סקריפט:

Python

# Create a custom bidding algorithm object.
custom_bidding_algorithm_obj = {
    'advertiserId': advertiser-id,
    'displayName': display-name,
    'entityStatus': 'ENTITY_STATUS_ACTIVE',
    'customBiddingAlgorithmType': 'SCRIPT_BASED'
}

# Create the custom bidding algorithm.
response = service.customBiddingAlgorithms().create(
    body=algorithm_obj
).execute()

# Display the new custom bidding algorithm.
print(f'The following Custom Bidding Algorithm was created: {response}')

ניהול הגישה לאלגוריתמים

אלגוריתמים של בידינג בהתאמה אישית יכולים להיות בבעלות של שותף או מפרסם. שותף יכול לגשת לאלגוריתמים שבבעלותו ולשנות אותם, וגם כל מפרסם צאצא שמופיע בשדה sharedAdvertiserIds. מפרסם ושותף האב שלו יכולים לגשת לאלגוריתמים שבבעלות המפרסם ולשנות אותם, אבל הם לא יכולים לשתף אותם עם מפרסמים אחרים.

אם אתם משתמשים באלגוריתם רק עבור מפרסם אחד, צריך להקצות את המפרסם כבעלים באמצעות השדה advertiserId. אחרת, צריך להקצות את שותף ההורה של המפרסמים כבעלים באמצעות השדה partnerId, ולהעניק למפרסמים גישה באמצעות השדה sharedAdvertiserIds.

העלאת סקריפט

אחרי שיוצרים אלגוריתם בידינג בהתאמה אישית, צריך ליצור סקריפט לשימוש באלגוריתם הזה. אלגוריתמים של בידינג בהתאמה אישית שמבוססים על סקריפטים משתמשים בסקריפטים שהמשתמש מספק כדי להעריך את השווי של חשיפה. דוגמאות לסקריפטים פשוטים ורשימה של שדות מתקדמים זמינות במרכז העזרה של Display & Video 360.

בקטעים הבאים מוסבר איך להוסיף סקריפט חדש או מעודכן לאלגוריתם מותאם אישית לבידינג.

אחזור מיקום של משאב בסקריפט

קודם כל, מאחזרים מיקום משאב זמין מתחת למשאב של אלגוריתם הבידינג המותאם אישית באמצעות השיטה customBiddingAlgorithms.uploadScript. הבקשה הזו מחזירה אובייקט CustomBiddingScriptRef עם שם משאב. אתם יכולים להעלות את קובץ הסקריפט למיקום שנקבע לפי שם המשאב. לאחר מכן משתמשים באובייקט ההפניה של סקריפט הבידינג המותאם אישית כדי ליצור את משאב הסקריפט.

דוגמה לאחזור מיקום של משאב זמין:

Python

# Retrieve a usable custom bidding script reference
# object.
custom_bidding_script_ref = service.customBiddingAlgorithms().uploadScript(
    customBiddingAlgorithmId=custom-bidding-algorithm-id,
    advertiserId=advertiser-id
).execute()

# Display the new custom bidding script reference object.
print('The following custom bidding script reference object was retrieved:'
      f'{custom_bidding_script_ref}')

העלאה של קובץ סקריפט

אחרי שמקבלים את המיקום של משאב זמין, מעלים את קובץ הסקריפט למיקום הזה במערכת Display & Video 360 באמצעות השיטה media.upload. השיטה הזו תומכת בהעלאה פשוטה שדורשת את פרמטר השאילתה uploadType=media.

דוגמה להעלאת קובץ סקריפט אחרי אחזור של אובייקט הפניה של סקריפט מותאם אישית לבידינג:

Python

# Create a media upload object.
media = MediaFileUpload(script-path)

# Create upload request.
upload_request = service.media().upload(
    resourceName=resource-name, media_body=media)

# Override response handler to expect null response.
upload_request.postproc = HttpRequest.null_postproc

# Upload script to resource location given in retrieved custom bidding
# script reference object.
upload_request.execute()

יצירת אובייקט סקריפט

אחרי שמעלים את קובץ הסקריפט, יוצרים משאב של סקריפט בידינג בהתאמה אישית באמצעות ה-method‏ customBiddingAlgorithms.scripts.create. אובייקט CustomBiddingScript שמועבר בבקשה צריך לכלול רק את אובייקט CustomBiddingScriptRef כערך שהוקצה לשדה script. הפעולה הזו משייכת את קובץ הסקריפט שהועלה למשאב הסקריפט החדש.

דוגמה לאופן שבו יוצרים קובץ סקריפט:

Python

# Create a custom bidding script object.
script_obj = {
    'script': custom-bidding-script-ref
}

# Create the custom bidding script.
response = service.customBiddingAlgorithms().scripts().create(
    customBiddingAlgorithmId=custom-bidding-algorithm-id,
    advertiserId=advertiser-id,
    body=script_obj).execute()

# Display the new custom bidding script object.
print(f'The following custom bidding script was created: {response}')

אחרי שיוצרים משאב של סקריפט לבידינג בהתאמה אישית, מערכת Display & Video 360 מעבדת את הסקריפט כדי לוודא שאפשר להשתמש בו בהצלחה לדירוג חשיפות. אפשר לאחזר את מצב העיבוד הזה באמצעות השדה state של אובייקט הסקריפט. אחרי שמקבלים את הסקריפט החדש, אלגוריתם הבידינג המותאם אישית מתחיל להשתמש בסקריפט כדי לתת ניקוד לערכי החשיפות. הפעולה הזו מתבצעת באופן מיידי, לכן חשוב לוודא שרוצים לעדכן את האלגוריתם לפני שיוצרים משאב סקריפט חדש.

הקצאת אלגוריתם של בידינג בהתאמה אישית

אחרי שיוצרים אלגוריתם בידינג בהתאמה אישית, מעלים סקריפט שאושר ועומדים בדרישות הנדרשות, אפשר להקצות את אלגוריתם הבידינג בהתאמה אישית לשיטת הבידינג של פריט קו או של הזמנת קמפיין.

אתם יכולים להשתמש באלגוריתמים של בידינג בהתאמה אישית בשיטות הבידינג מיקסום ההוצאות ויעד ביצועים. לשם כך, צריך להקצות את BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO ואת מזהה האלגוריתם של הבידינג בהתאמה אישית לשדות performanceGoalType ו-customBiddingAlgorithmId, בהתאמה. בהתאם לשיטת הבידינג, יכול להיות שיהיו פרמטרים אחרים של הצעות מחיר שיהיו זמינים או שיידרשו.

הנה דוגמה לאופן שבו מעדכנים פריט קו כדי להשתמש בשיטת הבידינג 'מקסימום הוצאות' עם אלגוריתם מותאם אישית לבידינג:

Python

# Create the new bid strategy object.
bidding_strategy = {
    'maximizeSpendAutoBid': {
        'performanceGoalType':
            'BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO',
        'customBiddingAlgorithmId': custom-bidding-algorithm-id
    }
}

# Create a line item object assigning the new bid strategy.
line_item_obj = {'bidStrategy': bidding_strategy}

# Update the line item with a new bid strategy.
response = service.advertisers().lineItems().patch(
    advertiserId=advertiser-id,
    lineItemId=line-item-id,
    updateMask='bidStrategy',
    body=line_item_obj).execute()

# Display the line item's new bid strategy
print(f'Line Item {response["name"]} is now using the following bid'
     f' strategy: {response["bidStrategy"]}.')