Struktura interfejsu API

Film: omówienie usług i zasobów z warsztatów w 2019 r.

Z tego przewodnika dowiesz się, jakie są główne komponenty interfejsu Google Ads API. Interfejs Google Ads API składa się z zasobów i usług. Zasób reprezentuje element Google Ads, a usługi służą do pobierania i modyfikowania elementów Google Ads.

Hierarchia obiektów

Konto Google Ads można traktować jako hierarchię obiektów.

Model kampanii

  • Zasobem najwyższego poziomu na koncie jest klient.

  • Każdy klient ma co najmniej 1 aktywną kampanię.

  • Każda kampania zawiera co najmniej 1 grupę reklam, która służy do grupowania reklam w logiczne zbiory.

  • Reklama w grupie reklam reprezentuje reklamę, którą wyświetlasz. Każda grupa reklam zawiera co najmniej 1 reklamę w grupie reklam, z wyjątkiem kampanii promujących aplikacje, które mogą mieć tylko 1 reklamę w grupie reklam.

Do grupy reklam lub kampanii możesz dołączyć co najmniej 1 element AdGroupCriterion lub CampaignCriterion. Reprezentują one kryteria określające, jak wyzwalane są reklamy.

Istnieje wiele typów kryteriów, takich jak słowa kluczowe, zakresy wiekowe i lokalizacje. Kryteria zdefiniowane na poziomie kampanii wpływają na wszystkie inne zasoby w kampanii. Możesz też określić budżety i daty dla całej kampanii.

Na koniec możesz dołączyć komponenty na poziomie konta, kampanii lub grupy reklam. Komponenty umożliwiają podawanie w reklamach dodatkowych informacji, takich jak numery telefonów, adresy lub promocje. Więcej informacji znajdziesz w artykule Przegląd komponentów.

Zasoby

Zasoby reprezentują elementy na koncie Google Ads. Campaign i AdGroup to 2 przykłady zasobów.

Identyfikatory obiektów

Każdy obiekt w Google Ads jest identyfikowany przez własny identyfikator. Niektóre z tych identyfikatorów są unikalne globalnie we wszystkich kontach Google Ads, a inne – tylko w ograniczonym zakresie.

Identyfikator obiektu Zakres unikalności Unikalny globalnie?
Identyfikator budżetu Cały świat Tak
Identyfikator kampanii Cały świat Tak
Identyfikator grupy reklam Cały świat Tak
Identyfikator reklamy Grupa reklam Nie, ale para (AdGroupId, AdId) jest unikalna globalnie
Identyfikator kryterium grupy reklam Grupa reklam Nie, ale para (AdGroupId, CriterionId) jest unikalna globalnie
Identyfikator kryterium kampanii Kampania Nie, ale para (CampaignId, CriterionId) jest unikalna globalnie
Identyfikator etykiety Klient Nie, ale para (CustomerId, LabelId) jest unikalna globalnie
Identyfikator listy użytkowników Cały świat Tak
Identyfikator zasobu Cały świat Tak

Te reguły dotyczące identyfikatorów mogą być przydatne podczas projektowania pamięci lokalnej dla obiektów Google Ads.

Niektóre obiekty mogą być używane w przypadku wielu typów elementów. W takich przypadkach obiekt zawiera pole type, które opisuje jego zawartość. Na przykład, AdGroupAd może odnosić się do obiektu takiego jak reklama tekstowa, reklama hotelu lub reklama lokalna. Do tej wartości można uzyskać dostęp za pomocą pola AdGroupAd.ad.type, które zwraca wartość z wyliczenia AdType.

Nazwy zasobów

Każdy zasób jest jednoznacznie identyfikowany przez ciąg znaków resource_name, który łączy zasób i jego elementy nadrzędne w ścieżkę. Na przykład nazwy zasobów kampanii mają postać:

customers/customer_id/campaigns/campaign_id

W przypadku kampanii o identyfikatorze 987654 na koncie Google Ads o identyfikatorze klienta 1234567 nazwa resource_name będzie wyglądać tak:

customers/1234567/campaigns/987654

Usługi

Usługi umożliwiają pobieranie i modyfikowanie elementów Google Ads. Istnieją 3 rodzaje usług: modyfikacji, pobierania obiektów i statystyk oraz pobierania metadanych.

Modyfikowanie (zmienianie) obiektów

Te usługi modyfikują instancje powiązanego typu zasobu za pomocą żądania mutate. Udostępniają też żądanie get, które pobiera pojedynczą instancję zasobu. Może to być przydatne do sprawdzania struktury zasobu.

