Użyj mapowań w tabelach, aby zmapować metody i pola interfejsu Google Ads API na ich odpowiedniki w IngestEventsRequest w interfejsie Data Manager API.
Uwierzytelnianie
Interfejs Data Manager API wymaga danych logowania o innym zakresie niż interfejs Google Ads API. Aby wygenerować nowe dane logowania, które obejmują zakres interfejsu Data Manager API, wykonaj czynności opisane w artykule Konfigurowanie dostępu do interfejsu API.
Metody interfejsu API
Interfejs Data Manager API umożliwia przesyłanie każdej partii zdarzeń sprzedaży w sklepie w jednym pliku IngestEventsRequest.
W interfejsie Google Ads API wymagało to natomiast wykonania 3 czynności za pomocą metody OfflineUserDataJobService:
- Utwórz zadanie za pomocą
CreateOfflineUserDataJob - Dodaj operacje do zadania za pomocą
AddOfflineUserDataJobOperations. - Uruchom zadanie za pomocą
RunOfflineUserDataJob.
Pola żądania
Każdy IngestEventsRequest podlega limitom żądań. Jeśli liczba operacji w żądaniu AddOfflineUserDataJobOperations przekracza te limity, musisz podzielić je na kilka żądań pozyskiwania danych przez interfejs Data Manager API.
Oto jak pola żądań interfejsu Google Ads API są mapowane na interfejs Data Manager API.
CreateOfflineUserDataJobRequest
Tabela poniżej pokazuje, jak pola CreateOfflineUserDataJobRequest są mapowane na IngestEventsRequest.
CreateOfflineUserDataJobRequest (interfejs Google Ads API) |
IngestEventsRequest (interfejs Data Manager API) |
Uwagi |
|---|---|---|
customer_id |
destinations.operating_account |
Zobacz Pola klienta i działania powodującego konwersję. |
|
destinations |
Zobacz Pola klienta i działania powodującego konwersję. |
|
Diagnostyka | Użyj parametru request_id zwróconego w IngestEventsResponse, aby pobrać informacje diagnostyczne dotyczące przesłanych konwersji. |
job.id |
request_id |
Użyj parametru request_id zwróconego w IngestEventsResponse, aby pobrać informacje diagnostyczne dotyczące przesłanych konwersji. |
job.external_id |
Brak odpowiednika | |
job.type |
Brak odpowiednika | |
job.store_sales_metadata.third_party_metadata.partner_id |
destinations.login_account |
Dostawca danych, który przesyła konwersje polegające na sprzedaży w sklepie stacjonarnym, będzie identyfikowany przez login_account miejsca docelowego. Więcej informacji znajdziesz w artykule Konfigurowanie miejsc docelowych. |
job.store_sales_metadata.third_party_metadata.advertiser_upload_date_time |
Brak odpowiednika | |
job.store_sales_metadata.third_party_metadata.valid_transaction_fraction |
Brak odpowiednika | |
job.store_sales_metadata.third_party_metadata.partner_match_fraction |
Brak odpowiednika | |
job.store_sales_metadata.third_party_metadata.partner_upload_fraction |
Brak odpowiednika | |
job.store_sales_metadata.third_party_metadata.bridge_map_version_id |
Brak odpowiednika | |
job.store_sales_metadata.loyalty_fraction |
Brak odpowiednika | |
job.store_sales_metadata.transaction_upload_fraction |
Brak odpowiednika | |
job.store_sales_metadata.custom_key |
|
Mapuj na pole variable obiektu CustomVariable na poziomie zdarzenia lub obiektu ItemCustomVariable na poziomie produktu. |
enable_match_rate_range_preview |
Brak odpowiednika | |
validate_only |
validate_only |
|
| Brak odpowiednika | consent |
Interfejs Google Ads API obsługuje tylko określanie parametru consent na poziomie zdarzenia w obiekcie UserData. W przypadku interfejsu Data Manager API możesz określić zgodę na wszystkie zdarzenia w żądaniu, ustawiając pole consent w IngestEventsRequest. Możesz zastąpić tę wartość w przypadku pojedynczego zdarzenia, ustawiając pole consent w Event. |
| Brak odpowiednika | encoding |
Wymagany w przypadku przesyłania UserData. Ustaw Encoding używany dla wartości UserIdentifier. |
| Brak odpowiednika | encryption_info |
Ustaw, jeśli żądanie zawiera zaszyfrowane identyfikatory użytkowników UserData. Szczegółowe informacje znajdziesz w artykule Szyfrowanie. |
AddOfflineUserDataJobOperationsRequest
Tabela poniżej pokazuje, jak pola AddOfflineUserDataJobOperationsRequest są mapowane na IngestEventsRequest.
AddOfflineUserDataJobOperationsRequest (interfejs Google Ads API) |
IngestEventsRequest (interfejs Data Manager API) |
Uwagi |
|---|---|---|
|
destinations |
Zobacz Pola klienta i działania powodującego konwersję. |
resource_name |
Brak odpowiednika | Interfejs Data Manager API nie wymaga aktualizowania zasobu zadania. |
enable_partial_failure |
Brak odpowiednika | Jeśli IngestEventsRequest zakończy się powodzeniem, wszelkie błędy, które wystąpią podczas przetwarzania na dalszych etapach, są obsługiwane na poziomie zdarzenia, co może skutkować częściowym powodzeniem. Użyj Diagnostyki, aby sprawdzić stan przesyłania oraz błędy i ostrzeżenia dotyczące poszczególnych zdarzeń. Jeśli IngestEventsRequest nie powiedzie się (np. z powodu BadRequest), żadne zdarzenia nie zostaną przetworzone. Musisz rozwiązać problem i ponownie wysłać żądanie. Więcej informacji znajdziesz w artykule Informacje o błędach interfejsu API. |
enable_warnings |
Brak odpowiednika | Aby uzyskać ostrzeżenia dotyczące żądania do interfejsu Data Manager API, użyj narzędzia Diagnostyka. Nie musisz tego włączać. |
operations |
events |
Operacja OfflineUserDataJobOperation.create jest równoważna wysłaniu IngestEventsRequest. Interfejs Data Manager API nie obsługuje usuwania zdarzeń. |
validate_only |
validate_only |
|
| Brak odpowiednika | consent |
Interfejs Google Ads API obsługuje tylko określanie parametru consent na poziomie zdarzenia w obiekcie UserData. W przypadku interfejsu Data Manager API możesz określić zgodę na wszystkie zdarzenia w żądaniu, ustawiając pole consent w IngestEventsRequest. Możesz zastąpić tę wartość w przypadku pojedynczego zdarzenia, ustawiając pole consent w Event. |
| Brak odpowiednika | encoding |
Wymagany w przypadku przesyłania UserData. Ustaw Encoding używany dla wartości UserIdentifier. |
| Brak odpowiednika | encryption_info |
Ustaw, jeśli żądanie zawiera zaszyfrowane identyfikatory użytkowników UserData. Szczegółowe informacje znajdziesz w artykule Szyfrowanie. |
Pola klienta i działania powodującego konwersję
Interfejs Google Ads API wymaga nagłówka żądania developer-token, a nagłówki żądania login-customer-id i linked-customer-id ustawiasz w przypadku różnych scenariuszy uwierzytelniania.
Interfejs Data Manager API nie wymaga tokena programisty, a informacje o logowaniu i połączonym kliencie podajesz za pomocą pól Destination, a nie nagłówków żądań. Więcej informacji o miejscach docelowych znajdziesz w artykule Konfigurowanie miejsc docelowych.
| Interfejs Google Ads API | Destination (interfejs Data Manager API) |
Uwagi |
|---|---|---|
customer_id prośby |
operating_account |
Ustaw account_id na identyfikator klienta konta konwersji Google Ads. Ustaw wartość account_type zasobu operating_account na GOOGLE_ADS. |
Nagłówek żądania developer-token |
Brak odpowiednika | Token programisty nie jest wymagany w przypadku interfejsu Data Manager API. |
Nagłówek żądania login-customer-id |
login_account |
Ustaw account_id na identyfikator klienta konta logowania. Ustaw parametr account_type na GOOGLE_ADS, jeśli konto logowania jest kontem Google Ads, lub na DATA_PARTNER, jeśli konto logowania jest kontem dostawcy danych. |
Nagłówek żądania linked-customer-id |
linked_account |
Jeśli uzyskujesz dostęp do operating_account za pomocą linku partnera, ustaw account_id na identyfikator klienta połączonego konta, a account_type na DATA_PARTNER. W przeciwnym razie nie ustawiaj pola linked_account. |
conversion_action |
product_destination_id |
Ustaw identyfikator numeryczny działania powodującego konwersję. Nie używaj nazwy zasobu. |
Pola zdarzeń
Tabela poniżej pokazuje, jak pola konwersji polegającej na sprzedaży w sklepie stacjonarnym są mapowane między tymi 2 interfejsami API.
W przeciwieństwie do interfejsu Google Ads API, który obsługuje uwzględnianie tylko jednego produktu na transakcję za pomocą ItemAttribute, interfejs Data Manager API obsługuje uwzględnianie wielu produktów na zdarzenie w CartData.
OfflineUserDataJobOperation.create (interfejs Google Ads API) |
Event (interfejs Data Manager API) |
Uwagi |
|---|---|---|
| Brak odpowiednika | event_source |
Wymagany. W przypadku konwersji polegających na sprzedaży w sklepie stacjonarnym ustaw wartość IN_STORE. |
transaction_attribute.conversion_action |
destinations.product_destination_id |
Zobacz Pola klienta i działania powodującego konwersję. Zamiast nazwy zasobu użyj identyfikatora numerycznego działania powodującego konwersję. |
transaction_attribute.transaction_date_time |
event_timestamp |
Szczegółowe informacje znajdziesz w sekcji Formaty sygnatury czasowej. |
transaction_attribute.transaction_amount_micros |
|
Ustaw wartość waluty, a nie wartość w mikrowalucie. Jeśli na przykład wartość konwersji wynosi 5, 23 zł, użyj wartości 5.23. |
transaction_attribute.currency_code |
currency |
Parametr wymagany. |
transaction_attribute.order_id |
transaction_id |
Parametr wymagany. |
transaction_attribute.store_attribute.store_code |
event_location.store_id |
Wymagany Ustaw kod sklepu w polu store_id w obiekcie EventLocation. |
transaction_attribute.custom_value |
|
Mapuj na pole value obiektu CustomVariable na poziomie zdarzenia lub obiektu ItemCustomVariable na poziomie produktu. |
transaction_attribute.item_attribute.item_id |
cart_data.items[].merchant_product_id |
|
transaction_attribute.item_attribute.merchant_id |
|
Jeśli ustawisz cart_data.merchant_id, będzie on działać jako domyślny dla wszystkich produktów, ale możesz go zastąpić w przypadku poszczególnych produktów. |
transaction_attribute.item_attribute.country_code |
|
Jeśli ustawisz cart_data.merchant_feed_label, będzie on działać jako domyślny dla wszystkich produktów, ale możesz go zastąpić w przypadku poszczególnych produktów. |
transaction_attribute.item_attribute.language_code |
|
Jeśli ustawisz cart_data.merchant_feed_language_code, będzie on działać jako domyślny dla wszystkich produktów, ale możesz go zastąpić w przypadku poszczególnych produktów. |
transaction_attribute.item_attribute.quantity |
cart_data.items[].quantity |
|
| Brak odpowiednika | cart_data.items[].unit_price |
Ustaw cenę jednostkową bez podatku, dostawy i rabatów na poziomie transakcji (zdarzenia) dla tego produktu. |
user_identifiers |
|
Wymagany.
|
consent |
consent |
Oba interfejsy API używają podobnego obiektu Consent (ad_user_data, ad_personalization). W przypadku interfejsu Data Manager API możesz też ustawić zgodę na wszystkie zdarzenia w żądaniu, ustawiając pole consent w IngestEventsRequest. |
Pola identyfikatorów użytkownika
UserIdentifier (interfejs Google Ads API) |
UserIdentifier (interfejs Data Manager API) |
Uwagi |
|---|---|---|
user_identifier_source |
Źródło określa, które pole należy wypełnić w interfejsie Data Manager API
|
|
hashed_email |
email_address |
Ustaw sformatowany i zaszyfrowany adres e-mail. Możesz też zaszyfrować zaszyfrowany adres e-mail. |
hashed_phone_number |
phone_number |
Ustaw sformatowany i zahaszowany numer telefonu. Możesz też zaszyfrować zahaszowany numer telefonu. |
address_info |
address |
Ustaw na obiekt AddressInfo. Postępuj zgodnie z wytycznymi dotyczącymi formatowania i szyfrowania. Możesz też zaszyfrować zaszyfrowane atrybuty adresu. |
address_info.hashed_first_name |
address.given_name |
|
address_info.hashed_last_name |
address.family_name |
|
address_info.country_code |
address.region_code |
|
address_info.postal_code |
address.postal_code |
|
address_info.city |
Brak odpowiednika | Nieobsługiwane w przypadku miejsc docelowych Google Ads. |
address_info.state |
Brak odpowiednika | Nieobsługiwane w przypadku miejsc docelowych Google Ads. |
address_info.hashed_street_address |
Brak odpowiednika | Nieobsługiwane w przypadku miejsc docelowych Google Ads. |