Kluczowa terminologia
- Zasób
- Element w Google Ads, np.
campaignlubad_group. - Segment
- Wymiar używany do grupowania danych, np.
segments.datelubsegments.device. Gdy segmenty są uwzględnione w klauzuliSELECTz danymi, dane są dzielone według segmentów. - Wskaźnik
- Miara skuteczności, np.
metrics.impressionslubmetrics.clicks. - Przypisany zasób
- Zasób, który jest niejawnie dołączony do zasobu głównego w klauzuli
FROM, co umożliwia wybieranie jego atrybutów wraz z atrybutami zasobu głównego.
Wysyłanie zapytań o informacje o zasobach lub metadanych
Za pomocą języka zapytań Google Ads możesz wysyłać do interfejsu Google Ads API zapytania o te typy informacji:
Zasoby i powiązane z nimi atrybuty, segmenty i dane za pomocą
GoogleAdsServiceSearch lub SearchStream: wynik zapytaniaGoogleAdsServiceto lista instancjiGoogleAdsRow, gdzie każda instancjaGoogleAdsRowreprezentuje zasób.Jeśli żądanie dotyczy jakichkolwiek atrybutów lub danych, wiersz zawiera również te pola. Jeśli żądane są jakieś segmenty, odpowiedź zawiera też dodatkowy wiersz dla każdej krotki segment-zasób.
Metadane dotyczące dostępnych pól i zasobów w
GoogleAdsFieldService: ta usługa udostępnia katalog pól, które można wyszukiwać, wraz ze szczegółowymi informacjami o ich zgodności i typie.Wynikiem zapytania
GoogleAdsFieldServicejest lista instancjiGoogleAdsField, z których każda (GoogleAdsField) zawiera szczegółowe informacje o żądanym polu.
Więcej informacji o strukturze zapytań znajdziesz w artykułach Struktura zapytań i Gramatyka języka Google Ads Query Language.
Zapytanie o atrybuty zasobów
Oto przykład podstawowego zapytania o atrybuty zasobu kampanii, które pokazuje, jak zwrócić identyfikator, nazwę i stan kampanii:
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
ORDER BY campaign.id
To zapytanie sortuje dane według identyfikatora kampanii. Każdy wynikowy obiekt GoogleAdsRow reprezentuje obiekt campaign wypełniony wybranymi polami, w tym polem resource_name kampanii.
Aby dowiedzieć się, jakie inne pola są dostępne w przypadku zapytań o kampanie, zapoznaj się z dokumentacją referencyjną Campaign.
Wysyłanie zapytań o dane
Oprócz wybranych atrybutów danego zasobu możesz też wysyłać zapytania o powiązane dane:
SELECT
campaign.id,
campaign.name,
campaign.status,
metrics.impressions
FROM campaign
WHERE campaign.status = 'PAUSED'
AND metrics.impressions > 1000
ORDER BY campaign.id
To zapytanie odfiltrowuje tylko kampanie, które mają stan PAUSED i uzyskały ponad 1000 wyświetleń, a następnie porządkuje je według identyfikatora kampanii. Każdy wynikowy obiekt GoogleAdsRow będzie miał pole metrics wypełnione wybranymi danymi.
Listę danych, które można wyszukiwać, znajdziesz w dokumentacji Metrics.
Zapytanie o segmenty
Oprócz wybranych atrybutów danego zasobu możesz też wysyłać zapytania o powiązane segmenty:
SELECT
campaign.id,
campaign.name,
campaign.status,
metrics.impressions,
segments.date
FROM campaign
WHERE campaign.status = 'PAUSED'
AND metrics.impressions > 1000
AND segments.date DURING LAST_30_DAYS
ORDER BY campaign.id
Podobnie jak w przypadku zapytania o dane, to zapytanie filtruje tylko kampanie, które mają stan PAUSED i uzyskały ponad 1000 wyświetleń. To zapytanie dzieli jednak dane według daty. W efekcie każdy obiekt GoogleAdsRow reprezentuje krotkę kampanii i segmentu daty.
Segmentacja dzieli wybrane dane, grupując je według każdego segmentu w klauzuli SELECT.
Listę segmentów, które można uwzględniać w zapytaniach, znajdziesz w dokumentacji Segments.
Zapytanie o atrybuty przydatnych materiałów
W zapytaniu dotyczącym danego zasobu możesz dołączyć inne powiązane zasoby, jeśli są dostępne. Te przydatne materiały są nazywane „zasobami przypisanymi”. Możesz dołączyć zasoby z atrybutami w sposób niejawny, wybierając atrybut w zapytaniu.
SELECT
campaign.id,
campaign.name,
campaign.status,
bidding_strategy.name
FROM campaign
ORDER BY campaign.id
To zapytanie nie tylko wybiera atrybuty kampanii, ale też pobiera powiązane atrybuty z każdej wybranej kampanii. Każdy wynikowy obiekt GoogleAdsRow reprezentuje obiekt campaign wypełniony wybranymi atrybutami kampanii oraz wybranym atrybutem strategii ustalania stawek bidding_strategy.name.
Aby dowiedzieć się, jakie zasoby z atrybucją są dostępne w przypadku zapytań o kampanie, zapoznaj się z dokumentacją Campaign.
Sprawdzone metody
- Wybierz tylko te pola, których potrzebujesz, aby uniknąć długiego czasu odpowiedzi i przekroczenia limitu czasu.
- Podczas programowania i testowania używaj
LIMIT, aby uniknąć przetwarzania dużych zbiorów wyników. - Zastosuj filtry w klauzuli
WHERE, aby zminimalizować przesyłanie danych i rozmiar odpowiedzi. - Zanim utworzysz złożone zapytania, użyj
GoogleAdsFieldService, aby sprawdzić zgodność pól i typy danych. - Pamiętaj, że niektóre pola, zwłaszcza te, które zawierają duże ilości danych lub złożone obliczenia, mogą zwiększyć koszt zapytania.
Mutowanie na podstawie wyników zapytania
Podczas wysyłania zapytania o dany zasób możesz od razu pobrać zwrócone wyniki jako obiekty, zmodyfikować je i odesłać do metody mutate w usłudze tego zasobu. Oto przykładowy proces:
- Wykonaj zapytanie dotyczące wszystkich kampanii
PAUSED, które mają ponad 1000 wyświetleń. - Pobierz obiekt
Campaignz polacampaignkażdego elementuGoogleAdsRoww odpowiedzi. - Zmień stan każdej kampanii z
PAUSEDnaENABLED. - Wywołaj metodę
CampaignService.MutateCampaignsze zmienionymi kampaniami i odpowiednim parametremFieldMask, aby je zaktualizować.
Metadane pola
Zapytania wysyłane do GoogleAdsFieldService służą do pobierania metadanych pól.
Te informacje pomogą Ci zrozumieć, jak można używać pól razem w zapytaniu. Dane są dostępne w interfejsie API, który dostarcza metadane niezbędne do weryfikacji lub utworzenia zapytania, dzięki czemu deweloperzy mogą to robić automatycznie. Oto typowe zapytanie o metadane:
SELECT
name,
category,
selectable,
filterable,
sortable,
selectable_with,
data_type,
is_repeated
WHERE name = "<INSERT_RESOURCE_OR_FIELD>"
W tym zapytaniu możesz zastąpić <INSERT_RESOURCE_OR_FIELD> zasobem (np. customer lub campaign) albo polem (np. campaign.id, metrics.impressions lub ad_group.id).
Listę pól, które można uwzględniać w zapytaniach, znajdziesz w dokumentacji GoogleAdsField.
Różnice między wersjami
Składnia, klauzule i operatory języka zapytań Google Ads są identyczne we wszystkich obsługiwanych wersjach interfejsu Google Ads API (v23, v24, v25 i v26), ale katalog zasobów, segmentów, danych i zachowań raportowania, które można wyszukiwać, różni się w zależności od wersji głównej. Wyślij zapytanie do GoogleAdsFieldService w punkcie końcowym docelowej wersji interfejsu API, aby sprawdzić pola i reguły zgodności dla tej wersji:
- Widok komponentów z rozwinięciem końcowego adresu URL:
- Obsługa kampanii produktowych (wersja 26 i nowsze):
final_url_expansion_asset_viewobsługuje kampanie produktowe (campaign.advertising_channel_type = 'SHOPPING') oprócz kampanii Performance Max i kampanii w sieci wyszukiwania. W przypadku kampanii produktowych możesz wybierać i filtrować polaad_group, ale nie możesz wybierać pólasset_group. - Dane do wyboru (wersja 25 i nowsze): zapytanie
final_url_expansion_asset_viewzwraca wszystkie dane do wyboru w widoku. W wersji 24 i starszych odpowiedzi zawierają tylkometrics.conversionsimetrics.conversions_valuew przypadku kampanii Performance Max orazmetrics.impressionsw przypadku kampanii w sieci wyszukiwania.
- Obsługa kampanii produktowych (wersja 26 i nowsze):
- Zasoby dotyczące celów związanych z cyklem życia: w wersji 25 i nowszych wszystkie cele związane z cyklem życia (pozyskiwanie nowych klientów, utrzymanie klientów i utrzymanie lojalności) są wyszukiwane w ujednoliconych zasobach
goalicampaign_goal_config, które zastępują zasobycustomer_lifecycle_goalicampaign_lifecycle_goal(używane w przypadku celów dotyczących pozyskiwania nowych klientów w wersji 24 i starszych, obok zasobówgoalicampaign_goal_configw przypadku celów dotyczących utrzymania klientów). - Raporty na temat produktów w kampaniach promujących aplikacje: w wersji 24 i nowszych zasób
shopping_productzwraca wiersze produktów w kampaniach promujących aplikacje, a także w kampaniach produktowych, kampaniach Performance Max, kampaniach generujących popyt i kampaniach wideo (w wersji 23 kampanie promujące aplikacje są wykluczone z wynikówshopping_product). - Zasoby, segmenty i dane zależne od wersji:
- Wersja 26 i nowsze: obejmuje zasób
search_lift_keyword_bundle,campaign.lift_measurement_config,local_services_lead.campaign,segments.search_lift_keyword_bundle,segments.search_propertyoraz dane dotyczące wzrostu liczby wyszukiwań (takie jakmetrics.relative_search_lift,metrics.normalized_incremental_searches,metrics.search_lift_cost_microsimetrics.search_lift_impressions). - Wersja 25 i nowsze: obejmuje zasoby pomiaru wzrostu (takie jak
lift_measurement_config), segmenty takie jaksegments.ad_sub_format_typeisegments.loyalty_membershiporaz wskaźniki zaangażowania na YouTube (metrics.youtube_likes,metrics.youtube_commentsimetrics.youtube_shares). Usuwalocal_services_lead.contact_details.email(który można wybrać w wersji 24 i starszych). - Wersja 24 i nowsze: obejmuje zasób
cart_data_sales_view,segments.conversion_attribution_event_typewshopping_performance_view,segments.mobile_device_platformisegments.ad_network_typewperformance_max_placement_view. Usuwacampaign.video_brand_safety_suitability(zastąpione przezcustomer.video_brand_safety_suitability),segments.ad_sub_network_typewcampaign_budgetorazsegments.click_typewad_group_asset,campaign_asseticustomer_asset(które można wybrać tylko w wersji 23).
- Wersja 26 i nowsze: obejmuje zasób
- Kod błędu dotyczący okresu ważności szczegółowych danych: zapytania, które segmentują według
segments.date,segments.weeklubsegments.hour(lub filtrują według zakresu dat krótszego niż miesiąc) poza 37-miesięcznym okresem ważności, zwracają błądDateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTEDw wersji 24 i nowszych (lubDateRangeError.UNKNOWNw wersji 23). Więcej informacji znajdziesz w artykule Zakresy dat.
Przykłady kodu
Biblioteki klienta zawierają przykłady użycia języka zapytań Google Ads w języku GoogleAdsService. Folder basic operations zawiera przykłady takie jak GetCampaigns, GetKeywords i SearchForGoogleAdsFields.