Kierowanie

Zarządzanie kierowaniem na zasoby to główna funkcja Interfejs Video 360 API. Kierowanie można przypisać do wielu typów zasobów i wykorzystywać wiele inne zasoby i przestrzenie identyfikatorów. Na tej stronie znajdują się szczegółowe informacje o ograniczeniach, o których należy pamiętać które warto wdrożyć przy wdrażaniu Przypisane kierowanie w interfejsie Video 360 API Usługi opcji.

Stosuj dziedziczenie kierowania

Kierowanie przypisane do niektórych zasobów może być dziedziczone przez elementy podrzędne i zasobami Google Cloud. Opcje kierowania odziedziczone przez zasób podrzędny można pobrać, ale nie można edytować na poziomie zasobu podrzędnego. Umożliwia to włączenie ustawień bezpieczeństwa marki inne ustawienia kierowania, które mogą być egzekwowane w całości na poziomie partnera lub reklamodawcy.

Ścieżka dziedziczenia jest przedstawiona na tym diagramie:

Diagram dziedziczenia kierowania

Zgodnie z tym diagramem niektóre poziomy kierowania obsługują tylko podzbiór wartości typów kierowania. Oznacza to, że niektórych opcji kierowania nie można ustawić na wyższym poziomie poziomów i dziedziczonych, ale trzeba je ustawić na niższym poziomie.

Dziedziczenie w YouTube Materiały dla partnerów

Dziedziczenie kierowania nie jest odzwierciedlane w przypadku YouTube i Materiały dla partnerów – Reklamy displayowe i Interfejs Video 360 API. Kierowanie dziedziczone przez grupy reklam nie będzie można pobierać na poziomie AdGroup i w kierowaniu na YouTube przypisane do zasobów nadrzędnych nie będą dziedziczone przez zasoby podrzędne.

Aby pobrać wszystkie funkcjonalne ustawienia kierowania grupy reklam, powinien pobrać opcje kierowania przypisane do grupy reklam, nadrzędny element zamówienia i nadrzędny reklamodawca.

Pamiętaj o kierowaniu przypisanym podczas tworzenia elementu zamówienia

Większość opcji kierowania (innych niż dziedziczone opcje kierowania) można przypisać tylko po utworzeniu elementu zamówienia. Istnieje jednak kilka typów kierowania, które domyślny podzbiór wartości przypisanych do elementów zamówienia podczas ich tworzenia. Te wartości typy kierowania to:

Próba utworzenia istniejących lub usunięcia nieistniejących przypisanych opcji kierowania zwraca błąd, więc zapoznaj się z całym zestawem kierowania przypisaną do elementów zamówienia w momencie ich utworzenia. Jeśli chcesz pobrać przypisanego do elementu zamówienia różnych typów kierowania, użyj advertisers.lineItems.bulkListAssignedTargetingOptions

Niektóre ustawienia są stosowane domyślnie, jeśli żadna z tych opcji kierowania typ jest przypisany do zasobu. Jeśli na przykład zasób nie ma TARGETING_TYPE_AUTHORIZED_SELLER_STATUS jako zdefiniowaną opcję kierowania, co oznacza, że używana jest metoda „Autoryzowani sprzedawcy bezpośredni” Sprzedawcy stanu.

Nie spodziewaj się automatycznego „kierowania domyślnego”

Reklamy w sieci reklamowej i Film 360 ma ustawione kierowanie na poziomie kampanii lub zamówienia reklamowego: nie są przekazywane natychmiast do podrzędnych elementów zamówienia. Kierowanie to jest nazywane „domyślne kierowanie” i służy jako szablon kierowania, stosowaną do elementów zamówienia tworzonych później w tym interfejsie.

Na reklamach displayowych Interfejs Video 360 API, domyślne kierowanie nie jest automatycznie stosowane do nowych utworzone elementy zamówienia. Tworzenie podstawowego elementu zamówienia nie jest kopiowane z żadnej kampanii czy kierowanie na poziomie zamówienia reklamowego. W tym przypadku wymagane kierowanie musi być stosowane do elementów zamówienia osobno za pomocą przypisanej opcji kierowania tworzenia i edycji zbiorczej.

