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:
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:
advertisers.lineItems.bulkEditAssignedTargetingOptions
advertisers.lineItems.bulkUpdate
advertisers.lineItems.patch
advertisers.lineItems.targetingTypes.assignedTargetingOptions.create
advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
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ź.