Zapytania dotyczące pól zasobów, segmentów i danych można wysyłać do metody Search lub SearchStream GoogleAdsService. Aby utworzyć zapytanie w języku Google Ads Query Language, użyj gramatyki języka. Ogólne informacje o języku Google Ads Query Language znajdziesz w artykule na jego temat. Zapytanie składa się z kilku klauzul:
SELECTFROMWHEREORDER BYLIMITPARAMETERS
Klauzule używają nazw pól, nazw zasobów, operatorów, warunków i porządkowania, aby ułatwić Ci wybór odpowiednich danych. Po połączeniu w jedno zapytanie możesz wysłać żądanie do interfejsu Google Ads API.
Klauzule
W sekcjach poniżej opisujemy przeznaczenie i składnię poszczególnych klauzul języka zapytań Google Ads.
WYBIERZ
Klauzula SELECT określa zestaw pól, które mają zostać pobrane w żądaniu.
SELECT przyjmuje listę pól zasobów, pól segmentów i danych rozdzieloną przecinkami i zwraca wartości w odpowiedzi. Klauzula SELECT jest wymagana w zapytaniu.
Poniższe przykładowe zapytanie pokazuje, jak wybrać atrybuty danego zasobu:
SELECT
campaign.id,
campaign.name
FROM campaign
W jednym żądaniu możesz poprosić o różne typy pól, na przykład:
SELECT
campaign.id,
campaign.name,
bidding_strategy.id,
bidding_strategy.name,
segments.device,
segments.date,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
- Pola zasobu głównego
campaign.idcampaign.name
- Pola zasobów przypisanych
bidding_strategy.idbidding_strategy.name
- Pola segmentu
segments.devicesegments.date
- Dane
metrics.impressionsmetrics.clicks
- Wysyłanie zapytań o pola, których nie można wybrać. Atrybut metadanych
selectabletych pól jest oznaczony jakofalse. - Wybieranie atrybutów pól powtarzanych. Atrybut metadanych
is_repeatedtych pól jest oznaczony jakotrue. - wybór pól, które są niedostępne dla danego zasobu w klauzuli
FROM; Atrybutów niektórych zasobów nie można wybierać razem, a w przypadku zasobu we fragmencie koduFROMdostępny jest tylko podzbiór wszystkich danych i segmentów. - wybór segmentów lub danych, które są ze sobą niezgodne; Więcej informacji znajdziesz w artykule na temat segmentacji.
Informacje dotyczące powyższych warunków można znaleźć w naszej dokumentacji referencyjnej lub na stronie GoogleAdsFieldService.
FROM
Klauzula FROM określa główny zasób, który ma zostać zwrócony. Zasób we fragmencie kodu FROM określa, jakich pól można używać we wszystkich pozostałych fragmentach kodu w danym zapytaniu. W klauzuli FROM można określić tylko 1 zasób. Klauzula FROM jest wymagana w zapytaniu do metody GoogleAdsService Search lub SearchStream. Jednak podczas korzystania z GoogleAdsFieldService nie należy podawać klauzuli FROM.
Chociaż w klauzuli FROM danego zapytania może występować tylko jeden zasób, dostępne mogą być też pola z zasobów przypisanych. Te zasoby są niejawnie połączone z zasobem w klauzuli FROM, więc aby zwrócić ich wartości, wystarczy dodać ich atrybuty do klauzuli SELECT. Nie wszystkie zasoby mają przypisane zasoby. W przykładzie poniżej możesz poprosić o identyfikator grupy reklam i identyfikator kampanii z grup reklam:
SELECT
campaign.id,
ad_group.id
FROM ad_group
Pole resource_name głównego zasobu jest zawsze zwracane.
W tym przykładzie pole ad_group.resource_name jest uwzględnione w odpowiedzi, mimo że nie zostało wyraźnie wybrane w zapytaniu:
SELECT ad_group.id
FROM ad_group
To samo dotyczy zasobów przypisanych, gdy wybrane jest co najmniej 1 pole.
Na przykład campaign.resource_name jest uwzględniany w odpowiedzi na to zapytanie:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE
Klauzula WHERE określa warunki, które mają być stosowane podczas filtrowania danych na potrzeby żądania. Używając klauzuli WHERE, określ co najmniej 1 warunek, oddzielając warunki operatorem AND. Warunki zwykle mają wzorzec field_name Operator value (lub używają BETWEEN value AND value, IS NULL lub IS NOT NULL). Klauzula WHERE jest opcjonalna w zapytaniu.
W przykładzie poniżej użyto WHERE, aby zwrócić dane z danego okresu:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Możesz połączyć kilka warunków, aby filtrować dane. Ten przykład żąda liczby kliknięć we wszystkich kampaniach z wyświetleniami na urządzeniach mobilnych w ciągu ostatnich 30 dni:
SELECT
campaign.id,
campaign.name,
segments.device,
metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
AND segments.device = 'MOBILE'
AND segments.date DURING LAST_30_DAYS
Segmenty w klauzuli WHERE muszą też występować w klauzuli SELECT, z wyjątkiem tych segmentów daty, które są nazywane podstawowymi segmentami daty:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
W poniższym zapytaniu wybrano segments.date.
Ten segment jest podstawowym segmentem daty, dlatego musisz podać skończony zakres dat w klauzuli WHERE składającej się z podstawowych segmentów daty:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Wszystkie segmenty, które spełniają poprzedni warunek, to segments.date, segments.week, segments.month, segments.quarter i segments.year. Jeśli wybrano którykolwiek z tych segmentów, co najmniej jeden z nich musi być użyty w klauzuli WHERE.
Więcej informacji o filtrowaniu według daty znajdziesz w artykule Zakresy dat.
Podczas filtrowania pamiętaj o uwzględnianiu wielkości liter w operatorze. Więcej informacji znajdziesz w sekcji Uwzględnianie wielkości liter.
Pełną listę operatorów znajdziesz w gramatyce języka.
ORDER BY
Klauzula ORDER BY określa kolejność zwracania wyników. Pozwala to uporządkować dane w kolejności rosnącej lub malejącej na podstawie nazwy pola. Każde sortowanie jest określone jako field_name, po którym następuje ASC lub DESC. Jeśli nie określono ani ASC, ani DESC, domyślnie używana jest kolejność ASC. Klauzula ORDER BY jest opcjonalna w zapytaniu.
To zapytanie porządkuje zwrócone kampanie według liczby kliknięć od największej do najmniejszej:
SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC
W klauzuli ORDER BY możesz określić wiele pól, używając listy rozdzielonej przecinkami. Kolejność jest taka sama jak w zapytaniu.
Na przykład w tym zapytaniu wybierającym dane grupy reklam wyniki są sortowane w kolejności rosnącej według nazwy kampanii, a następnie w kolejności malejącej według liczby wyświetleń i liczby kliknięć:
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC
LIMIT
Klauzula LIMIT umożliwia określenie liczby wyników do zwrócenia.
Jest to przydatne, jeśli potrzebujesz tylko podzbioru wyników.
Na przykład LIMIT może ograniczyć łączną liczbę wyników dla tego zapytania:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
PARAMETRY
Klauzula PARAMETERS pozwala określić metaparametry żądania.
Te parametry mogą wpływać na to, jakie rodzaje wierszy są zwracane.
Obsługiwane są te metaparametry:
include_drafts
Ustaw include_drafts na true, aby zwracać elementy w wersji roboczej.
Domyślna wartość to false.
Na przykład to zapytanie pobiera wersje robocze kampanii wraz ze zwykłymi kampaniami:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts = true
omit_unselected_resource_names
Ustaw omit_unselected_resource_names na true, aby pominąć nazwę zasobu każdego typu zasobu w odpowiedzi, chyba że jest to wyraźnie wymagane w klauzuli SELECT. Domyślna wartość to false.
| Zapytanie | Zwrócone zasoby |
|---|---|
SELECT campaign.name, customer.id FROM campaign |
Domyślna wartość parametru |
SELECT campaign.name, customer.id FROM campaign PARAMETERS omit_unselected_resource_names = true |
Brak Parametr |
SELECT campaign.name, campaign.resource_name FROM campaign PARAMETERS omit_unselected_resource_names = true |
Wartość |
Dodatkowe reguły językowe
Oprócz przykładów dla każdej klauzuli język zapytań Google Ads obsługuje te zachowania:
Pole zasobu głównego nie jest wymagane w klauzuli
SELECTzapytania. Możesz na przykład użyć co najmniej jednego pola zasobu głównego do filtrowania danych bez ich wybierania:SELECT campaign.id FROM ad_group WHERE ad_group.status = 'PAUSED'Wskaźniki można wybierać wyłącznie dla danego zasobu. Żadne inne pola z zasobu nie są wymagane w zapytaniu:
SELECT metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaignPola segmentacji można wybierać bez żadnych powiązanych pól zasobów ani danych:
SELECT segments.device FROM campaignPole
resource_name(np.campaign.resource_name) może służyć do filtrowania lub porządkowania danych:SELECT campaign.id, campaign.name FROM campaign WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'