Wyjątkiem mogą być specjalne metody. Na przykład elementy zamówienia utworzone Kopiuj advertisers.lineItems.generateDefault ustawień z nadrzędnego zamówienia reklamowego, w tym ustawień kierowania. Na przykład elementom zamówienia utworzonym przez duplikowanie przypisywana jest wartość takie same ustawienia kierowania jak pierwotny element zamówienia.

YouTube i Nie można zmieniać kierowania na partnerów

Kierowanie na YouTube i Kampanii Google Partners nie można aktualizować za pomocą ekran Interfejs Video 360 API.

YouTube i Kierowanie na partnerów obejmuje wszystkie ustawienia kierowania przypisane bezpośrednio YouTube i elementów zamówienia partnerów i grup reklam, a także dowolne z tych typów kierowania:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

To kierowanie można zaktualizować za pomocą kampanii Display & Interfejs użytkownika Video 360 – bezpośrednio lub przez po przesłaniu pliku uporządkowanych danych.

Przypisywanie kierowania na odbiorców za pomocą jednej opcji

Opcje kierowania w przypadku większości typów kierowania są przypisywane pojedynczo. Odbiorcy kierowanie na grupę nie jest zgodne z tą konwencją modułową, ale zamiast tego jest przypisywane w jednym, konfigurowalnym audience group targeting details (szczegóły kierowania grupy odbiorców) z listą Identyfikatory list odbiorców uwzględnianych i wykluczonych podczas wyświetlania reklam. assignedTargetingOptionId dla tej opcji grupy odbiorców, po przypisaniu jest zawsze wartością „audienceGroup”.

Oznacza to, że wszelkie zmiany w kierowaniu na grupę odbiorców muszą być Najpierw usuń przypisaną grupę odbiorców. kierowania reklam, a następnie tworzą nową grupę odbiorców, z wybranymi zmianami. Można to zrobić w jednym żądaniu za pomocą advertisers.lineItems.bulkEditAssignedTargetingOptions

Oto przykład, jak zmienić kierowanie na odbiorców, by uzyskać kierować reklamy na dodatkowe grupy odbiorców 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
    );

Przygotuj się na wycofanie opcji kierowania

Opcje kierowania nie są statyczne, a niewielka liczba opcji może być czasem wycofywana od czasu do czasu. Wycofane opcje kierowania nie mają wpływu na reklamę w elemencie zamówienia wyświetlania reklam. Po wycofaniu te opcje zostaną wycofane z istniejącej linii które próbują pobrać lub przypisać te opcje, zawiera błędy.

Aby uniknąć tych błędów, zalecamy regularne sprawdzanie zapisanych identyfikatorów opcji kierowania. Aby ograniczyć limit, zalecamy zapisywanie w pamięci podręcznej często używanych dokumentów tożsamości. Przechowywanie identyfikatorów oznacza jednak, że nie można zobaczysz, że opcja kierowania została wycofana. Z tego powodu regularnie używaj targetingOptions.targetingTypes.get do Pobrać wszystkie zapisane identyfikatory opcji kierowania, by potwierdzić, że wciąż są aktywne obsługiwane przez reklamy displayowe Film 360.

Więcej informacji na ten temat znajdziesz na stronie z ogłoszonym wycofaniem. wycofane i nadchodzące wycofanie.

Nie wysyłaj równoczesnych żądań aktualizowania tego samego elementu zamówienia

Próba zaktualizowania ustawień lub przypisanego kierowania jednego elementu zamówienia Używanie wielu żądań równoczesnych spowoduje zwrócenie błędu. Odpowiednie prośby uwzględnij:

Jeśli chcesz dodać lub usunąć wiele przypisanych opcji kierowania dla jednej elementu zamówienia, musisz użyć advertisers.lineItems.bulkEditAssignedTargetingOptions użytkownika. Aby zaktualizować ustawienia i kierowanie elementu zamówienia, umieść w kolejce prośbę patch lub bulkUpdate i odpowiednie żądania kierowania, by zapewnić, że drugie żądanie nie zostanie wysłane zwraca odpowiedź.