טירגוט

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

שימוש בירושה של טירגוט

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

אפשר לראות את נתיב הירושה בתרשים הבא:

תרשים ירושה של טירגוט

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

ירושה ב-YouTube וב- מקורות מידע של שותפים

טירגוט בירושה לא משתקף ב-YouTube מקורות המידע של השותפים ב- תצוגה ו Video 360 API טירגוט שעבר בירושה על ידי קבוצות של מודעות לא יהיה אחזור ברמת AdGroup וטירגוט של YouTube שמוקצים למשאבי הורים לא יעברו בירושה למשאבי צאצאים.

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

חשוב לשים לב לטירגוט שהוקצה בזמן יצירת הפריט

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

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

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

אל תצפו ל'טירגוט ברירת מחדל' אוטומטי

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

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

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

YouTube ו- לא ניתן לשנות את הטירגוט של השותפים

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

YouTube ו- טירגוט לשותפים כולל את כל הגדרות הטירגוט שהוקצו ישירות אל YouTube ו- פריטי Partners וקבוצות מודעות, וגם כל טירגוט מסוגי הטירגוט הבאים:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

ניתן לעדכן טירגוט זה באמצעות ממשק המשתמש של Video 360 באופן ישיר או באמצעות העלאת קובץ נתונים מובנים.

הקצאת טירגוט לפי קהל עם אפשרות אחת

אפשרויות הטירגוט של רוב סוגי הטירגוט מוקצות בנפרד. קהל היעד טירגוט קבוצתי אינו תואם למוסכמה מודולרית זו, אלא מוקצה במקום זאת בקובץ יחיד שניתן להגדיר אובייקט Audience group details (פרטי טירגוט לפי קבוצות קהלים) שמציין את מזהים של קהלים שצריך לכלול ולא לכלול בעת הצגת מודעות. assignedTargetingOptionId לאפשרות הזו של קבוצת יעד, לאחר ההקצאה, הוא תמיד "audienceGroup".

המשמעות של העיצוב הזה היא שכל שינוי בטירגוט של קבוצות קהלים חייב להתבצע עד קודם צריך למחוק את קבוצת היעד הקיימת שהוקצתה אפשרות הטירגוט, ואז ליצור קבוצת יעד חדשה אפשרות הטירגוט עם השינויים הרצויים. אפשר לעשות זאת בבקשה אחת באמצעות advertisers.lineItems.bulkEditAssignedTargetingOptions

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

Java

long advertiserId = advertiser-id;
long lineItemId = line-item-id
List<Long> addedGoogleAudienceIds =
    Arrays.asList(google-audience-id-to-add,...);

// Build Google audience targeting settings objects to add to audience
// targeting.
ArrayList<GoogleAudienceTargetingSetting> newGoogleAudienceSettings =
    new ArrayList<GoogleAudienceTargetingSetting>();

// Convert list of Google Audience IDs into list of settings.
for (Long googleAudienceId : addedGoogleAudienceIds) {
  newGoogleAudienceSettings.add(new GoogleAudienceTargetingSetting()
      .setGoogleAudienceId(googleAudienceId));
}

// Create relevant bulk edit request objects.
BulkEditLineItemAssignedTargetingOptionsRequest requestContent =
    new BulkEditLineItemAssignedTargetingOptionsRequest();
AudienceGroupAssignedTargetingOptionDetails updatedAudienceGroupDetails;
ArrayList<DeleteAssignedTargetingOptionsRequest> audienceGroupDeleteRequests =
    new ArrayList<DeleteAssignedTargetingOptionsRequest>();

try {
  // Retrieve existing audience group targeting.
  AssignedTargetingOption existingAudienceGroupTargetingOption =
      service
          .advertisers()
          .lineItems()
          .targetingTypes()
          .assignedTargetingOptions()
          .get(
              advertiserId,
              lineItemId,
              "TARGETING_TYPE_AUDIENCE_GROUP",
              "audienceGroup"
          ).execute();

  // Extract existing audience group targeting details.
  updatedAudienceGroupDetails =
      existingAudienceGroupTargetingOption.getAudienceGroupDetails();

  // Build and add delete request for existing audience group targeting.
  ArrayList<String> deleteAudienceGroupAssignedTargetingIds =
      new ArrayList<String>();
  deleteAudienceGroupAssignedTargetingIds.add("audienceGroup");

  audienceGroupDeleteRequests
      .add(new DeleteAssignedTargetingOptionsRequest()
          .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP")
          .setAssignedTargetingOptionIds(
              deleteAudienceGroupAssignedTargetingIds
          )
      );
}
catch (GoogleJsonResponseException e) {
  updatedAudienceGroupDetails =
      new AudienceGroupAssignedTargetingOptionDetails();
}

// Set delete requests in edit request.
requestContent.setDeleteRequests(audienceGroupDeleteRequests);

