Penargetan

Pengelolaan penargetan aset adalah fitur utama kampanye Display & Video 360 API. Penargetan dapat ditetapkan ke beberapa jenis resource dan menggunakan sejumlah resource dan ruang ID lainnya. Halaman ini menjelaskan batasan-batasan yang perlu diperhatikan dan praktik yang akan diterapkan dalam adopsi Display & Penargetan yang Ditetapkan Video 360 API Layanan opsi.

Memanfaatkan warisan penargetan

Penargetan yang ditetapkan ke beberapa resource dapat diwarisi oleh turunannya Google Cloud Platform. Opsi penargetan yang diwarisi oleh resource turunan dapat diambil, tetapi tidak dapat diedit di tingkat resource turunan. Hal ini mengaktifkan setelan keamanan merek dan penargetan lain untuk diterapkan di seluruh partner atau pengiklan.

Jalur pewarisan dapat dilihat pada diagram di bawah ini:

Diagram warisan penargetan

Seperti yang ditentukan dalam diagram, sebagian tingkat penargetan hanya mendukung subkumpulan jenis penargetan. Artinya, sebagian opsi penargetan tidak dapat ditetapkan pada tingkat tertentu dan diwariskan, tetapi harus ditetapkan pada tingkat yang lebih rendah.

Pewarisan di YouTube & Referensi Partners

Pewarisan penargetan tidak diterapkan untuk YouTube & Referensi Partners dalam Layar & Video 360 API. Penargetan yang diwarisi oleh Grup Iklan tidak akan dapat diambil di tingkat AdGroup dan penargetan YouTube yang ditetapkan ke resource induk tidak akan diwarisi oleh resource turunan.

Untuk mengambil semua setelan penargetan fungsional untuk grup iklan, Anda harus mengambil opsi penargetan yang ditetapkan untuk Grup Iklan, item baris induk, dan pengiklan induk.

Perhatikan penargetan yang ditetapkan saat pembuatan item baris

Selain opsi penargetan yang diwarisi, sebagian besar penargetan hanya dapat ditetapkan setelah item baris dibuat. Namun, ada beberapa jenis penargetan yang subkumpulan nilai default yang ditetapkan ke item baris pada saat pembuatan item baris. Mereka jenis penargetan adalah:

Mencoba membuat opsi penargetan yang ada atau menghapus opsi penargetan yang tidak ada menghasilkan error, jadi sebaiknya Anda mengetahui rangkaian penargetan lengkap yang ditetapkan ke item baris Anda saat pembuatan. Jika Anda perlu mengambil penargetan yang ditetapkan ke item baris di seluruh jenis penargetan, gunakan advertisers.lineItems.bulkListAssignedTargetingOptions

Selain itu, beberapa setelan ditetapkan secara default saat tidak ada opsi penargetan tersebut ditetapkan ke sumber daya. Misalnya, jika sumber daya tidak memiliki TARGETING_TYPE_AUTHORIZED_SELLER_STATUS opsi penargetan yang ditentukan, itu berarti bahwa iklan tersebut menggunakan "Authorized Direct Penjual dan Reseller" .

Jangan mengharapkan "penargetan default" otomatis

Dalam Tampilan & Video 360, penargetan yang ditetapkan di tingkat kampanye atau pesanan pemasangan iklan tidak langsung diteruskan ke item baris turunannya. Penargetan ini disebut sebagai "penargetan default" dan digunakan sebagai template penargetan yang diterapkan ke item baris yang dibuat setelahnya di UI.

Di Display & Video 360 API, penargetan default tidak otomatis diterapkan ke item baris yang dibuat. Pembuatan item baris dasar tidak akan menyalin kampanye apa pun atau penargetan tingkat pesanan pemasangan iklan. Dalam hal ini, penargetan yang diinginkan harus diterapkan ke item baris secara terpisah melalui opsi penargetan yang ditetapkan metode buat atau edit massal.

