Segmentację, dostępną w interfejsie Google Ads jako osobne menu, można
implementowanych w interfejsie Google Ads API, dodając do zapytania odpowiednie pole. Dla:
na przykład dodanie segments.device
do
otrzymuje raport z po jednym wierszu dla każdej kombinacji urządzenia i
określonego zasobu w klauzuli FROM
, a element
są rozdzielane między nie wartości statystyczne (wyświetlenia, kliknięcia, konwersje itp.).
W interfejsie Google Ads można używać tylko jednego segmentu naraz, API możesz wskazać wiele segmentów w jednym zapytaniu.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Wyniki wysłania tego zapytania do
GoogleAdsService.SearchStream
będzie podobny do tego ciągu 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"
}
},
...
]
}
Zwróć uwagę, że w powyższym przykładowym wyniku atrybuty dla pierwszego i drugiego obiekty z nazwą zasobu są takie same. Wyświetlenia są podzielone na segmenty według device, więc dla tej samej kampanii mogą być zwracane co najmniej 2 obiekty.
Podział na segmenty niejawne
Każdy raport jest początkowo dzielony według zasobu określonego w FROM
. Pole resource_name zasobu w klauzuli FROM
ma postać
zwracanych, a dane są według niego segmentowane, nawet jeśli pole resource_name ma wartość
niewymienione w zapytaniu. Na przykład, jeśli wpiszesz
ad_group
jako zasób w klauzuli FROM
, a potem
ad_group.resource_name
będzie
zostanie automatycznie zwrócony, a dane będą niejawnie posegmentować w nim
ad_group.
W tym zapytaniu
SELECT metrics.impressions
FROM ad_group
otrzymasz ciąg JSON podobny 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"
}
}
]
}
Pamiętaj, że pole resource_name
elementu adGroup
jest zawsze zwracane, ponieważ
W klauzuli FROM
określono ad_group
jako zasób.
Pola segmentów do wyboru
Nie wszystkie pola segmentu można wybrać w przypadku danego zasobu w klauzuli FROM
.
Na przykład nadal będziemy wysyłać zapytania z domeny ad_group
. Aby można było wybrać pole segmentu z zasobu ad_group,
to pole musi występować na liście Segments
grupy ad_group. Segments
to żółta część tabeli dostępnych pól na
stronie metadanych zasobu ad_group
.
Segmentowanie zasobów
Podczas wybierania zasobów może być dostępna opcja złączenia niejawnie
na powiązanych zasobach, wybierając pola obok pól
w klauzuli FROM
. Powiązane zasoby znajdziesz w
Lista Attributed Resources
zasobu w metadanych klauzuli FROM
stronę. W przypadku zasobu ad_group
zobaczysz
możesz też wybrać pola z menu campaign
. Pole resource_name w dowolnym elemencie Attributed Resources
o wartości
1 pole w klauzuli SELECT
zostanie automatycznie zwrócone, nawet jeśli
pole resource_name nie jest wyraźnie uwzględnione w zapytaniu.
Podobnie jak w przypadku wybierania pól Attributed Resource
, możesz też wybrać opcję
Segmenting Resource
pól. Jeśli dany zasób ma atrybut Segmenting Resources
na stronie metadanych, a następnie wybierając pola z jednego z tych zasobów
spowoduje podzielenie zapytania na segmenty według zwróconej wartości resource_name
Segmenting Resource
Przekonasz się na przykład, że
campaign
zasób jest wymieniony jako Segmenting Resource
dla zasobu campaign_budget
. Zaznaczam dowolną z tych opcji
z pola kampanii, np. campaign.name
, z
zasób campaign_budget spowoduje, że pole campaign.name będzie nie tylko
zwraca, ale sprawi, że funkcja
campaign.resource_name
pole do
i podzielonych na segmenty.
Możliwość wyboru segmentów i danych
Dane pole segmentu może nie być zgodne z innym segmentem.
lub z niektórymi polami danych. Aby wskazać, które pola segmentu są
zgodne ze sobą, możesz sprawdzić listę selectable_with
segmentów w klauzuli SELECT
.
W przypadku pliku
ad_group
, dostępnych jest ponad 50 segmentów, które
który możesz wybrać. Jednak lista selectable_with
dla
segments.hotel_check_in_date
.
to znacznie mniejszy zestaw zgodnych segmentów. Oznacza to, że jeśli dodasz parametr
segments.hotel_check_in_date
w klauzuli SELECT
, ograniczysz
dostępnych fragmentów, które pozostały do wyboru
list.
- Gdy dodasz niektóre segmenty, dane w wierszu podsumowania mogą się zmniejszyć
- Gdy do zapytania zostanie dodane pole
segments.keyword.info.match_type
z parametremFROM ad_group_ad
, ten segment informuje zapytanie, aby pobierało ono tylko wiersze zawierające słowa kluczowe oraz usuń wszystkie wiersze, które nie są powiązane z słowa kluczowego. W tym przypadku dane będą niższe, ponieważ wykluczają one danych niedotyczących słów kluczowych.
Reguły dla segmentów w klauzuli WHERE
Gdy segment jest w klauzuli WHERE
, musi też znajdować się w SELECT
. Wyjątkiem od tej reguły są następujące segmenty dat, które są
nazywanych podstawowymi segmentami dat:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Reguły dla pól głównego segmentu dat
Segmenty segments.date
, segments.week
, segments.month
,
segments.quarter
i segments.year
działają tak:
Te segmenty można filtrować w klauzuli
WHERE
, ale nie pojawiają się one w klauzuliSELECT
.Jeśli którykolwiek z tych segmentów znajduje się w klauzuli
SELECT
, ograniczony zakres dat złożone z podstawowych segmentów dat należy określić w klauzuliWHERE
(segmenty dat nie muszą być takie same jak segmenty określone wSELECT
).
Przykłady
Błąd: ponieważ segments.date to
w klauzuli SELECT musisz określić ograniczony zakres dat w
klauzulę WHERE dla segments.date ,
segments.week , segments.month ,
segments.quarter lub segments.year .
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Prawidłowe: to zapytanie zwraca nazwy kampanii i
kliknięć uzyskanych w danym zakresie dat. Pamiętaj, że segments.date
nie musi występować w klauzuli SELECT .
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięć posegmentowanych według daty we wszystkich dniach w zakresie dat. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięć podzielonych według miesiąca we wszystkich dniach w zakresie dat. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięć podzielonych według kwartału, a następnie według miesiąca we wszystkich miesiącach w zakresie roku. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
Pamiętaj, że w przypadku parametru
search_term_view
, oraz
są niejawnie posegmentowane według grupy reklam, a nie tylko wyszukiwanego hasła, co odzwierciedla
struktura jego zasobów
name, która
obejmuje też grupę reklam. W rezultacie otrzymasz
pozornie duplikat
wiersze z tymi samymi wyszukiwanymi hasłami pojawiają się w wynikach, podczas gdy w rzeczywistości
wiersze należałyby do innej grupy reklam:
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
Chociaż dwa zwrócone obiekty w tym przykładzie wydają się być duplikatami,
których nazwy zasobów są różne, szczególnie w grupie reklam,
Oznacza to, że wyszukiwanie „zdjęcia Google” jest przypisany dwóm
grupy reklam (identyfikatory: 2222222222
i 33333333333
) w tym samym dniu (15.06.2015 r.).
Możemy więc stwierdzić, że interfejs API działał zgodnie z oczekiwaniami i nie zwrócił
w tym przypadku.