Przeczytaj poniższe sekcje, by dowiedzieć się, jak tworzyć raporty wyszukiwania na potrzeby reklam w wyszukiwarce. 360 Reporting API.
Usługa wyszukiwania
Interfejs Search Ads 360 Reporting API to specjalna usługa do wyszukiwania i raportowania danych.
SearchAds360Service
to ujednolicona usługa pobierania i raportowania obiektów
, który udostępnia 2 metody wyszukiwania: SearchStream
i Search
. Wyszukiwania są
przekazywane w ciągu zapytania w języku zapytań Search Ads 360. Możesz zdefiniować zapytania, aby:
- Pobieranie określonych atrybutów obiektów.
- Pobieranie danych o wydajności obiektów na podstawie zakresu dat.
- Porządkuj obiekty według ich atrybutów.
- Przefiltruj wyniki, korzystając z warunków, które określają, które obiekty mają być zwracane
- Ogranicz liczbę zwracanych obiektów.
Obie metody wyszukiwania zwracają wszystkie wiersze pasujące do zapytania. Jeśli na przykład
pobierze campaign.id
, campaign.name
i metrics.clicks
, interfejs API zwróci błąd
SearchAds360Row
zawierający obiekt kampanii z polami id
i name
i obiekt metrics
z ustawionym polem clicks
.
Metody wyszukiwania
SearchStream
Wysyła pojedyncze żądanie i inicjuje trwałe połączenie z interfejsem Search Ads 360 Reporting API niezależnie od rozmiaru raportu.
- Pobieranie pakietów danych rozpocznie się natychmiast z całym wynikiem w buforze danych.
- Twój kod może zacząć odczytywać buforowane dane bez konieczności czekania całą transmisję, aby zakończyć.
Search
Wysyła wiele żądań podziału na strony, aby pobrać cały raport.
Strategia SearchStream
zapewnia zwykle lepszą skuteczność, ponieważ eliminuje
czas przesyłania żądań do poszczególnych stron w obie strony. Zalecamy użycie
SearchStream
w przypadku wszystkich raportów zawierających ponad 10 000 wierszy. Nie ma znaczenia,
różnica w skuteczności między metodami mniejszych raportów (poniżej 10 000 wierszy).
Użyta metoda nie ma wpływu na limity i limity interfejsów API. Pojedyncze zapytanie lub raport liczone jako 1 operacja niezależnie od tego, czy wyniki są wyświetlane na stronach czy przesyłane strumieniowo.
Przykładowe zapytanie
To przykładowe zapytanie zwraca dane o skuteczności konta z ostatnich 30 dni według kampanii, w podziale na urządzenia:
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.average_cpc,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Poproś
Aby wysłać żądanie, musisz przekazać ciąg znaków customer_id
i query
do SearchAds360Service.SearchStream
lub SearchAds360Service.Search
za pomocą prostego interfejsu online.
Żądanie składa się z żądania HTTP POST
przesyłanego do interfejsu Search Ads 360 Reporting API
serwera pod jednym z tych adresów URL:
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:search
Oto pełny przykład definicji raportu searchStream
zawartej w
żądanie HTTP POST
:
POST /VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream HTTP/1.1 Host: searchads360.googleapis.com User-Agent: curl Content-Type: application/json Accept: application/json Authorization: Bearer [OAUTH_2.0_ACCESS_TOKEN] Parameters: { "query" : "SELECT campaign.name, campaign.status, segments.device, metrics.impressions, metrics.clicks, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_30_DAYS" }
Przetwarzanie odpowiedzi
SearchAds360Service
zwraca listę obiektów SearchAds360Row
.
Każdy element SearchAds360Row
reprezentuje obiekt zwrócony przez zapytanie. Każdy obiekt
składa się z zestawu atrybutów wypełnianych na podstawie żądanych pól
w klauzuli SELECT
zapytania. Atrybuty, których nie ma w atrybucie SELECT
klauzula nie jest wypełniana w obiektach w odpowiedzi.
Na przykład w zapytaniu poniżej każdy obiekt SearchAds360Row
wypełnia się tylko wartością
campaign.id
, campaign.name
i campaign.status
. innych atrybutów, takich jak
campaign.engine_id
lub campaign.bidding_strategy_type
, zostały pominięte.
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
Dokumentacja źródłowa
w sekcji Materiały referencyjne,
zawiera wszystkie informacje potrzebne do prawidłowego korzystania z każdego artefaktu. Jest
po jednej stronie na każdy zasób, np. ad_group
,
campaign
Strony segments
i metrics
a także wyświetlić listę wszystkich dostępnych segmentów i pól danych.
Niektóre zasoby, segmenty i dane są niezgodne i nie można ich używać razem, a inne są w pełni kompatybilne i wzajemnie się uzupełniają. Każdy strona zasobów zawiera następujące informacje (jeśli są dostępne) i inne odpowiednie) i inne:
- Przypisane zasoby
W przypadku niektórych zasobów możesz mieć możliwość niejawnego złączenia powiązanych zasobów, wybierając ich pola razem z polami zasobu w Twoją klauzulę
FROM
. Na przykład zasóbcampaign
jest zasobem przypisany zasóbad_group
. Oznacza to, że możesz: uwzględnij pola takie jakcampaign.id
icampaign.bidding_strategy_type
w podczas używaniaad_group
w klauzuliFROM
.W sekcji Przypisane zasoby znajduje się lista dostępnych przypisanych zasobów. Nie wszystkie zasoby mają przypisane zasoby.
- Kolumna Pola zasobów
Wszystkie pola zasobu są widoczne w kolumnie Pola zasobów. Każde pole zasobu zawiera link do dodatkowych informacji na jego temat, w tym jego wartości z opisem, kategorią, typem danych, typem adresu URL oraz z możliwością filtrowania i wyboru. czy powtarzalne ustawienia.
- Kolumna Segmenty
Nie wszystkie pola segmentów można wybrać z danym zasobem.
W kolumnie Segmenty znajduje się lista pól
segments
, których możesz użyć w ta sama klauzulaSELECT
co w polach zasobu. Każde pole prowadzi do pełnej treści informacje o polu, w tym jego opis, kategoria, typ danych i typ; oraz filtrowalne, możliwe do wyboru, sortowania i powtarzania. Jeśli jesteś używając zasobu w klauzuliFROM
, możesz użyć menu Tak/Nie do odfiltrowania niedostępnych segmentów.- Kolumna Dane
Nie wszystkie pola wskaźników można wybrać z danym zasobem.
W kolumnie Dane znajduje się lista pól
metrics
, których możesz użyć w ta sama klauzulaSELECT
co w polach zasobu. Każde pole prowadzi do pełnej treści informacje o polu, w tym jego opis, kategoria, typ danych i typ; oraz filtrowalne, możliwe do wyboru, sortowania i powtarzania. Jeśli jesteś przy użyciu zasobu w klauzuliFROM
, skorzystaj z menu Tak/Nie, aby odfiltrowywać dane, które są niedostępne. .
- Segmentowanie zasobów
Niektóre zasoby mają pola zasobów do podziału na segmenty, które możesz wybrać, zasób jest wymieniony w klauzuli
FROM
. Jeśli na przykład wybierzesz pole zasobucampaign
, takie jakcampaign.name
, gdy używająccampaign_budget
w klauzuliFROM
,campaign.resource_name
zostanie automatycznie zwrócona i podzielona na segmenty, ponieważcampaign
to segmentowania zasobucampaign_budget
.Sekcja Zasoby dotyczące segmentowania zawiera listę dostępnych zasobów do segmentowania. Nie Wszystkie zasoby mają zasoby do segmentacji.
- Do wyboru
Niektóre pola
segments
są niezgodne z innymi zasobami, segmentami i danych.Strona
segments
zawiera rozwijaną listę Do wyboru z dla każdego polasegments
, które wyświetla wszystkie zgodne pola zasobów, polametrics
i inne polasegments
które możesz uwzględnić w klauzuliSELECT
. .
Podział na segmenty
Możesz posegmentować wyniki wyszukiwania, dodając
segments.FIELD_NAME
do klauzuli SELECT
zapytania.
Na przykład segments.device
w polu
zapytanie poniżej daje raport z wierszem dla impressions
każdego z nich
dla zasobu określonego w klauzuli FROM
.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Wyniki zwrócone przez SearchAds360Service.SearchStream
wyglądają na coś
np. ten ciąg JSON:
{
"results":[
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"10922"
},
"segments":{
"device":"MOBILE"
}
},
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"28297"
},
"segments":{
"device":"DESKTOP"
}
},
...
]
}
Zobacz segments
,
z listą dostępnych pól segmentów, których możesz użyć.
Wiele segmentów
W klauzuli SELECT
zapytania możesz określić wiele segmentów.
odpowiedź zawiera po jednym obiekcie SearchAds360Row
dla każdej kombinacji funkcji
instancji głównego zasobu określonego w klauzuli FROM
i parametrze
wartość każdego wybranego pola segment
.
Na przykład to zapytanie zwróci po 1 wierszu na każdą kombinację
campaign
, segments.ad_network_type
i segments.date
.
SELECT
segments.ad_network_type
segments.date
FROM campaign
Zwróć uwagę, że wyniki są niejawnie podzielone na segmenty według poszczególnych wystąpień głównych , ale nie według wartości poszczególnych wybranych pól.
Poniżej znajduje się przykład zapytania, które powoduje wyświetlenie po 1 wierszu na kampanię, a nie po 1 wierszu na
odrębną wartość pola campaign.status
.
SELECT
campaign.status,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS
Podział na segmenty niejawne
Każdy raport jest początkowo dzielony według zasobu określonego w FROM
. Wskaźniki są podzielone na segmenty według pola resource_name
tego zasobu
To przykładowe zapytanie automatycznie zwraca ad_group.resource_name
i domyślnie
używa go do segmentowania danych na poziomie ad_group
.
SELECT metrics.impressions
FROM ad_group
Zwrócony ciąg znaków JSON wygląda podobnie do tego:
{
"results":[
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/2222222222"
},
"metrics":{
"impressions":"237"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/33333333333"
},
"metrics":{
"impressions":"15"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/44444444444"
},
"metrics":{
"impressions":"0"
}
}
]
}
Podstawowe segmenty dat
Aby określić datę, możesz użyć podstawowych segmentów dat w klauzuli WHERE
bądź okres.
Te pola segmentów są nazywane głównymi segmentami dat:
segments.date
, segments.week
, segments.month
, segments.quarter
i
segments.year
To przykładowe zapytanie zwraca dane kampanii clicks
z ostatnich 30 dni.
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Podstawowe pola segmentów dat stanowią wyjątek od ogólnej reguły,
nie możesz używać pola segmentów w klauzuli WHERE
, chyba że dodasz też pole
w klauzuli SELECT
. Więcej informacji znajdziesz w sekcji Filtrowanie zabronionych
i informacjami o nich.
Podstawowe reguły dotyczące segmentów dat:
W klauzuli
WHERE
możesz użyć podstawowego pola daty bez uwzględniania go w KlauzulaSELECT
. Jeśli chcesz, możesz też uwzględnić to pole w obu klauzulach.To przykładowe zapytanie zwraca dane
clicks
według nazwy kampanii w tym dniu zakres dat. Pamiętaj, że właściwośćsegments.date
nie jest uwzględniona w klauzuliSELECT
.SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'
Jeśli w klauzuli
SELECT
umieścisz podstawowe pole daty, musisz określić ograniczony zakres dat lub zakres dat w klauzuliWHERE
. Pola określone w KlauzuleSELECT
iWHERE
nie muszą być takie same.To przykładowe zapytanie zwraca dane (
clicks
) według nazwy kampanii podzielone na segmenty według miesiąc dla wszystkich dni w zakresie dat.SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'
Daty ISO 8601
Daty i zakresy dat możesz określić w formacie YYYY-MM-DD
(ISO 8601).
np.:
WHERE segments.date BETWEEN '2022-06-01' AND '2022-06-30'
WHERE segments.date >= '2022-06-01' AND segments.date <= '2022-06-30'
W przypadku podstawowych segmentów dat, które wymagają przedziału czasu (segments.week
,
segments.month
, segments.quarter
), możesz użyć operatora =
z parametrem
pierwszego dnia wybranego okresu, na przykład:
WHERE segments.month = '2022-06-01'
Wstępnie zdefiniowane daty
Możesz też użyć tych wstępnie zdefiniowanych dat i zakresów dat:
Wstępnie zdefiniowane daty | |
---|---|
TODAY |
Tylko dzisiaj. |
YESTERDAY |
Tylko wczoraj. |
LAST_7_DAYS |
Poprzednie 7 dni (bez bieżącego dnia). |
LAST_BUSINESS_WEEK |
Poprzednie 5 dni roboczych (od poniedziałku do piątku). |
THIS_MONTH |
Wszystkie dni bieżącego miesiąca. |
LAST_MONTH |
Wszystkie dni poprzedniego miesiąca. |
LAST_14_DAYS |
Poprzednie 14 dni z wyłączeniem bieżącego dnia. |
LAST_30_DAYS |
Ostatnie 30 dni z wyłączeniem bieżącego dnia. |
THIS_WEEK_SUN_TODAY |
Okres między poprzednią niedzielą a bieżącym dniem. |
THIS_WEEK_MON_TODAY |
Okres między poprzednim poniedziałek a bieżącym dniem. |
LAST_WEEK_SUN_SAT |
7-dniowy okres od ostatniej niedzieli. |
LAST_WEEK_MON_SUN |
7-dniowy okres od poprzedniego poniedziałku. |
Przykład:
WHERE segments.date DURING LAST_30_DAYS
Zerowe wskaźniki
Podczas wykonywania zapytania możesz napotkać dane o wartości 0 w przypadku niektórych podmiotów. Więcej informacji o tym, jak obsługiwać w zapytaniach wartość „zero danych”
NIEZNANY typ wyliczeniowy
Jeśli zasób jest zwracany z typem danych wyliczenia UNKNOWN
, oznacza to, że
typ nie jest w pełni obsługiwany w wersji API. Te zasoby mogły mieć
powstałych dzięki innym interfejsom. Na przykład nowa kampania lub reklama
wprowadzone w interfejsie Search Ads 360, ale nie jest jeszcze obsługiwane w wersji interfejsu API
którego dotyczy zapytanie.
Nadal możesz wybierać wskaźniki, gdy zasób ma typ UNKNOWN
, ale
o których musisz pamiętać:
- Zasób typu
UNKNOWN
może być obsługiwany później, ale może pozostaćUNKNOWN
bezterminowo. - Nowe obiekty typu
UNKNOWN
mogą pojawić się w dowolnym momencie. Te obiekty są zgodna wstecznie, ponieważ wartość wyliczenia jest już dostępna. Przedstawiamy dostępnych materiałów związanych z tą zmianą. Dzięki temu będzie można na koncie. ZasóbUNKNOWN
może się pojawić z powodu nowych aktywności na koncie za pomocą innych interfejsów lub dlatego, że zasób przestaje być obsługiwany. - Do
UNKNOWN
zasobów mogą być dołączone szczegółowe dane, do których zapytania. - Zasoby usługi
UNKNOWN
są zwykle w pełni widoczne w interfejsie Search Ads 360.