الاستهداف

تُعد إدارة استهداف الموارد ميزة مركزية للإعلانات الصورية Video 360 API: يمكن تعيين الاستهداف لأنواع موارد متعددة ويستخدِم عددًا من الموارد الأخرى والمسافات المعرفات. توضح هذه الصفحة القيود التي يجب ملاحظتها وأفضلها والممارسات التي يجب تنفيذها في استخدام الشبكة الإعلانية الاستهداف المخصّص لواجهة برمجة التطبيقات Video 360 API خيارات الخدمات.

استخدام الاستهداف المكتسب

يمكن أن يكتسب الحساب الفرعي الاستهداف الذي يتم تعيينه لبعض الموارد. الموارد. يمكن استرجاع خيارات الاستهداف التي يكتسبها مورد فرعي، ولكن غير قابل للتعديل على مستوى المورد الفرعي. يمكّن ذلك إعدادات أمان العلامة التجارية أو الاستهدافات الأخرى على مستوى الشريك أو المعلن بالكامل.

يمكن رؤية مسار الوراثة في الرسم التخطيطي أدناه:

الرسم التخطيطي لاكتساب الاستهداف

وكما هو موضح في الرسم البياني، لا تتيح بعض مستويات الاستهداف إلا مجموعة فرعية من أنواع الاستهداف. وهذا يعني أنه لا يمكن تعيين بعض خيارات الاستهداف على مستوى أعلى مكتسَبة ومكتسَبة، ولكن يجب ضبطها على مستوى أدنى بدلاً من ذلك.

الاكتساب في YouTube موارد الشركاء

عدم تأثير الاستهداف المكتسب في YouTube موارد الشركاء في العرض Video 360 API: لن يتم استهداف الاستهداف المكتسب من المجموعات الإعلانية. قابلة للاسترداد على مستوى AdGroup واستهداف YouTube التي تم تعيينها للموارد الرئيسية لن تكتسبها الموارد الفرعية.

لاسترداد جميع إعدادات الاستهداف الوظيفية لمجموعة إعلانية، استرداد خيارات الاستهداف المعيّنة للمجموعة الإعلانية والعنصر الرئيسي، والمعلن الرئيسي.

الانتباه إلى الاستهداف الذي تم تحديده عند إنشاء تفاصيل الإعلان

بخلاف خيارات الاستهداف المكتسبة، يمكن تعيين معظم الاستهدافات فقط. بعد إنشاء البند ومع ذلك، هناك عدد قليل من أنواع الاستهداف التي لها مجموعة فرعية افتراضية من القيم المخصصة لبنود عند إنشاء البند. تلك أنواع الاستهداف هي:

محاولة إنشاء خيارات استهداف حالية غير موجودة أو حذف خيارات استهداف معيّنة تعرض خطأً، لذا نوصي بأن تكون على دراية بحزمة الاستهداف الكاملة التي يتم تعيينها لبنود الإعلان عند إنشائها إذا كنت بحاجة إلى استرداد المستهدفة التي تم تعيينها لعنصر ما عبر أنواع الاستهداف، واستخدام advertisers.lineItems.bulkListAssignedTargetingOptions

بالإضافة إلى ذلك، يتم ضبط بعض الإعدادات بشكل افتراضي عند عدم توفر خيار استهداف يتيح ذلك النوع إلى المورد. على سبيل المثال، إذا لم يكن لدى المورد علامة TARGETING_TYPE_AUTHORIZED_SELLER_STATUS محدد، وهو ما يعني أنه يستخدم خيار "عرض مباشر معتمد" البائعون والمورّدون" الحالة.

لا تتوقع "الاستهداف التلقائي" التلقائي

ضمن العرض الفيديو 360، الذي تم ضبطه على مستوى الحملة أو طلب الإدراج هو لا يتم تمريرها فورًا إلى العناصر الفرعية. يُعرف هذا الاستهداف باسم "الاستهداف التلقائي" ويُستخدم كنموذج للاستهداف يتم تطبيقه على العناصر التي تم إنشاؤها لاحقًا في واجهة المستخدم.

في إطار العرض Video 360 API، لا يتمّ تطبيق الاستهداف التلقائي تلقائيًا على العناصر التي تم إنشاؤها لا يؤدي إنشاء العنصر الأساسي إلى نسخ بيانات أي حملة أو الاستهداف على مستوى طلب الإدراج في هذه الحالة، يجب أن يكون الاستهداف المطلوب يتم تطبيقه على العناصر بشكل منفصل من خلال خيار الاستهداف المعيّن الإنشاء أو التعديل المجمَّع.

قد تكون الطرق الخاصة استثناءً. على سبيل المثال، العناصر التي تم إنشاؤها من خلال نسخ advertisers.lineItems.generateDefault الإعدادات من طلب الإدراج الرئيسي، بما في ذلك الاستهداف المحدّد. وبالمثل، سيتم تعيين العناصر التي تم إنشاؤها من خلال التكرار على الاستهداف نفسه كالبند الأصلي.

YouTube لا يمكن تعديل استهداف الشركاء

استهداف YouTube تحديدًا لا يمكن تعديل حملات الشركاء باستخدام الشاشة Video 360 API:

YouTube يتألف استهداف الشركاء من كل الاستهدافات المعيَّنة مباشرةً YouTube تفاصيل إعلان الشركاء والمجموعات الإعلانية بالإضافة إلى أي استهداف لأنواع الاستهداف التالية:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

يمكن تعديل هذا الاستهداف باستخدام العمود "الشبكة الإعلانية" واجهة مستخدم الفيديو 360 مباشرةً أو من خلال تحميل ملف بيانات منظَّمة:

تعيين استهداف الجمهور بخيار واحد

يتم تعيين خيارات الاستهداف لمعظم أنواع الاستهداف بشكلٍ فردي. الجمهور لا يتبع استهداف المجموعة هذا الأسلوب النمطي، ولكن يتم تعيينه بدلاً من ذلك في نافذة واحدة قابلة للتهيئة عنصر تفاصيل استهداف مجموعة الجمهور الذي يسرد أرقام تعريف شرائح الجمهور المطلوب تضمينها واستبعادها عند عرض الإعلانات تشير رسالة الأشكال البيانية 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 بانتظام من أجل استرداد جميع أرقام تعريف خيارات الاستهداف المخزنة للتأكد من أنها لا تزال متوافق مع "الشبكة الإعلانية" فيديو 360.

يمكنك الاطّلاع على صفحة عمليات الإيقاف المُعلَن عنها لمعرفة التفاصيل حول عمليات الإيقاف السابقة والقادمة.

عدم إجراء طلبات متزامنة لتعديل العنصر نفسه

محاولة تعديل الإعدادات أو الاستهداف المعيّن لبند واحد فإن استخدام طلبات متزامنة متعددة سيؤدي إلى عرض خطأ. الطلبات السارية تشمل:

إذا كنت بحاجة إلى إضافة أو إزالة العديد من خيارات الاستهداف المحددة لخيار عنصرًا واحدًا في الوقت نفسه، عليك استخدام عنوان URL واحد advertisers.lineItems.bulkEditAssignedTargetingOptions طلبك. إذا كنت ترغب في تعديل إعدادات أحد البنود والاستهداف، اعمد إلى قائمة الانتظار طلب patch أو bulkUpdate وذات الصلة لضمان عدم إرسال الطلب الثاني حتى أول وتقوم بإرجاع الرد.