Baca bagian di bawah untuk mempelajari cara membuat laporan penelusuran di Search Ads 360 Reporting API.
Layanan penelusuran
Search Ads 360 Reporting API menyediakan layanan khusus untuk penelusuran dan pelaporan.
SearchAds360Service
adalah layanan pengambilan dan pelaporan objek terpadu yang menyediakan dua metode
penelusuran: SearchStream dan Search. Penelusuran diteruskan dalam string kueri
yang ditulis dalam Bahasa Kueri Search Ads 360. Anda dapat menentukan kueri untuk:
- Mengambil atribut spesifik objek.
- Mengambil metrik performa untuk objek berdasarkan rentang tanggal.
- Mengurutkan objek berdasarkan atributnya.
- Memfilter hasil menggunakan kondisi yang menentukan objek mana yang akan ditampilkan
- Membatasi jumlah objek yang ditampilkan.
Kedua metode penelusuran menampilkan semua baris yang cocok dengan kueri Anda. Misalnya, saat Anda
mengambil campaign.id, campaign.name, dan metrics.clicks, API akan menampilkan
SearchAds360Row
yang berisi objek kampanye dengan kolom id dan name yang ditetapkan, dan objek
metrics dengan kolom clicks yang ditetapkan.
Metode penelusuran
SearchStreamMengirim satu permintaan dan memulai koneksi persisten dengan Search Ads 360 Reporting API, terlepas dari ukuran laporan.
- Paket data mulai didownload segera dengan seluruh hasil yang di-cache dalam buffer data.
- Kode Anda dapat mulai membaca data yang di-buffer tanpa harus menunggu hingga seluruh stream selesai.
SearchMengirim beberapa permintaan berpenomoran halaman untuk mendownload seluruh laporan.
SearchStream biasanya menawarkan performa yang lebih baik karena menghilangkan waktu jaringan pulang pergi yang diperlukan untuk meminta setiap halaman. Sebaiknya gunakan
SearchStream untuk semua laporan yang berisi lebih dari 10.000 baris. Tidak ada perbedaan performa yang signifikan antara metode untuk laporan yang lebih kecil (<10.000 baris).
Metode yang Anda gunakan tidak memengaruhi kuota dan batas API: satu kueri atau laporan dihitung sebagai satu operasi, terlepas dari apakah hasilnya di-page atau di-streaming.
Contoh kueri penelusuran
Contoh kueri ini menampilkan data performa untuk akun selama 30 hari terakhir menurut kampanye, yang disegmentasikan menurut perangkat:
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
Buat permintaan
Untuk mengirimkan permintaan, Anda harus meneruskan string customer_id dan query ke antarmuka
SearchAds360Service.SearchStream
atau
SearchAds360Service.Search.
Permintaan terdiri dari HTTP POST ke server Search Ads 360 Reporting API di salah satu URL berikut:
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:search
Berikut contoh lengkap definisi laporan untuk searchStream yang disertakan dalam
permintaan 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" }
Memproses respons
SearchAds360Service
menampilkan daftar objek
SearchAds360Row.
Setiap SearchAds360Row mewakili objek yang ditampilkan oleh kueri. Setiap objek terdiri dari serangkaian atribut yang diisi berdasarkan kolom yang diminta dalam klausa SELECT kueri. Atribut yang tidak disertakan dalam klausa SELECT tidak diisi dalam objek dalam respons.
Misalnya, kueri di bawah ini mengisi setiap objek SearchAds360Row hanya dengan
campaign.id, campaign.name, dan campaign.status. Atribut lainnya,
seperti campaign.engine_id atau campaign.bidding_strategy_type, tidak disertakan.
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
Dokumentasi referensi
Bagian Referensi mencakup semua informasi yang Anda
perlukan untuk menggunakan setiap artefak dengan benar. Ada satu halaman untuk setiap resource, misalnya ad_group dan campaign.
Halaman segments dan metrics mencantumkan semua kolom metrik dan segmen yang tersedia.
Beberapa resource, segmen, dan metrik tidak kompatibel dan tidak dapat digunakan bersama, sementara yang lain sepenuhnya kompatibel dan saling melengkapi. Setiap halaman resource mencakup informasi berikut (jika tersedia dan sesuai) dan lainnya:
- Resource yang diatribusikan
Untuk beberapa resource, Anda mungkin memiliki opsi untuk secara implisit menggabungkan resource terkait dengan memilih kolomnya bersama dengan kolom resource dalam klausa
FROM. Misalnya, resourcecampaignadalah resource yang diatribusikan dari resourcead_group. Artinya, Anda dapat menyertakan kolom seperticampaign.iddancampaign.bidding_strategy_typedalam kueri saat menggunakanad_groupdalam klausaFROM.Bagian Resource yang diatribusikan mencantumkan resource yang diatribusikan yang tersedia. Tidak semua resource memiliki resource yang diatribusikan.
- Kolom bidang resource
Semua kolom resource disertakan dalam kolom Kolom resource. Setiap kolom resource ditautkan ke detail selengkapnya tentang kolom, termasuk deskripsi, kategori, jenis data, URL jenis, dan setelan yang dapat difilter, dipilih, diurutkan, dan berulang.
- Kolom Segmen
Tidak semua kolom segmen dapat dipilih dengan resource tertentu.
Kolom Segmen mencantumkan kolom
segmentsyang dapat Anda gunakan dalam klausaSELECTyang sama dengan kolom resource. Setiap kolom ditautkan ke detail lengkap tentang kolom, termasuk deskripsi, kategori, jenis data, URL jenis, dan setelan yang dapat difilter, dapat dipilih, dapat diurutkan, dan berulang. Jika Anda menggunakan resource dalam klausaFROM, Anda dapat menggunakan dropdown Ya/Tidak untuk memfilter segmen yang tidak tersedia.- Kolom metrik
Tidak semua kolom metrik dapat dipilih dengan resource tertentu.
Kolom Metrik mencantumkan kolom
metricsyang dapat Anda gunakan dalam klausaSELECTyang sama dengan kolom resource. Setiap kolom ditautkan ke detail lengkap tentang kolom, termasuk deskripsi, kategori, jenis data, URL jenis, dan setelan yang dapat difilter, dapat dipilih, dapat diurutkan, dan berulang. Jika Anda menggunakan resource dalam klausaFROM, gunakan dropdown Ya/Tidak untuk memfilter metrik yang tidak tersedia.
- Menyegmentasikan resource
Beberapa resource memiliki kolom resource segmentasi yang dapat Anda pilih saat resource berada di klausa
FROM. Misalnya, jika Anda memilih kolom resourcecampaign, seperticampaign.name, saat menggunakancampaign_budgetdalam klausaFROM,campaign.resource_nameakan otomatis ditampilkan dan disegmentasikan, karenacampaignadalah resource segmentasicampaign_budget.Bagian Segmenting resources mencantumkan resource segmentasi yang tersedia. Tidak semua resource memiliki resource segmentasi.
- Dapat dipilih dengan
Beberapa kolom
segmentstidak kompatibel dengan resource, segmen, dan metrik lainnya.Halaman
segmentsmenyertakan Dapat dipilih dengan yang dapat diluaskan untuk setiap kolomsegmentsyang mencantumkan semua kolom resource yang kompatibel, kolommetrics, dan kolomsegmentslainnya yang dapat Anda sertakan dalam klausaSELECT.
Segmentasi
Anda dapat menyegmentasikan hasil penelusuran dengan menambahkan kolom
segments.FIELD_NAME ke klausa SELECT kueri Anda.
Misalnya, segments.device dalam
kueri di bawah, menghasilkan laporan dengan baris untuk impressions setiap perangkat
untuk resource yang ditentukan dalam
klausa FROM.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Hasil yang ditampilkan oleh
SearchAds360Service.SearchStream
akan terlihat seperti string JSON berikut:
{
"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"
}
},
...
]
}
Lihat segments untuk mengetahui daftar kolom segmen yang tersedia yang dapat Anda gunakan.
Beberapa segmen
Anda dapat menentukan beberapa segmen dalam klausa SELECT kueri Anda. Respons
berisi satu objek SearchAds360Row untuk setiap kombinasi dari
instance resource utama yang ditentukan dalam klausa FROM dan
nilai setiap kolom segment yang dipilih.
Misalnya, kueri berikut akan menampilkan satu baris untuk setiap kombinasi
campaign, segments.ad_network_type, dan segments.date.
SELECT
segments.ad_network_type
segments.date
FROM campaign
Perhatikan bahwa hasil secara implisit disegmentasikan menurut setiap instance resource utama, tetapi tidak menurut nilai setiap kolom yang dipilih.
Contoh kueri berikut menghasilkan satu baris per kampanye, bukan satu baris per
nilai berbeda dari kolom campaign.status.
SELECT
campaign.status,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS
Segmentasi implisit
Setiap laporan awalnya disegmentasikan menurut resource yang ditentukan dalam klausa FROM
clause. Metrik disegmentasikan menurut kolom resource_name resource ini
Contoh kueri ini otomatis menampilkan ad_group.resource_name dan secara implisit
menggunakannya untuk menyegmentasikan metrik di tingkat ad_group.
SELECT metrics.impressions
FROM ad_group
String JSON yang ditampilkan akan terlihat 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"
}
}
]
}
Segmen tanggal inti
Anda dapat menggunakan segmen tanggal inti dalam
klausa WHERE untuk menentukan tanggal atau
jangka waktu.
Kolom segmen berikut dikenal sebagai segmen tanggal inti:
segments.date, segments.week, segments.month, segments.quarter, dan
segments.year.
Contoh kueri ini menampilkan metrik clicks kampanye selama 30 hari terakhir.
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Kolom segmen tanggal inti adalah pengecualian terhadap aturan umum bahwa Anda tidak dapat menggunakan kolom segmen dalam klausa WHERE, kecuali jika Anda juga menyertakan kolom tersebut dalam klausa SELECT. Lihat
Pemfilteran yang dilarang untuk mengetahui informasi
selengkapnya.
Aturan segmen tanggal inti:
Anda dapat menggunakan kolom tanggal inti dalam klausa
WHEREtanpa menyertakannya dalam klausaSELECT. Anda juga dapat menyertakan kolom di kedua klausa jika mau.Contoh kueri ini menampilkan metrik
clicksmenurut nama kampanye selama rentang tanggal. Perhatikan bahwasegments.datetidak disertakan dalam klausaSELECT.SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'Jika menyertakan kolom tanggal inti dalam klausa
SELECT, Anda harus menentukan tanggal atau rentang tanggal terbatas dalam klausaWHERE. Kolom yang ditentukan dalam klausaSELECTdanWHEREtidak harus cocok.Contoh kueri ini menampilkan metrik
clicksmenurut nama kampanye yang disegmentasikan menurut bulan untuk semua hari dalam rentang tanggal.SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'
Tanggal ISO 8601
Anda dapat menggunakan format YYYY-MM-DD (ISO 8601) untuk menentukan tanggal dan rentang tanggal,
misalnya:
WHERE segments.date BETWEEN '2022-06-01' AND '2022-06-30'
WHERE segments.date >= '2022-06-01' AND segments.date <= '2022-06-30'
Untuk segmen tanggal inti yang memerlukan jangka waktu (segments.week,
segments.month, segments.quarter), Anda dapat menggunakan operator = dengan
hari pertama jangka waktu, misalnya:
WHERE segments.month = '2022-06-01'
Tanggal yang telah ditentukan
Anda juga dapat menggunakan tanggal dan rentang tanggal standar berikut:
| Tanggal yang telah ditentukan | |
|---|---|
TODAY |
Hanya hari ini. |
YESTERDAY |
Hanya kemarin. |
LAST_7_DAYS |
7 hari sebelumnya tidak termasuk hari ini. |
LAST_BUSINESS_WEEK |
Minggu kerja 5 hari sebelumnya (Senin hingga Jumat). |
THIS_MONTH |
Semua hari dalam bulan ini. |
LAST_MONTH |
Semua hari pada bulan sebelumnya. |
LAST_14_DAYS |
14 hari sebelumnya tidak termasuk hari ini. |
LAST_30_DAYS |
30 hari sebelumnya tidak termasuk hari ini. |
THIS_WEEK_SUN_TODAY |
Periode antara hari Minggu sebelumnya dan hari ini. |
THIS_WEEK_MON_TODAY |
Periode antara hari Senin sebelumnya dan hari ini. |
LAST_WEEK_SUN_SAT |
Periode 7 hari yang dimulai dari hari Minggu sebelumnya. |
LAST_WEEK_MON_SUN |
Periode 7 hari yang dimulai dari hari Senin sebelumnya. |
Contoh:
WHERE segments.date DURING LAST_30_DAYS
Metrik nol
Saat menjalankan kueri, Anda mungkin menemukan metrik dengan nilai nol untuk beberapa entity. Pelajari cara menangani metrik nol dalam kueri Anda.
Jenis enum UNKNOWN
Jika resource ditampilkan dengan jenis data enum UNKNOWN, artinya jenis tersebut tidak sepenuhnya didukung dalam versi API. Resource ini mungkin telah dibuat melalui antarmuka lain. Misalnya, kampanye atau iklan baru diperkenalkan di UI Search Ads 360, tetapi belum didukung di versi API yang Anda kueri.
Anda tetap dapat memilih metrik saat resource memiliki jenis UNKNOWN, tetapi Anda
harus mengingat hal berikut:
Resource dengan jenis
UNKNOWNmungkin didukung nanti, tetapi resource tersebut dapat tetapUNKNOWNtanpa batas waktu.Objek baru dengan jenis
UNKNOWNdapat muncul kapan saja. Objek ini kompatibel mundur karena nilai enum sudah tersedia. Kami memperkenalkan sumber daya dengan perubahan ini saat tersedia agar Anda memiliki gambaran yang akurat tentang akun Anda. ResourceUNKNOWNdapat muncul karena adanya aktivitas baru di akun Anda melalui antarmuka lain atau karena resource tidak lagi didukung secara resmi.Resource
UNKNOWNmungkin memiliki metrik mendetail yang dilampirkan dan dapat Anda kueri.UNKNOWNbiasanya sepenuhnya terlihat di UI Search Ads 360.