Opcje kierowania Przypisane opcje kierowania oraz Usługi elementów zamówienia są używane w połączeniu, aby ustawić kierowania elementów zamówienia w Interfejs Video 360 API. Na tej stronie opisujemy i przedstawiamy przykłady jak znaleźć dostępne opcje kierowania, przypisać je do linii elementów zamówienia i wykonywać na nich operacje zbiorcze, aby wyświetlać i edytować przypisane opcje kierowania.
Znajdowanie dostępnych opcji kierowania
Opcje kierowania korzystają ze zmiennych określonych przez użytkownika lub istniejących elementów elementów lub opcji definiowania docelowych odbiorców. Istniejące opcje są określane za pomocą wartości wyliczeniowych lub opcji kierowania identyfikatory w zależności od typu kierowania. Elementy, na które można kierować reklamy, są identyfikowane za pomocą ich identyfikatory. Identyfikatory opcji kierowania i elementów możesz znaleźć za pomocą parametru Reklamy displayowe i Interfejs Video 360 API.
Użyj wartości ustawionych wartości wyliczeniowych
Opcje kierowania dla tych typów kierowania są przypisywane za pomocą: określone typy wyliczeniowych:
TargetingType |
Typ wyliczeniowy |
---|---|
TARGETING_TYPE_AGE_RANGE |
AgeRange |
TARGETING_TYPE_CONTENT_INSTREAM_POSITION |
ContentInstreamPosition |
TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION |
ContentOutstreamPosition |
TARGETING_TYPE_DEVICE_TYPE |
DeviceType |
TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION |
ContentRatingTier |
TARGETING_TYPE_ENVIRONMENT |
Environment |
TARGETING_TYPE_EXCHANGE |
Exchange |
TARGETING_TYPE_GENDER |
Gender |
TARGETING_TYPE_HOUSEHOLD_INCOME |
HouseholdIncome |
TARGETING_TYPE_NATIVE_CONTENT_POSITION |
NativeContentPosition |
TARGETING_TYPE_OMID |
Omid |
TARGETING_TYPE_PARENTAL_STATUS |
ParentalStatus |
TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION |
SensitiveCategory |
TARGETING_TYPE_VIDEO_PLAYER_SIZE |
VideoPlayerSize |
TARGETING_TYPE_VIEWABILITY |
Viewability |
Za pomocą ciągu znaków odpowiedniej wartości wyliczeniowej można zidentyfikować istniejące
AssignedTargetingOption
zasobów z tymi typami kierowania
dostępne w polu assignedTargetingOptionIdAlias
. Dostępne opcje
użyj tej wartości aliasu zamiast assignedTargetingOptionId
, gdy
pobierania lub usuwania przypisanych opcji kierowania.
Pobieranie identyfikatorów opcji kierowania
Typy kierowania, które korzystają z istniejących opcji, są przypisywane za pomocą odpowiednich identyfikatory opcji kierowania.
Na przykład istnieje ograniczona liczba pozycji na ekranie, które
mogą być celem kierowania za pomocą typu kierowania TARGETING_TYPE_ON_SCREEN_POSITION
. Każdy
tych pozycji mają odpowiedni identyfikator opcji kierowania.
Identyfikatory opcji kierowania można pobrać w Usługa opcji kierowania. W zależności od kierowania, pobieranie może być przeprowadzane na jeden z dwóch sposobów:
- Pojedyncze dane lub pełna lista: pobranie opcji dla
Większość typów kierowania można ustawić za pomocą metod
get
ilist
. Użyj narzędziatargetingTypes.targetingOptions.get
, aby pobrać szczegółowe informacje: opcji kierowania określonej przez typ i identyfikator opcji kierowania. UżywajtargetingTypes.targetingOptions.list
, aby wyświetlić wszystkie dostępne danego typu kierowania. - Sieć wyszukiwania: opcje typów kierowania opartych na lokalizacji.
(
TARGETING_TYPE_GEO_REGION
,TARGETING_TYPE_POI
iTARGETING_TYPE_BUSINESS_CHAIN
) należy pobrać przy użyciu metodysearch
. Użyj aplikacjitargetingTypes.targetingOptions.search
, aby pobrać opcje kierowania danego typu, które pasują do określonych ciągów zapytań.
Oto przykład pobierania listy możliwych ustawień kierowania
opcje kierowania typu TARGETING_TYPE_BROWSER
:
Java
// Configure the list request. TargetingOptions.List request = service .targetingTypes() .targetingOptions() .list("TARGETING_TYPE_BROWSER") .setAdvertiserId(advertiser-id); // Create the response and nextPageToken variables. ListTargetingOptionsResponse response; String nextPageToken = null; do { // Create and execute the list request. response = request.setPageToken(nextPageToken).execute(); // Check if the response is empty. if (response.isEmpty()) { System.out.print("List request returned no Targeting Options"); break; } // Iterate over retrieved targeting options. for (TargetingOption option : response.getTargetingOptions()) { System.out.printf( "Targeting Option ID: %s, Browser Display Name: '%s'\n", option.getTargetingOptionId(), option.getBrowserDetails().getDisplayName()); } // Update the next page token. nextPageToken = response.getNextPageToken(); } while (!Strings.isNullOrEmpty(nextPageToken));
Python
# Create the page token variable. next_page_token = "" while True: # Request the targeting options list. response = service.targetingTypes() \ .targetingOptions().list( advertiserId=advertiser-id, targetingType="TARGETING_TYPE_BROWSER", pageToken=next_page_token ).execute() # Check if response is empty. if not response: print("List request returned no Targeting Options") break # Iterate over retrieved targeting options. for option in response['targetingOptions']: print("Targeting Option ID: %s, Browser Display Name: %s" % (option['targetingOptionId'], option['browserDetails']['displayName'])) # Break out of loop if there is no next page. if 'nextPageToken' not in response: break # Update the next page token. next_page_token = response['nextPageToken']
PHP
// Create the page token variable. $nextPageToken = null; do { // Build the query parameters object for the request. $optParams = array( 'advertiserId' => advertiser-id, 'pageToken' => $nextPageToken ); // Call the API, getting the browser targeting options for the // identified advertiser. $response = $this ->service ->targetingTypes_targetingOptions ->listTargetingTypesTargetingOptions( 'TARGETING_TYPE_BROWSER', $optParams ); // Print the resulting targeting options. if (!empty($response->getTargetingOptions())) { foreach ($response->getTargetingOptions() as $option) { printf( 'Targeting Option ID: %s, Browser Display Name: %s\n', $option['targetingOptionId'], $option['browserDetails']['displayName'] ); } } else { print('No targeting options returned\n'); } // Update the next page token. $nextPageToken = $response->getNextPageToken(); } while ( !empty($response->getTargetingOptions()) && $nextPageToken );
Wyświetlenie listy jednostek, na które można kierować reklamy
Aby ustawić kierowanie elementu zamówienia za pomocą istniejącego elementu kierowania, musisz: identyfikatora podmiotu. elementy, na które można kierować reklamy, takie jak kanały; odbiorców z połączonych list, grup źródeł zasobów reklamowych można pobierać za pomocą: własnych usług w sieci reklamowej Interfejs Video 360 API.
Każda usługa ma własne metody get
i list
. Użyj metody get
do:
potwierdzić, że dany element jest dostępny w ramach danego reklamodawcy. Użyj funkcji list
wykrywa wszystkie encje danego typu zasobów dostępne dla
konkretnego reklamodawcy, więc można ich używać do przypisywania kierowania do
elementu zamówienia danego reklamodawcy.
Podzbiorem jednostek, na które można kierować reklamy, można też zarządzać za pomocą interfejsu API. To jest
za pomocą metod create
i patch
w odpowiedniej usłudze, jak
a także usług dla poszczególnych wartości wymienionych w elementach, takich jak
źródła zasobów reklamowych,
wykluczające słowa kluczowe,
lokalizacje.
Utwórz identyfikatory opcji kierowania ciekawych miejsc
Opcje kierowania na ciekawe miejsca, w kolumnie TARGETING_TYPE_POI
, można
pobrano za pomocą funkcji targetingTypes.targetingOptions.search
. W
Możesz też tworzyć niestandardowe identyfikatory opcji kierowania TARGETING_TYPE_POI
,
kierować reklamy na współrzędne geograficzne.
Aby utworzyć identyfikator opcji kierowania na ciekawe miejsca, wykonaj te czynności:
- Pobierz współrzędne szerokości i długości geograficznej (np. „40.7414691, -74.003387”)
- Zaokrąglaj współrzędne do szóstego miejsca po przecinku (np. „40.741469, -74,003387”)
- Usuń miejsca po przecinku z wartości współrzędnych (np. „40741469, -74003387”).
- Połącz obie wartości, aby utworzyć jeden ciąg znaków rozdzielonych średnikiem (np. „40741469;-74003387”)
Otrzymanego ciągu znaków można użyć jako targetingOptionId
podczas tworzenia
TARGETING_TYPE_POI
przypisana opcja kierowania.
Po utworzeniu pola targetingOptionId
i assignedTargetingOptionId
w argumencie
przypisany zasób opcji kierowania zostanie zaktualizowany (doda się do niego średnik)
i hasz alfanumeryczny.
Przypisywanie opcji kierowania
Kierowanie przypisane do elementu zamówienia jest przedstawiane jako Przypisane opcje kierowania. Możesz zarządzać tymi elementami za pomocą Usługa Przypisane opcje kierowania. Utworzenie przypisanej opcji kierowania powoduje zastosowanie tych szczegółów do: nadrzędny element zamówienia. Usunięcie przypisanej opcji kierowania spowoduje usunięcie tej kierowania reklam.
Używaj
advertisers.lineItems.targetingTypes.assignedTargetingOptions.create
aby utworzyć przypisane opcje kierowania. Określ parametry kierowania w parametrze
details
przypisanego zasobu opcji kierowania, który
odpowiada jej typowi kierowania.
Oto przykład tworzenia przypisanej opcji kierowania
typu kierowania TARGETING_TYPE_BROWSER
:
Java
// Create an AssignedTargetingOption object of the // browser targeting type. AssignedTargetingOption assignedTargetingOption = new AssignedTargetingOption() .setBrowserDetails( new BrowserAssignedTargetingOptionDetails() .setTargetingOptionId(targeting-option-id)); // Configure the create request. AssignedTargetingOptions.Create request = service .advertisers() .lineItems() .targetingTypes() .assignedTargetingOptions() .create( advertiser-id, line-item-id, "TARGETING_TYPE_BROWSER", assignedTargetingOption); // Send the request. AssignedTargetingOption response = request.execute(); // Display the new assigned targeting option. System.out.printf("AssignedTargetingOption %s was created.", response.getName());
Python
# Create a assigned targeting option object. assigned_targeting_option_obj = { 'browserDetails': { 'targetingOptionId': targeting-option-id } } # Create the assigned targeting option. assigned_targeting_option = service.advertisers().lineItems()\ .targetingTypes().assignedTargetingOptions().create( advertiserId=advertiser-id, lineItemId=line-item-id, targetingType="TARGETING_TYPE_BROWSER", body=assigned_targeting_option_obj ).execute() # Display the new assigned targeting option. print("Assigned Targeting Option %s was created." % assigned_targeting_option["name"])
PHP
// Create a assigned targeting option object. $assignedTargetingOption = new Google_Service_DisplayVideo_AssignedTargetingOption(); // Create and set browser details. $details = new Google_Service_DisplayVideo_BrowserAssignedTargetingOptionDetails(); $details->setTargetingOptionId(targeting-option-id); $assignedTargetingOption->setBrowserDetails($details); // Call the API, creating the browser assigned targeting option for the // given line item. $result = $this ->service ->advertisers_lineItems_targetingTypes_assignedTargetingOptions ->create( advertiser-id, line-item-id, 'TARGETING_TYPE_BROWSER', $assignedTargetingOption ); printf( 'Assigned Targeting Option %s was created.\n', $result['name'] );
Błędy
Błędy konfiguracji kierowania
Istnieje wiele złożonych zasad dotyczących kierowanie w sieci reklamowej i Film 360. Są one egzekwowane w ekran Interfejs Video 360 API zawierający błędy zwrócone podczas tworzenia przypisanej opcji kierowania. Naruszenie wskazuje błąd zwrócony przez interfejs API.
Błędy są najczęściej spowodowane przez istniejące kierowanie przypisane do elementu zamówienia. Używaj
advertisers.lineItems.targetingTypes.assignedTargetingOptions.list
pozwala pobrać wszystkie opcje kierowania o danym typie kierowania przypisanym do wiersza
należy ocenić, czy pożądane kierowanie jest możliwe przy tych ograniczeniach
i użyj
advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
usunąć niechciane kierowanie i ponownie utworzyć
przypisanej opcji kierowania.
YouTube i Błędy w kierowaniu partnerów
Kierowanie na YouTube i Kampanii Google Partners nie można aktualizować za pomocą ekran Użycie interfejsu Video 360 API spowoduje błąd.
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
Błędy równoczesności
Próba zaktualizowania ustawień lub kierowania pojedynczego elementu zamówienia przez wiele równoczesnych żądań spowoduje błąd.
Jeśli chcesz dodać lub usunąć wiele przypisanych opcji kierowania dla jednej
elementu zamówienia, użyj typu
żądanie zmiany zbiorczej. Jeśli chcesz zaktualizować
ustawień i kierowania, advertisers.lineItems.patch
i odpowiednie żądania kierowania reklam, aby zapewnić
żądanie nie zostanie wysłane, dopóki pierwsze nie zwróci odpowiedzi.
Zbiorcze operacje kierowania lub operacje kierowania na poziomie zasobów
Do zarządzania przypisanymi możesz używać metod kierowania zbiorczego i obejmującego zasoby opcje kierowania w różnych typach kierowania:
- Używaj metod kierowania zbiorczego, by pobierać lub edytować opcje kierowania w
w przypadku różnych typów kierowania i w ramach różnych zasobów. Możesz pobrać
pełne konfiguracje kierowania wielu elementów zamówienia za pomocą funkcji
advertisers.lineItems.bulkListAssignedTargetingOptions
lub wprowadzić identyczne zmiany w kierowaniu w wielu elementach zamówienia za pomocąadvertisers.lineItems.bulkEditAssignedTargetingOptions
Ta funkcja jest dostępna tylko wadvertisers.lineItems
posprzedażna. - Użyj metod kierowania obejmujących cały zasób, aby pobrać lub edytować opcje kierowania.
w ramach wielu typów kierowania w ramach jednego zasobu. Są dostępne
w krajach:
partners
,advertisers
,advertisers.campaigns
orazadvertisers.insertionOrders
i mają nazwylistAssignedTargetingOptions
lubeditAssignedTargetingOptions
.
Aby uzyskać pełny obraz bieżącego kierowania elementu zamówienia, możesz zastosować wstępnie ustawioną konfigurację kierowania elementu zamówienia lub wprowadzić wiele zmian; do kierowania elementu zamówienia w tym samym czasie, rozważ zastosowanie tych .
Zbiorcze kierowanie na listy
advertisers.lineItems.bulkListAssignedTargetingOptions
umożliwia wgląd w wszystkie ustawienia kierowania przypisane do co najmniej jednego elementu zamówienia.
w przypadku różnych typów kierowania. Działa ona podobnie jak wszystkie inne list
. Do filtrowania możesz używać parametru zapytania filter
wyniki według TargetingType
lub
Inheritance
.
Oto przykład, jak wyświetlić listę wszystkich opcji kierowania przypisanych do elementu zamówienia dziedziczone przez nadrzędnego partnera lub reklamodawcę:
Java
// Configure the bulk list request. LineItems.BulkListAssignedTargetingOptions request = service.advertisers().lineItems() .bulkListAssignedTargetingOptions(advertiser-id); // Set Line Items to retrieve targeting for. request.setLineItemIds(line-item-ids); // Set filter to only return inherited assigned targeting options. request.setFilter( "inheritance=\"INHERITED_FROM_ADVERTISER\" OR inheritance=\"INHERITED_FROM_PARTNER\""); // Create the response and nextPageToken variables. BulkListAssignedTargetingOptionsResponse response; String nextPageToken = null; do { // Set page token and execute the list request. response = request.setPageToken(nextPageToken).execute(); // Check if the response is empty. if (response.isEmpty()) { System.out.print("Bulk list request returned no Assigned Targeting Options"); break; } // Iterate over retrieved line item assigned targeting option wrapper objects. for (LineItemAssignedTargetingOption lineItemAssignedTargetingOption : response.getLineItemAssignedTargetingOptions()) { System.out.printf( "Assigned Targeting Option %s found\n", lineItemAssignedTargetingOption.getAssignedTargetingOption().getName()); } // Update the next page token. nextPageToken = response.getNextPageToken(); } while (!Strings.isNullOrEmpty(nextPageToken));
Python
# Create the page token variable. next_page_token = "" while True: # Execute the list request. response = service.advertisers().lineItems() \ .bulkListAssignedTargetingOptions( advertiserId=advertiser-id, lineItemIds=line-item-ids, filter="inheritance=\"INHERITED_FROM_ADVERTISER\" OR " "inheritance=\"INHERITED_FROM_PARTNER\"", pageToken=next_page_token ).execute() # Check if response is empty. if not response: print("Bulk list request returned no Assigned Targeting Options") break # Iterate over retrieved assigned targeting options. for lineItemAssignedTargetingOption in response['lineItemAssignedTargetingOptions']: print("Assigned Targeting Option %s found" % (lineItemAssignedTargetingOption['assignedTargetingOption']['name'])) # Break out of loop if there is no next page. if 'nextPageToken' not in response: break # Update the next page token. next_page_token = response['nextPageToken']
PHP
// Create the page token variable. $nextPageToken = null; do { // Build the query parameters object for the request. $optParams = array( 'lineItemIds' => line-item-ids, 'filter' => "inheritance=\"INHERITED_FROM_ADVERTISER\" OR " . "inheritance=\"INHERITED_FROM_PARTNER\"", 'pageToken' => $nextPageToken ); // Call the API, getting all the assigned targeting options for the // identified line item. $response = $service ->advertisers_lineItems ->bulkListAssignedTargetingOptions( advertiser-id, $optParams ); // Print the returned assigned targeting options. if (!empty($response->getLineItemAssignedTargetingOptions())) { foreach ($response->getLineItemAssignedTargetingOptions() as $option) { printf('Assigned Targeting Option %s found\n', $option->getAssignedTargetingOption()['name']); } } else { print('No targeting options returned\n'); } // Update the next page token. $nextPageToken = $response->getNextPageToken(); } while ( !empty($response->getLineItemAssignedTargetingOptions()) && $nextPageToken);
Zbiorcze edytowanie kierowania
advertisers.lineItems.bulkEditAssignedTargetingOptions
umożliwia dodawanie i usuwanie wielu opcji kierowania o różnej skuteczności
typów z jednego lub wielu elementów zamówienia jednocześnie.
Metoda pobiera listę
DeleteAssignedTargetingOptionsRequests
oraz lista
CreateAssignedTargetingOptionsRequests
Pojedyncza prośba
może reprezentować usunięcie lub utworzenie wielu przypisanych ustawień kierowania
opcje tego samego typu kierowania.
Jeśli próba usunięcia lub utworzenia przypisanej opcji kierowania powoduje , oznacza to, że w przypadku danego elementu zamówienia działanie zbiorcze zostanie porzucone. żądanie zwraca listę pomyślnie zaktualizowanych wierszy elementy zamówienia oraz elementy zamówienia, których nie udało się zrealizować aktualizację oraz odpowiednie .
Oto przykład, jak zbiorczo edytować przypisane opcje kierowania w przypadku co najmniej jednego ustawienia elementy zamówienia z listami przypisanych opcji kierowania do usunięcia i kierowania opcje tworzenia:
Java
// Create a bulk edit request. BulkEditAssignedTargetingOptionsRequest requestContent = new BulkEditAssignedTargetingOptionsRequest(); // Set line item IDs in edit request. requestContent.setLineItemIds(line-item-ids); // Build delete request list. ArrayList<DeleteAssignedTargetingOptionsRequest> deleteRequests = new ArrayList<DeleteAssignedTargetingOptionsRequest>(); // Add browser assigned targeting option IDs to delete request list. deleteRequests.add(new DeleteAssignedTargetingOptionsRequest() .setTargetingType("TARGETING_TYPE_BROWSER") .setAssignedTargetingOptionIds(delete-browser-assigned-targeting-ids)); // Add device make or model assigned targeting option IDs to delete request list. deleteRequests.add(new DeleteAssignedTargetingOptionsRequest() .setTargetingType("TARGETING_TYPE_DEVICE_MAKE_MODEL") .setAssignedTargetingOptionIds( delete-device-make-model-assigned-targeting-ids)); // Set delete requests in edit request. requestContent.setDeleteRequests(deleteRequests); // Build create request list. ArrayList<CreateAssignedTargetingOptionsRequest> createRequests = new ArrayList<CreateAssignedTargetingOptionsRequest>(); // Create browser assigned targeting option create request. CreateAssignedTargetingOptionsRequest createBrowserTargetingRequest = new CreateAssignedTargetingOptionsRequest(); createBrowserTargetingRequest.setTargetingType("TARGETING_TYPE_BROWSER"); // Create and set list of browser assigned targeting options. ArrayList<AssignedTargetingOption> createBrowserAssignedTargetingOptions = new ArrayList<AssignedTargetingOption>(); for (String targetingOptionId : create-browser-assigned-targeting-ids) { createBrowserAssignedTargetingOptions.add(new AssignedTargetingOption() .setBrowserDetails( new BrowserAssignedTargetingOptionDetails() .setTargetingOptionId(targetingOptionId))); } createBrowserTargetingRequest .setAssignedTargetingOptions(createBrowserAssignedTargetingOptions); // Add browser assigned targeting options to list of create requests. createRequests.add(createBrowserTargetingRequest); // Set create requests in edit request. requestContent.setCreateRequests(createRequests); // Configure the bulk edit request. LineItems.BulkEditAssignedTargetingOptions request = service.advertisers().lineItems() .bulkEditAssignedTargetingOptions( advertiser-id, requestContent); // Execute bulk edit request. BulkEditAssignedTargetingOptionsResponse response = request.execute(); // Check if any line items updated successfully. if (response.getUpdatedLineItemIds() == null || response.getUpdatedLineItemIds().isEmpty()) { System.out.println("No line items were updated successfully."); } else { System.out.printf( "Targeting configurations for the following line item IDs were updated: %s.\n", Arrays.toString(response.getUpdatedLineItemIds().toArray())); } // Check if any line items failed to update. if (response.getFailedLineItemIds() == null || response.getFailedLineItemIds().isEmpty()) { System.out.println("No line items failed to update."); } else { // Print the line items that failed to update. System.out.printf( "Targeting configurations for the following line item IDs failed to update: %s.\n", Arrays.toString(response.getFailedLineItemIds().toArray())); // Print errors thrown for failed updates. System.out.println("The failed updates were caused by the following errors:"); for (Status error : response.getErrors()) { System.out.printf("Error Code: %s, Message: %s\n", error.getCode(), error.getMessage()); } }
Python
# Build assigned targeting option objects to create. createBrowserAssignedTargetingOptions = [] for targeting_id in create-browser-assigned-targeting-ids: createBrowserAssignedTargetingOptions.append( {'browserDetails': {'targetingOptionId': targeting_id}} ) # Create a bulk edit request. bulk_edit_line_item_request = { 'lineItemIds': line-item-ids, 'deleteRequests': [ { 'targetingType': 'TARGETING_TYPE_BROWSER', 'assignedTargetingOptionIds': delete-browser-assigned-targeting-ids }, { 'targetingType': 'TARGETING_TYPE_DEVICE_MAKE_MODEL', 'assignedTargetingOptionIds': delete-device-make-model-assigned-targeting-ids } ], 'createRequests': [ { 'targetingType': 'TARGETING_TYPE_BROWSER', 'assignedTargetingOptions': createBrowserAssignedTargetingOptions } ] } # Edit the line item targeting. response = service.advertisers().lineItems()\ .bulkEditAssignedTargetingOptions( advertiserId=advertiser-id, body=bulk_edit_line_item_request ).execute() # Print successfully updated line items. if 'updatedLineItemIds' not in response: print("No line items were updated successfully.") else: print("Targeting configurations for the following line item IDs were updated: %s" % response['updatedLineItemIds']) # Print line items that failed to update. if 'failedLineItemIds' not in response: print("No line items failed to update.") else: print("Targeting configurations for the following line item IDs failed to update: %s" % response['failedLineItemIds']) if 'errors' in response: print("The failed updates were caused by the following errors:") for error in response["errors"]: print("Error code: %s, Message: %s" % (error["code"], error["message"]))
PHP
// Create delete request list. $deleteRequests = array(); // Create and add browser assigned targeting option IDs to delete request list. $deleteBrowserTargetingRequest = new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest(); $deleteBrowserTargetingRequest->setTargetingType( "TARGETING_TYPE_BROWSER" ); $deleteBrowserTargetingRequest->setAssignedTargetingOptionIds( delete-browser-assigned-targeting-ids ); $deleteRequests[] = $deleteBrowserTargetingRequest; // Create and add device assigned targeting option IDs to delete request list. $deleteDeviceTargetingRequest = new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest(); $deleteDeviceTargetingRequest->setTargetingType( "TARGETING_TYPE_DEVICE_MAKE_MODEL" ); $deleteDeviceTargetingRequest->setAssignedTargetingOptionIds( delete-device-make-model-assigned-targeting-ids ); $deleteRequests[] = $deleteDeviceTargetingRequest; // Create create request list. $createRequests = array(); // Create and populate list of browser assigned targetion options to create. $createBrowserAssignedTargetingOptions = array(); foreach (create-browser-assigned-targeting-ids as $optionId) { $option = new Google_Service_DisplayVideo_AssignedTargetingOption(); $details = new Google_Service_DisplayVideo_BrowserAssignedTargetingOptionDetails(); $details->setTargetingOptionId($optionId); $option->setBrowserDetails($details); $createBrowserAssignedTargetingOptions[] = $option; } // Create and add browser assigned targeting option create request to create // request list. $createBrowserTargetingRequest = new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest(); $createBrowserTargetingRequest->setTargetingType( "TARGETING_TYPE_BROWSER" ); $createBrowserTargetingRequest->setAssignedTargetingOptions( $createBrowserAssignedTargetingOptions ); $createRequests[] = $createBrowserTargetingRequest; // Create a bulk edit request and assign create and delete request lists. $body = new Google_Service_DisplayVideo_BulkEditAssignedTargetingOptionsRequest(); $body->setLineItemIds(line-item-ids); $body->setCreateRequests($createRequests); $body->setDeleteRequests($deleteRequests); // Call the API, editing the assigned targeting options for the identified // line item. $response = $service ->advertisers_lineItems ->bulkEditAssignedTargetingOptions( advertiser-id, $body ); // Print successfully updated line items. if (!empty($response->getUpdatedLineItemIds())) { printf('Targeting configurations for the following line item IDs were updated:\n'); foreach ($response->getUpdatedLineItemIds() as $id) { printf('%s\n', $id); } } else { print('No line items were updated successfully.\n'); } // Print line items that failed to update. if (!empty($response->getFailedLineItemIds())) { print('Targeting configurations for the following line item IDs failed to update:\n'); foreach ($response->getFailedLineItemIds() as $id) { printf('%s\n', $id); } print('The failed updates were caused by the following errors:\n'); foreach ($response->getErrors() as $error) { printf('Error Code: %s, Message: %s\n', $error->getCode(), $error->getMessage()); } } else { print('No line items failed to update.\n'); }