// Construct new group of Google Audiences to include in targeting.
GoogleAudienceGroup updatedIncludedGoogleAudienceGroup =
    updatedAudienceGroupDetails.getIncludedGoogleAudienceGroup();
if (updatedIncludedGoogleAudienceGroup != null) {
  List<GoogleAudienceTargetingSetting> updatedGoogleAudienceSettings =
      updatedIncludedGoogleAudienceGroup.getSettings();
  updatedGoogleAudienceSettings.addAll(newGoogleAudienceSettings);
  updatedIncludedGoogleAudienceGroup
      .setSettings(updatedGoogleAudienceSettings);
} else {
  updatedIncludedGoogleAudienceGroup = new GoogleAudienceGroup();
  updatedIncludedGoogleAudienceGroup.setSettings(newGoogleAudienceSettings);
}

// Add new Google Audience group to audience group targeting details.
updatedAudienceGroupDetails
    .setIncludedGoogleAudienceGroup(updatedIncludedGoogleAudienceGroup);

// Create new targeting option to assign.
AssignedTargetingOption newAudienceGroupTargeting =
    new AssignedTargetingOption();
newAudienceGroupTargeting
    .setAudienceGroupDetails(updatedAudienceGroupDetails);

// Build audience group targeting create request and add to list of create
// requests.
ArrayList<AssignedTargetingOption> createAudienceGroupAssignedTargetingOptions =
    new ArrayList<AssignedTargetingOption>();
createAudienceGroupAssignedTargetingOptions.add(newAudienceGroupTargeting);
ArrayList<CreateAssignedTargetingOptionsRequest> targetingCreateRequests =
    new ArrayList<CreateAssignedTargetingOptionsRequest>();
targetingCreateRequests.add(new CreateAssignedTargetingOptionsRequest()
    .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP")
    .setAssignedTargetingOptions(
        createAudienceGroupAssignedTargetingOptions
    )
);

// Set create requests in edit request.
requestContent.setCreateRequests(targetingCreateRequests);

// Configure and execute the bulk list request.
BulkEditLineItemAssignedTargetingOptionsResponse response =
    service.advertisers().lineItems()
        .bulkEditLineItemAssignedTargetingOptions(
            advertiserId,
            lineItemId,
            requestContent).execute();

Python

advertiser_id = advertiser-id
line_item_id = line-item-id
added_google_audiences = [google-audience-id-to-add,...]

# Build Google audience targeting settings objects to create.
new_google_audience_targeting_settings = []
for google_audience_id in added_google_audiences:
 new_google_audience_targeting_settings.append(
     {'googleAudienceId': google_audience_id}
 )

# Retrieve any existing line item audience targeting.
retrieved_audience_targeting = service.advertisers().lineItems(
).targetingTypes().assignedTargetingOptions().get(
   advertiserId=advertiser_id,
   lineItemId=line_item_id,
   targetingType="TARGETING_TYPE_AUDIENCE_GROUP",
   assignedTargetingOptionId="audienceGroup"
).execute()

updated_audience_group_details = {}

# Copy over any existing audience targeting.
if 'audienceGroupDetails' in retrieved_audience_targeting:
 updated_audience_group_details = retrieved_audience_targeting[
     'audienceGroupDetails']

# Append the new Google audience IDs to any existing positive Google
# audience targeting.
if 'includedGoogleAudienceGroup' in updated_audience_group_details:
 updated_audience_group_details[
     'includedGoogleAudienceGroup']['settings'].extend(
         new_google_audience_targeting_settings)
else:
 updated_audience_group_details['includedGoogleAudienceGroup'] = {
     'settings': new_google_audience_targeting_settings
 }

# Build bulk edit request.
bulk_edit_request = {
   'deleteRequests': [
       {
         'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
         'assignedTargetingOptionIds': [
           "audienceGroup"
         ]
       }
   ],
   'createRequests': [
       {
           'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
           'assignedTargetingOptions': [
               {'audienceGroupDetails': updated_audience_group_details}
           ]
       }
   ]
}

# Update the audience targeting
updated_audience_targeting = service.advertisers().lineItems(
).bulkEditLineItemAssignedTargetingOptions(
   advertiserId=advertiser_id,
   lineItemId=line_item_id,
   body=bulk_edit_request
).execute()

PHP

$advertiserId = advertiser-id;
$lineItemId = line-item-id;
$addedGoogleAudienceIds = array(google-audience-id-to-add,...);

// Convert list of Google Audience IDs into list of Google audience
// settings.
$newGoogleAudienceSettings = array();
foreach ($addedGoogleAudienceIds as $googleAudienceId) {
    $newSetting =
        new Google_Service_DisplayVideo_GoogleAudienceTargetingSetting();
    $newSetting->setGoogleAudienceId($googleAudienceId);
    $newGoogleAudienceSettings[] = $newSetting;
}