Przykłady usług:

Każde żądanie mutate musi zawierać odpowiednie obiekty operation. Na przykład metoda CampaignService.MutateCampaigns oczekuje co najmniej 1 instancji CampaignOperation. Szczegółowe omówienie operacji znajdziesz w artykule Zmienianie i sprawdzanie obiektów.

Równoczesne zmiany

Obiektu Google Ads nie można modyfikować równocześnie z więcej niż 1 źródła. Może to powodować błędy, jeśli wielu użytkowników aktualizuje ten sam obiekt za pomocą Twojej aplikacji lub jeśli zmieniasz obiekty Google Ads równolegle za pomocą wielu wątków. Obejmuje to aktualizowanie obiektu z wielu wątków w tej samej aplikacji lub z różnych aplikacji (np. z Twojej aplikacji i równoczesnej sesji w interfejsie Google Ads).

Interfejs API nie umożliwia blokowania obiektu przed aktualizacją. Jeśli 2 źródła próbują równocześnie zmienić obiekt, interfejs API zgłasza błąd DatabaseError.CONCURRENT_MODIFICATION_ERROR.

Zmiany asynchroniczne i synchroniczne

Metody zmiany interfejsu Google Ads API są synchroniczne. Wywołania interfejsu API zwracają odpowiedź dopiero po zmianie obiektów, co wymaga czekania na odpowiedź na każde żądanie. Chociaż to podejście jest stosunkowo proste w kodowaniu, może negatywnie wpływać na równoważenie obciążenia i marnować zasoby, jeśli procesy muszą czekać na zakończenie wywołań.

Alternatywnym podejściem jest asynchroniczne zmienianie obiektów za pomocą BatchJobService, które wykonuje pakiety operacji w wielu usługach bez czekania na ich zakończenie. Po przesłaniu zadania wsadowego serwery interfejsu Google Ads API wykonują operacje asynchronicznie, co pozwala procesom wykonywać inne operacje. Możesz okresowo sprawdzać stan zadania, aby dowiedzieć się, czy zostało ono ukończone.

Więcej informacji o przetwarzaniu asynchronicznym znajdziesz w przewodniku Przetwarzanie wsadowe.

Weryfikacja zmian

Większość żądań zmiany można zweryfikować bez wykonywania wywołania na rzeczywistych danych. Możesz przetestować żądanie pod kątem brakujących parametrów i nieprawidłowych wartości pól bez wykonywania operacji.

Aby użyć tej funkcji, ustaw opcjonalne pole logiczne validate_only żądania na true. Żądanie zostanie w pełni zweryfikowane tak, jakby miało zostać wykonane, ale ostateczne wykonanie zostanie pominięte. Jeśli nie zostaną znalezione żadne błędy, zostanie zwrócona pusta odpowiedź. Jeśli weryfikacja się nie powiedzie, komunikaty o błędach w odpowiedzi wskażą punkty, w których wystąpił błąd.

validate_only jest szczególnie przydatne do testowania reklam pod kątem typowych naruszeń zasad. Reklamy są automatycznie odrzucane, jeśli naruszają zasady, np. zawierają określone słowa, znaki interpunkcyjne, wielkie litery lub mają określoną długość. Jedna zła reklama może spowodować niepowodzenie całej partii. Testowanie nowej reklamy w żądaniu validate_only może ujawnić takie naruszenia. Aby zobaczyć, jak to działa, zapoznaj się z przykładem kodu dotyczącym obsługi błędów naruszenia zasad.

Pobieranie obiektów i statystyk skuteczności

GoogleAdsService to pojedyncza, ujednolicona usługa do pobierania obiektów i statystyk skuteczności.

Wszystkie Search i SearchStream żądania dotyczące GoogleAdsService wymagają zapytania, które określa zasób, do którego ma być kierowane zapytanie, atrybuty zasobu i statystyki skuteczności do pobrania, predykaty do filtrowania żądania oraz segmenty do dalszego podziału statystyk skuteczności. Więcej informacji o formacie zapytań, znajdziesz w przewodniku po języku zapytań Google Ads.

Pobieranie metadanych

GoogleAdsFieldService pobiera metadane o zasobach w interfejsie Google Ads API, takie jak dostępne atrybuty zasobu i jego typ danych.

Ta usługa zawiera informacje potrzebne do utworzenia zapytania do GoogleAdsService. Dla wygody informacje zwracane przez GoogleAdsFieldService są też dostępne w dokumentacji referencyjnej pól.