Segmentasi, yang tersedia di UI Google Ads sebagai menu terpisah, dapat
diterapkan di Google Ads API hanya dengan menambahkan kolom yang sesuai ke kueri. Misalnya, menambahkan segments.device
ke
kueri, akan menghasilkan laporan dengan baris untuk setiap kombinasi perangkat dan
resource yang ditentukan dalam klausa FROM
, serta
nilai statistik (tayangan, klik, konversi, dll.) yang dibagi di antara keduanya.
Meskipun di UI Google Ads, hanya satu segmen dalam satu waktu yang dapat digunakan, dan dengan API, Anda dapat menentukan beberapa segmen dalam kueri yang sama.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Hasil dari pengiriman kueri ini ke
GoogleAdsService.SearchStream
akan terlihat seperti string JSON ini:
{
"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"
}
},
...
]
}
Perhatikan bahwa dalam hasil contoh di atas, atribut untuk objek pertama dan kedua termasuk nama resource sama. Tayangan disegmentasikan menurut perangkat sehingga dua objek atau lebih dapat ditampilkan untuk kampanye yang sama.
Segmentasi implisit
Setiap laporan awalnya disegmentasikan berdasarkan resource yang ditentukan dalam klausa FROM
. Kolom resource_name dari resource dalam klausa FROM
ditampilkan dan metrik disegmentasikan olehnya, meskipun kolom resource_name
tidak disertakan secara eksplisit dalam kueri. Misalnya, saat Anda menentukan
ad_group
sebagai resource dalam klausa FROM
,
ad_group.resource_name
akan
otomatis ditampilkan dan metrik akan secara implisit menyegmentasikannya di
tingkat ad_group.
Jadi untuk kueri ini,
SELECT metrics.impressions
FROM ad_group
Anda akan mendapatkan string JSON seperti ini:
{
"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"
}
}
]
}
Perhatikan bahwa kolom resource_name
dari adGroup
selalu ditampilkan karena
ad_group
ditentukan sebagai resource dalam klausa FROM
.
Kolom segmen yang dapat dipilih
Tidak semua kolom segmen dapat dipilih untuk resource tertentu dalam klausa FROM
.
Sebagai contoh, kita akan terus membuat kueri dari resource
ad_group
. Agar kolom segmen dapat dipilih dari resource ad_group,
kolom tersebut harus ada dalam daftar Segments
untuk ad_group. Daftar Segments
adalah bagian kuning dari tabel kolom yang tersedia di
halaman metadata resource ad_group
.
Resource segmen
Saat memilih dari beberapa resource, Anda mungkin memiliki opsi untuk bergabung secara implisit
pada resource terkait dengan memilih kolomnya bersama kolom
resource dalam klausa FROM
. Resource terkait ini dapat ditemukan dalam
daftar Attributed Resources
pada resource di halaman metadata
klausa FROM
. Untuk resource ad_group
, Anda akan melihat
bahwa Anda juga dapat memilih kolom dari resource
campaign
. Kolom resource_name dari Attributed Resources
apa pun dengan setidaknya
1 kolom dalam klausa SELECT
akan otomatis ditampilkan, meskipun
kolom resource_name tidak disertakan secara eksplisit dalam kueri.
Mirip dengan memilih kolom Attributed Resource
, Anda juga dapat memilih
kolom Segmenting Resource
. Jika resource tertentu memiliki daftar Segmenting Resources
di halaman metadata-nya, memilih kolom dari salah satu resource yang tercantum tersebut
akan menyebabkan kueri disegmentasikan lebih lanjut oleh resource_name yang ditampilkan dari
Segmenting Resource
tersebut. Contohnya, Anda akan menemukan bahwa
resource campaign
dicantumkan sebagai Segmenting Resource
untuk resource campaign_budget
. Memilih kolom kampanye apa pun, seperti campaign.name
, dari resource campaign_budget tidak hanya akan menyebabkan kolom campaign.name ditampilkan, tetapi juga akan menyebabkan kolom campaign.resource_name
ditampilkan dan disegmentasikan.
Pilihan antara segmen dan metrik
Kolom segmen tertentu mungkin tidak kompatibel dengan beberapa kolom segmen
lain, atau dengan beberapa kolom metrik. Untuk mengidentifikasi kolom segmen yang
kompatibel satu sama lain, Anda dapat meninjau daftar selectable_with
segmen dalam klausa SELECT
.
Untuk resource
ad_group
, ada lebih dari 50 segmen yang tersedia
yang dapat Anda pilih. Namun, daftar selectable_with
untuk
segments.hotel_check_in_date
adalah kumpulan segmen yang kompatibel yang jauh lebih kecil. Ini berarti jika Anda menambahkan kolom segments.hotel_check_in_date
ke dalam klausa SELECT
, Anda akan membatasi segmen yang tersedia yang tersisa untuk dipilih pada perpotongan dari kedua daftar ini.
- Saat menambahkan beberapa segmen, metrik di baris ringkasan dapat menurun
- Saat
segments.keyword.info.match_type
ditambahkan ke kueri denganFROM ad_group_ad
, segmen tersebut akan memberi tahu kueri untuk hanya mendapatkan baris data yang memiliki kata kunci, dan menghapus baris apa pun yang tidak terkait dengan kata kunci. Dalam kasus ini, metrik akan lebih rendah karena akan mengecualikan metrik non-kata kunci.
Aturan untuk segmen dalam klausa WHERE
Jika berada dalam klausa WHERE
, segmen juga harus berada dalam klausa
SELECT
. Pengecualian untuk aturan ini adalah segmen tanggal berikut, yang
disebut sebagai segmen tanggal inti:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Aturan untuk kolom segmen tanggal inti
Segmen segments.date
, segments.week
, segments.month
,
segments.quarter
, dan segments.year
berfungsi sebagai berikut:
Segmen ini dapat difilter dalam klausa
WHERE
tanpa muncul dalam klausaSELECT
.Jika salah satu segmen ini menggunakan klausa
SELECT
, rentang tanggal terbatas yang terdiri dari segmen tanggal inti harus ditentukan dalam klausaWHERE
(segmen tanggal tidak harus sama dengan yang ditentukan dalamSELECT
).
Contoh
Tidak valid: Karena segments.date ada dalam klausa SELECT , Anda harus menentukan rentang tanggal terbatas dalam klausa WHERE untuk segments.date , segments.week , segments.month , segments.quarter , atau segments.year .
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Valid: Kueri ini menampilkan nama dan klik kampanye yang diperoleh selama rentang tanggal. Perhatikan bahwa segments.date
tidak perlu muncul dalam klausa SELECT .
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Valid: Kueri ini menampilkan nama kampanye dan klik yang disegmentasikan menurut tanggal untuk semua hari dalam rentang tanggal. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Valid: Kueri ini menampilkan nama dan klik kampanye yang disegmentasikan menurut bulan untuk semua hari dalam rentang tanggal tersebut. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Valid: Kueri ini menampilkan nama dan klik kampanye yang disegmentasikan berdasarkan kuartal, lalu berdasarkan bulan untuk semua bulan dalam rentang tahun. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
Perhatikan bahwa untuk resource
search_term_view
, resource ini juga
disegregasi secara implisit menurut grup iklan, bukan hanya istilah penelusuran, seperti yang tercermin dalam
struktur nama
resource-nya, yang
juga menyertakan grup iklan. Oleh karena itu, Anda akan mendapatkan beberapa baris yang tampaknya duplikat,
dengan istilah penelusuran yang sama, yang muncul di hasil Anda, padahal sebenarnya,
baris tersebut merupakan bagian dari grup iklan yang berbeda:
{
"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"
}
}
]
}
Meskipun dua objek yang ditampilkan dalam contoh ini tampaknya merupakan duplikat,
nama resource-nya sebenarnya berbeda, terutama di bagian "grup iklan". Artinya, istilah penelusuran "google photos" diatribusikan ke dua grup iklan (ID 2222222222
dan 33333333333
) pada tanggal yang sama (15-06-2015).
Dengan demikian, kita dapat menyimpulkan bahwa dalam kasus ini API berfungsi sebagaimana mestinya dan tidak menampilkan
objek duplikat.