// Create a bulk edit request.
$requestBody =
    new Google_Service_DisplayVideo_BulkEditLineItemAssignedTargetingOptionsRequest();

$audienceGroupDeleteRequests = array();

try {
    // Retrieve existing audience group targeting.
    $existingAudienceGroupTargetingOption = $this
        ->service
        ->advertisers_lineItems_targetingTypes_assignedTargetingOptions
        ->get(
            $advertiserId,
            $lineItemId,
            'TARGETING_TYPE_AUDIENCE_GROUP',
            'audienceGroup'
        );

    // Extract existing audience group targeting details.
    $updatedAudienceGroupDetails =
        $existingAudienceGroupTargetingOption
            ->getAudienceGroupDetails();

    // Build and add delete request for existing audience group
    // targeting.
    $deleteAudienceGroupAssignedTargetingIds = array();
    $deleteAudienceGroupAssignedTargetingIds[] = "audienceGroup";

    $audienceGroupDeleteRequest =
        new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest();
    $audienceGroupDeleteRequest
        ->setTargetingType('TARGETING_TYPE_AUDIENCE_GROUP');
    $audienceGroupDeleteRequest
        ->setAssignedTargetingOptionIds(
            $deleteAudienceGroupAssignedTargetingIds
        );
    $audienceGroupDeleteRequests[] = $audienceGroupDeleteRequest;
} catch (\Exception $e) {
    $updatedAudienceGroupDetails =
        new Google_Service_DisplayVideo_AudienceGroupAssignedTargetingOptionDetails();
}

// Set delete requests in edit request.
$requestBody->setDeleteRequests($audienceGroupDeleteRequests);

// Construct new group of Google audiences to include in targeting.
$updatedIncludedGoogleAudienceGroup = $updatedAudienceGroupDetails
    ->getIncludedGoogleAudienceGroup();

if (!empty($updatedIncludedGoogleAudienceGroup)) {
    // Get existing settings.
    $updatedGoogleAudienceSettings =
    $updatedIncludedGoogleAudienceGroup->getSettings();

    // Add new Google audiences to existing list.
    $updatedGoogleAudienceSettings = array_merge(
        $updatedGoogleAudienceSettings,
        $newGoogleAudienceSettings
    );

    // Set updated Google audience list.
    $updatedIncludedGoogleAudienceGroup
        ->setSettings($updatedGoogleAudienceSettings);
} else {
    // Create new Google audience group.
    $updatedIncludedGoogleAudienceGroup =
        new Google_Service_DisplayVideo_GoogleAudienceGroup();

    // Set list of new Google audiences for targeting.
    $updatedIncludedGoogleAudienceGroup
        ->setSettings($newGoogleAudienceSettings);
}

// Add new Google Audience group to audience group targeting details.
$updatedAudienceGroupDetails
    ->setIncludedGoogleAudienceGroup(
        $updatedIncludedGoogleAudienceGroup
    );

// Create new targeting option to assign.
$newAudienceGroupTargeting =
    new Google_Service_DisplayVideo_AssignedTargetingOption();
$newAudienceGroupTargeting
    ->setAudienceGroupDetails($updatedAudienceGroupDetails);

// Build audience group targeting create request and add to list of
// create requests.
$createAudienceGroupAssignedTargetingOptions = array();
$createAudienceGroupAssignedTargetingOptions[] =
    $newAudienceGroupTargeting;
$createAudienceGroupTargetingRequest =
    new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest();
$createAudienceGroupTargetingRequest->setTargetingType(
    "TARGETING_TYPE_AUDIENCE_GROUP"
);
$createAudienceGroupTargetingRequest->setAssignedTargetingOptions(
    $createAudienceGroupAssignedTargetingOptions
);
$createRequests[] = $createAudienceGroupTargetingRequest;

// Set create requests in edit request.
$requestBody->setCreateRequests($createRequests);

// Call the API, editing the assigned targeting options for the
// identified line item.
$response = $this
    ->service
    ->advertisers_lineItems
    ->bulkEditLineItemAssignedTargetingOptions(
        $advertiserId,
        $lineItemId,
        $requestBody
    );

הכנה לקראת ההוצאה משימוש של אפשרויות הטירגוט

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

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

בדף הודעות על הוצאה משימוש אפשר למצוא פרטים על להוצאה משימוש בעבר ובעתיד.

לא לשלוח בקשות בו-זמנית לעדכון אותו פריט

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

אם אתם צריכים להוסיף או להסיר כמה אפשרויות טירגוט שמוקצות לחשבון בו-זמנית, עליך להשתמש במפתח אחד advertisers.lineItems.bulkEditAssignedTargetingOptions בקשה. כדי לעדכן את ההגדרות והטירגוט של פריט, צריך להוסיף את האפשרות 'הבאים בתור' הבקשה patch או bulkUpdate הרלוונטית כדי לוודא שהבקשה השנייה לא תישלח עד ומחזירה תשובה.