Tworzenie raportów wyszukiwania w interfejsie Search Ads 360 Reporting API

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ób campaign jest zasobem przypisany zasób ad_group. Oznacza to, że możesz: uwzględnij pola takie jak campaign.id i campaign.bidding_strategy_type w podczas używania ad_group w klauzuli FROM.

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 klauzula SELECT 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 klauzuli FROM, 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 klauzula SELECT 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 klauzuli FROM, 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 zasobu campaign, takie jak campaign.name, gdy używając campaign_budget w klauzuli FROM, campaign.resource_name zostanie automatycznie zwrócona i podzielona na segmenty, ponieważ campaign to segmentowania zasobu campaign_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 pola segments, które wyświetla wszystkie zgodne pola zasobów, pola metrics i inne pola segments które możesz uwzględnić w klauzuli SELECT.

.
.

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 Klauzula SELECT. 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 klauzuli SELECT.

    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 klauzuli WHERE. Pola określone w Klauzule SELECT i WHERE 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ób UNKNOWN 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.