Segmentacja jest dostępna w interfejsie Google Ads jako osobne menu. Segmentację możesz zaimplementować w interfejsie Google Ads API, dodając odpowiednie pole do zapytania. Załóżmy na
przykład, że do zapytania dodasz segments.device. Spowoduje to utworzenie raportu z wierszem dla każdej kombinacji urządzenia
i określonego zasobu w klauzuli FROM oraz
z wartościami statystycznymi (wyświetlenia, kliknięcia, konwersje itp.) podzielonymi między
te wiersze.
W interfejsie Google Ads można używać tylko 1 segmentu naraz, ale w interfejsie API możesz określić kilka segmentów w tym samym zapytaniu.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Wyniki wysłania tego zapytania do GoogleAdsService.SearchStream będą przypominać 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"
}
},
...
]
}
W tym przykładowym wyniku atrybuty pierwszego i drugiego obiektu, w tym nazwa zasobu, są takie same. Wyświetlenia są podzielone na segmenty według urządzenia, dlatego w przypadku tej samej kampanii można zwrócić 2 lub więcej obiektów.
Segmentacja domyślna
Każdy raport jest początkowo podzielony na segmenty według zasobu określonego w klauzuli FROM. Pole resource_name zasobu w klauzuli FROM jest zwracane, a dane są podzielone na segmenty według tego pola, nawet jeśli nie jest ono wyraźnie uwzględnione w zapytaniu. Jeśli na przykład określisz
ad_group jako zasób w klauzula FROM, to
ad_group.resource_name zostanie
automatycznie zwrócone, a dane będą domyślnie podzielone na segmenty według tego pola na poziomie
grupy reklam.
W przypadku tego zapytania:
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"
}
}
]
}
Pole resource_name elementu adGroup jest zawsze zwracane, ponieważ ad_group jest określona jako zasób w klauzuli FROM.
Pola segmentów, które można wybrać
Nie wszystkie pola segmentów można wybrać w przypadku danego zasobu w klauzuli FROM.
Załóżmy na przykład, że nadal wysyłasz zapytania z zasobu
ad_group. Aby pole segmentu można było wybrać z zasobu ad_group, musi ono znajdować się na liście Segments dla ad_group. Lista Segments to żółta część tabeli dostępnych pól
na stronie metadanych zasobu ad_group.
Zasoby segmentów
W przypadku wybierania z niektórych zasobów możesz mieć możliwość domyślnego łączenia się z powiązanymi zasobami, wybierając ich pola obok pól zasobu w klauzuli FROM. Te powiązane zasoby znajdziesz na liście Attributed Resources na stronie metadanych zasobu w klauzuli FROM. W przypadku zasobu ad_group zobaczysz, że możesz też wybrać pola z zasobu campaign. Pole resource_name dowolnego zasobu Attributed Resources z co najmniej 1 polem w klauzuli SELECT zostanie automatycznie zwrócone, nawet jeśli nie jest ono wyraźnie uwzględnione w zapytaniu.
Podobnie jak w przypadku wybierania pól Attributed Resource możesz też wybrać pola Segmenting Resource. Jeśli dany zasób ma na stronie metadanych Segmenting Resources
listę, wybranie pól z jednego z tych zasobów spowoduje dalsze podzielenie zapytania na segmenty według zwróconej wartości
resource_name tego Segmenting Resource. Na przykład znajdziesz, że
zasób campaign jest wymieniony jako Segmenting
Resource dla zasobu campaign_budget.
Wybranie dowolnego pola kampanii, np.
campaign.name, z zasobu campaign_budget
spowoduje nie tylko zwrócenie pola campaign.name ale też zwrócenie pola
campaign.resource_name i podzielenie na segmenty według tego pola.
Możliwość wyboru między segmentami a danymi
Dane pole segmentu może być niezgodne z niektórymi innymi polami segmentów lub z niektórymi polami danych. Aby sprawdzić, które pola segmentów są ze sobą zgodne, zapoznaj się z listą selectable_with segmentów w klauzuli SELECT.
W przypadku zasobu ad_group możesz wybrać ponad 50
dostępnych segmentów. Jednak lista selectable_with dla
segments.hotel_check_in_date
to znacznie mniejszy zestaw zgodnych segmentów. Oznacza to, że jeśli dodasz pole segments.hotel_check_in_date do klauzuli SELECT, ograniczysz dostępne segmenty, które możesz wybrać, do części wspólnej tych 2 list.
Domyślne filtrowanie według wybranego segmentu
Gdy w zapytaniu wybierzesz określone pola segmentów, interfejs Google Ads API może domyślnie filtrować wyniki, aby uwzględniać tylko wiersze, w których dany segment ma zastosowanie i wartość.
Wpływ segments.keyword.*
Powszechny i ważny przykład takiego zachowania występuje, gdy wybierzesz dowolne pole
w sekcji segments.keyword (np. segments.keyword.info.text i
segments.keyword.ad_group_criterion).
- Wykluczenie ruchu niezwiązanego ze słowami kluczowymi: jeśli w klauzuli
SELECTuwzględnisz dowolne polesegments.keyword.*, wyniki zostaną ograniczone tylko do tych wierszy, które są bezpośrednio powiązane z kryterium grupy reklam w sieci wyszukiwania. Typy kampanii, których to dotyczy: w związku z tym dane z typów kampanii lub grup reklam, które nie są oparte na słowach kluczowych w wyszukiwarce, są wykluczane z wyników. Należą do nich między innymi:
- Dynamiczne reklamy w wyszukiwarce: ponieważ cele dynamicznych reklam w wyszukiwarce są oparte na treści witryny, a nie na słowach kluczowych.
- Kampanie produktowe: które używają grup produktów zamiast słów kluczowych.
- Kampanie Performance Max: chociaż kampanie Performance Max mogą wyświetlać reklamy w wyszukiwarce, ich raportowanie nie jest zwykle podzielone na segmenty według tych samych kryteriów słów kluczowych.
Sieć reklamowa: pola
segments.keyword.*dotyczą słów kluczowych używanych w sieci wyszukiwania. Nie dzielą one na segmenty według słów kluczowych w sieci reklamowej ani innych metod kierowania w sieci reklamowej.
Sprawdzona metoda: jeśli analiza ma obejmować dane o skuteczności z dynamicznych reklam w wyszukiwarce, kampanii produktowych lub innych źródeł niezwiązanych ze słowami kluczowymi w wyszukiwarce, nie uwzględniaj w zapytaniu pól z segments.keyword.*. Najpierw przeanalizuj dane we wszystkich typach kampanii, a segmentację według słów kluczowych zastosuj tylko wtedy, gdy skupiasz się na skuteczności słów kluczowych w sieci wyszukiwania.
Reguły dotyczące segmentów w klauzuli WHERE
Gdy segment znajduje się w klauzuli WHERE, musi też znajdować się w klauzuli SELECT.
Wyjątkiem od tej reguły są te segmenty dat, które są nazywane
podstawowymi segmentami dat:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
Reguły dotyczące pól podstawowych segmentów dat
Segmenty segments.date, segments.week, segments.month, segments.quarter i segments.year działają w ten sposób:
Te segmenty można filtrować w klauzuli
WHEREbez uwzględniania ich w klauzuliSELECT.Jeśli którykolwiek z tych segmentów znajduje się w klauzuli
SELECT, w klauzuliWHEREnależy określić skończony zakres dat składający się z podstawowych segmentów dat. Segmenty dat nie muszą być takie same jak te określone w klauzuliSELECT.
Przykłady
Nieprawidłowe: ponieważ segments.date znajduje się
w klauzuli SELECT, w klauzuli WHERE musisz określić skończony zakres dat 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ęcia uzyskane 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 > '2024-01-01' AND segments.date < '2024-02-01' |
| Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięcia podzielone na segmenty według daty dla wszystkich dni w zakresie dat. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięcia podzielone na segmenty według miesiąca dla wszystkich dni w zakresie dat. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięcia podzielone na segmenty według kwartału, a następnie według miesiąca dla wszystkich miesięcy w zakresie roku. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2019 AND segments.year < 2024 |
search_term_view
Zasób search_term_view jest też domyślnie
podzielony na segmenty według grupy reklam, a nie tylko według wyszukiwanego hasła, co odzwierciedla struktura
jego nazwy zasobu,
która zawiera też grupę reklam. Dlatego w wynikach zobaczysz pozornie zduplikowane wiersze z tymi samymi wyszukiwanymi hasłami, ale te wiersze należą do innej grupy reklam.
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2024-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2024-06-15"
}
}
]
}
Chociaż 2 zwrócone w tym przykładzie obiekty wydają się duplikatami, ich nazwy zasobów są różne, zwłaszcza w części „grupa reklam”. Oznacza to, że wyszukiwane hasło „zdjęcia google” jest przypisane do 2 grup reklam (o identyfikatorach 2222222222 i 33333333333) w tym samym dniu (2024-06-15). Możemy więc stwierdzić, że interfejs API działał zgodnie z oczekiwaniami i w tym przypadku nie zwrócił zduplikowanych obiektów.