Segmentacja jest dostępna w interfejsie Google Ads jako osobne menu. Segmentację możesz wdrożyć w interfejsie Google Ads API, dodając do zapytania odpowiednie pole. Załóżmy na przykład, że do zapytania dodajesz segments.device. W wyniku otrzymasz raport z wierszem dla każdej kombinacji urządzenia i zasobu określonego we FROM fragmencie kodu oraz wartości statystyczne (wyświetlenia, kliknięcia, konwersje itp.) podzielone między te kombinacje.
W interfejsie Google Ads można używać tylko jednego segmentu naraz, ale za pomocą interfejsu API można określić wiele 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 przypominają 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 mogą zostać zwrócone co najmniej 2 obiekty.
niejawny podział na segmenty,
Każdy raport jest początkowo dzielony na segmenty według zasobu określonego w klauzuli FROM. Zwracane jest pole resource_name zasobu w klauzuli FROM, a dane są według niego dzielone na segmenty, nawet jeśli pole resource_name nie jest wyraźnie uwzględnione w zapytaniu. Jeśli na przykład w klauzuli FROM podasz jako zasób ad_group, automatycznie zwracany jest zasób ad_group.resource_name, a dane są niejawnie dzielone na segmenty na poziomie ad_group.
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 zasobu adGroup jest zawsze zwracane, ponieważ ad_group jest określony jako zasób w klauzuli FROM.
search_term_view
Zasób search_term_view jest też niejawnie dzielony na segmenty według grupy reklam, a nie tylko wyszukiwanego hasła, co odzwierciedla struktura jego nazwy, która również zawiera grupę reklam.
Dlatego w wynikach mogą się pojawiać pozornie zduplikowane wiersze z tymi samymi wyszukiwanymi hasłami, jeśli te wiersze należą do różnych grup 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 obiekty w tym przykładzie wydają się duplikatami, ich nazwy zasobów są różne, zwłaszcza w części dotyczącej identyfikatora grupy reklam.
Oznacza to, że wyszukiwane słowo "google photos" jest przypisane do 2 grup reklam (o identyfikatorach 2222222222 i 33333333333) w tym samym dniu (2024-06-15). Interfejs API działał więc zgodnie z oczekiwaniami i nie zwrócił w tym przypadku zduplikowanych obiektów.
Pola segmentów, które można wybrać
Nie wszystkie pola segmentu można wybrać dla danego zasobu w klauzuli FROM.
Załóżmy na przykład, że nadal wysyłasz zapytania do 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 segmentu
Podczas wybierania niektórych zasobów możesz mieć możliwość niejawnego dołączenia powiązanych zasobów przez wybranie ich pól obok pól zasobu w klauzuli FROM. Te przydatne materiały znajdziesz na liście Attributed Resources zasobu na stronie metadanych klauzuli FROM. W przypadku zasobu ad_group zobaczysz, że możesz też wybrać pola z zasobu campaign. Pole resource_name dowolnego obiektu Attributed Resources z co najmniej 1 polem w klauzuli SELECT jest zwracane automatycznie, nawet jeśli pole resource_name nie jest wyraźnie uwzględnione w zapytaniu.
Podobnie jak w przypadku pól Attributed Resource, możesz też wybrać pola Segmenting Resource. Jeśli dany zasób ma na swojej stronie metadanych listę Segmenting Resources, wybranie pól z jednego z wymienionych zasobów spowoduje, że zapytanie zostanie dodatkowo posegmentowane według zwracanego pola resource_name zasobu Segmenting Resource. Na przykład zasób campaign jest wymieniony jako Segmenting
Resource zasobu campaign_budget.
Wybranie dowolnego pola kampanii, np. campaign.name, z zasobu campaign_budget powoduje nie tylko zwrócenie pola campaign.name, ale też zwrócenie pola campaign.resource_name i podzielenie go na segmenty.
Możliwość wyboru między segmentami a danymi
Konkretne pole segmentu może być niezgodne z niektórymi innymi polami segmentu lub z niektórymi polami danych. Aby określić, które pola segmentów są ze sobą zgodne, przejrzyj listę segmentów selectable_with w klauzuli SELECT.
W przypadku zasobu ad_group dostępnych jest ponad 50 segmentów, które możesz wybrać. Jednak lista selectable_with dla segments.hotel_check_in_date to znacznie mniejszy zbiór 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.
Ograniczenia dotyczące segmentów wspólnych
Niektóre pola segmentów mają wyraźne ograniczenia wyboru, które wymagają, aby były one żądane wraz z segmentem nadrzędnym w klauzuli SELECT:
- Jeśli wybierzesz
segments.ad_sub_network_type(która obejmuje podsieci reklam na YouTube, takie jak In-Stream, In-Feed i Shorts), musisz też wybraćsegments.ad_network_type. - W przypadku wersji 25 i nowszych wybranie opcji
segments.ad_sub_format_type(która dzieli reklamy In-Stream niemożliwe do pominięcia w YouTube według czasu trwania) wymaga również wybrania opcjisegments.ad_format_type.
Niejawne filtrowanie według wyboru segmentu
Gdy wybierzesz w zapytaniu 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 zawiera wartość.
Wpływ: segments.keyword.*
Typowym i ważnym przykładem takiego zachowania jest wybranie dowolnego pola w sekcji segments.keyword (np. segments.keyword.info.text i segments.keyword.ad_group_criterion):
- Wykluczanie 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 słów kluczowych w sieci wyszukiwania. - Typy kampanii, których to dotyczy: w efekcie dane z typów kampanii lub grup reklam, które nie korzystają ze słów kluczowych w sieci wyszukiwania, są wykluczane z wyników.
Obejmuje to m.in.:
- Dynamiczne reklamy w wyszukiwarce: cele dynamicznych reklam w wyszukiwarce są oparte na treści witryny, a nie na słowach kluczowych.
- Kampanie produktowe: używają grup produktów zamiast słów kluczowych.
- Kampanie Performance Max: chociaż kampanie Performance Max mogą wyświetlać reklamy w sieci wyszukiwania, ich raporty nie są zwykle dzielone 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 są one dzielone na segmenty według słów kluczowych w sieci reklamowej ani innych metod kierowania w sieci reklamowej.
Reguły dotyczące segmentów w klauzuli WHERE
Jeśli segment znajduje się w klauzuli WHERE, musi też znajdować się w klauzuli SELECT.
Wyjątkiem od tej reguły są te segmenty daty, które są nazywane podstawowymi segmentami daty:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
Reguły dotyczące pól podstawowych segmentów daty
Segmenty segments.date, segments.week, segments.month, segments.quarter i segments.year działają w następujący sposób:
- Te segmenty można filtrować w klauzuli
WHEREbez konieczności ich występowania 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 daty. Segmenty dat nie muszą być takie same jak te określone w parametrzeSELECT.
Przykłady
Nieprawidłowe: ponieważ segments.date znajduje się w klauzuli SELECT, musisz określić skończony zakres dat w klauzuli 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ęcia uzyskane w podanym zakresie dat. Pamiętaj, że segments.date nie musi pojawiać się w klauzuli SELECT.
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięcia podzielone według daty dla wszystkich dni w podanym zakresie dat. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięcia podzielone na segmenty według miesięcy dla wszystkich dni w podanym zakresie dat. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Prawidłowe: to zapytanie zwraca nazwy kampanii i kliknięcia posegmentowane według kwartału, a następnie według miesiąca dla wszystkich miesięcy w podanym zakresie lat. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year >= 2020 AND segments.year <= 2024 |