Metode khusus dapat menjadi pengecualian. Misalnya, item baris yang dibuat melalui Salinan advertisers.lineItems.generateDefault setelan dari pesanan pemasangan iklan induknya, termasuk penargetan yang ditetapkan. Demikian pula, item baris yang dibuat melalui duplikasi akan diberi penargetan yang sama dengan item baris asli.

YouTube & Penargetan partner tidak dapat diubah

Penargetan khusus untuk YouTube & Kampanye Partners tidak dapat diperbarui menggunakan perangkat Display & Video 360 API.

YouTube & Penargetan partner terdiri dari semua penargetan yang ditetapkan langsung kepada YouTube & Item Baris Partner dan Grup Iklan, serta semua penargetan dari jenis penargetan berikut:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Penargetan ini dapat diperbarui menggunakan antarmuka UI Video 360 secara langsung atau dengan mengupload File Data Terstruktur.

Menetapkan penargetan audiens dengan satu opsi

Opsi penargetan untuk sebagian besar jenis penargetan ditetapkan satu per satu. Audiens penargetan grup tidak mengikuti konvensi modular ini, tetapi ditetapkan dalam satu konfigurasi detail penargetan grup audiens yang mencantumkan ID audiens yang akan disertakan dan dikecualikan saat menayangkan iklan. Tujuan assignedTargetingOptionId untuk opsi grup audiens ini, setelah ditetapkan, selalu disebut "audienceGroup".

Desain ini berarti bahwa setiap perubahan pada penargetan grup audiens harus dilakukan oleh pertama-tama menghapus grup audiens yang ada yang ditetapkan opsi penargetan, lalu membuat grup audiens baru khusus dengan perubahan yang diinginkan. Tindakan ini dapat dilakukan dalam satu permintaan menggunakan advertisers.lineItems.bulkEditAssignedTargetingOptions

Berikut contoh cara memperbarui penargetan audiens untuk menargetkan audiens Google tambahan:

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
    );

Bersiaplah untuk penghentian penggunaan opsi penargetan

Opsi penargetan tidak statis, dan sejumlah kecil mungkin tidak digunakan lagi seiring waktu ke waktu tertentu. Opsi penargetan, setelah tidak digunakan lagi, tidak memengaruhi iklan item baris menyeluruh. Setelah penghentian, opsi ini akan dibatalkan penetapannya dari jalur yang ada item dan permintaan yang mencoba mengambil atau menetapkan opsi ini akan menghasilkan dalam error.

Untuk menghindari kesalahan ini, sebaiknya periksa secara rutin ID opsi penargetan. Untuk menghemat kuota, sebaiknya Anda menyimpan cache ID yang biasa digunakan. Namun, menyimpan ID berarti Anda mungkin tidak menyadari bahwa opsi penargetan sudah tidak digunakan lagi. Untuk alasan ini, Anda harus mengelompokkan menggunakan targetingOptions.targetingTypes.get secara rutin untuk mengambil semua ID opsi penargetan yang disimpan untuk mengonfirmasi bahwa ID tersebut masih didukung oleh Display & Video 360

Lihat halaman Pengumuman Penghentian Layanan untuk detail tentang penghentian penggunaan sebelumnya dan yang akan datang.

Jangan membuat permintaan serentak untuk memperbarui item baris yang sama

Mencoba memperbarui setelan atau penargetan yang ditetapkan untuk satu item baris menggunakan beberapa permintaan serentak akan menampilkan error. Permintaan yang berlaku termasuk:

Jika Anda perlu menambahkan atau menghapus beberapa opsi penargetan yang ditetapkan untuk satu item baris pada saat yang sama, Anda harus menggunakan satu advertisers.lineItems.bulkEditAssignedTargetingOptions permintaan. Jika Anda ingin memperbarui setelan dan penargetan item baris, masukkan antrean permintaan patch atau bulkUpdate dan permintaan untuk memastikan permintaan kedua tidak dikirim sebelum permintaan pertama mengembalikan respons.