Segmentation

Segmentasi tersedia di UI Google Ads sebagai menu terpisah. Anda dapat menerapkan segmentasi di Google Ads API dengan menambahkan kolom yang tepat ke kueri. Misalnya, Anda menambahkan segments.device ke kueri. Hal ini akan menghasilkan laporan dengan baris untuk setiap kombinasi perangkat dan resource yang ditentukan dalam klausa FROM, dan nilai statistik (tayangan iklan, klik, konversi, dll.) dibagi di antara keduanya.

Di UI Google Ads, hanya satu segmen yang dapat digunakan dalam satu waktu, tetapi 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"
      }
    }
  ]
}

Dalam hasil contoh ini, atribut untuk objek pertama dan kedua, termasuk nama resource, sama. Tayangan iklan disegmentasikan menurut perangkat, dan dengan demikian, dua atau lebih objek dapat ditampilkan untuk kampanye yang sama.

Segmentasi implisit

Setiap laporan awalnya disegmentasikan menurut resource yang ditentukan dalam klausa FROM. Kolom resource_name resource dalam klausa FROM ditampilkan dan metrik disegmentasikan berdasarkan kolom tersebut, meskipun kolom resource_name tidak disertakan secara eksplisit dalam kueri. Misalnya, saat Anda menentukan ad_group sebagai resource dalam klausa FROM, maka ad_group.resource_name akan otomatis ditampilkan dan metrik secara implisit disegmentasikan terhadapnya 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"
      }
    }
  ]
}

Kolom resource_name dari adGroup selalu ditampilkan karena ad_group ditentukan sebagai resource dalam klausa FROM.

search_term_view

Resource search_term_view juga secara implisit disegmentasikan menurut grup iklan, bukan hanya istilah penelusuran, sebagaimana tercermin dalam struktur nama resource-nya, yang juga mencakup grup iklan. Oleh karena itu, Anda mungkin menerima baris yang tampaknya duplikat dengan istilah penelusuran yang sama yang muncul di hasil Anda jika baris tersebut termasuk dalam grup iklan yang berbeda:

{
  "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"
      }
    }
  ]
}

Meskipun kedua objek yang ditampilkan dalam contoh ini tampak duplikat, nama resource-nya sebenarnya berbeda, terutama di bagian ID grup iklan. Artinya, istilah penelusuran "google photos" diatribusikan ke dua grup iklan (ID 2222222222 dan 33333333333) pada tanggal yang sama (2024-06-15). Jadi, API berfungsi sebagaimana mestinya dan tidak menampilkan objek duplikat dalam kasus ini.

Kolom segmen yang dapat dipilih

Tidak semua kolom segmen dapat dipilih untuk resource tertentu dalam klausa FROM. Sebagai contoh, misalkan Anda 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.

Sumber daya segmen

Saat memilih dari beberapa resource, Anda mungkin memiliki opsi untuk bergabung secara implisit di resource terkait dengan memilih kolomnya bersama kolom resource dalam klausa FROM. Referensi terkait ini dapat ditemukan di daftar Attributed Resources pada resource di halaman metadata klausa FROM. Dalam kasus 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 satu kolom dalam klausa SELECT akan otomatis ditampilkan, meskipun kolom resource_name tidak disertakan secara eksplisit dalam kueri.

Mirip dengan memilih Attributed Resource kolom, Anda juga dapat memilih Segmenting Resource kolom. Jika resource tertentu memiliki Segmenting Resources daftar di halaman metadatanya, memilih kolom dari salah satu resource yang tercantum tersebut akan menyebabkan kueri disegmentasikan lebih lanjut menurut resource_name yang ditampilkan dari Segmenting Resource tersebut. Sebagai contoh, Anda akan menemukan bahwa resource campaign tercantum sebagai Segmenting Resource untuk resource campaign_budget. Memilih kolom kampanye apa pun, seperti campaign.name, dari resource campaign_budget tidak hanya menyebabkan kolom campaign.name ditampilkan, tetapi juga menyebabkan kolom campaign.resource_name ditampilkan dan disegmentasikan.

Kemampuan pemilihan antara segmen dan metrik

Kolom segmen tertentu mungkin tidak kompatibel dengan beberapa kolom segmen lainnya, atau dengan beberapa kolom metrik. Untuk mengidentifikasi kolom segmen mana yang kompatibel satu sama lain, tinjau daftar selectable_with segmen dalam klausa SELECT.

Dalam kasus 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 kompatibel yang jauh lebih kecil. Artinya, jika Anda menambahkan kolom segments.hotel_check_in_date ke klausa SELECT, Anda membatasi segmen yang tersedia yang tersisa untuk dipilih ke irisan dari kedua daftar ini.

Batasan segmen gabungan

Beberapa kolom segmen memiliki batasan pemilihan eksplisit yang mengharuskan kolom tersebut diminta bersama segmen induk dalam klausa SELECT:

Pemfilteran implisit menurut pilihan segmen

Saat Anda memilih kolom segmen tertentu dalam kueri, Google Ads API dapat secara implisit memfilter hasil untuk hanya menyertakan baris tempat segmen tersebut berlaku dan memiliki nilai.

Dampak segments.keyword.*

Contoh umum dan penting dari perilaku ini terjadi saat memilih kolom apa pun di bagian segments.keyword (seperti segments.keyword.info.text dan segments.keyword.ad_group_criterion):

  • Pengecualian Traffic Non-Kata Kunci: Jika Anda menyertakan kolom segments.keyword.* dalam klausa SELECT, hal ini akan membatasi hasil hanya pada baris yang terkait langsung dengan kriteria grup iklan kata kunci Jaringan Penelusuran.
  • Jenis Kampanye yang Terpengaruh: Akibatnya, data dari jenis kampanye atau grup iklan yang tidak mengandalkan kata kunci Penelusuran akan dikecualikan dari hasil. Hal ini mencakup, tetapi tidak terbatas pada:
    • Iklan Penelusuran Dinamis (DSA): Karena target DSA didasarkan pada konten situs, bukan kata kunci.
    • Kampanye Shopping: Yang menggunakan grup produk, bukan kata kunci.
    • Kampanye Performa Maksimal: Meskipun Performa Maksimal dapat ditayangkan di Penelusuran, pelaporannya biasanya tidak disegmentasikan berdasarkan kriteria kata kunci yang sama.
  • Jaringan Display: Kolom segments.keyword.* berkaitan dengan kata kunci yang digunakan di Jaringan Penelusuran. Laporan ini tidak disegmentasikan menurut kata kunci Jaringan Display atau metode penargetan display lainnya.

Aturan untuk segmen dalam klausa WHERE

Jika segmen berada dalam klausa WHERE, segmen tersebut 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 data 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 klausa SELECT.
  • Jika ada segmen ini dalam klausa SELECT, rentang tanggal terbatas yang terdiri dari segmen tanggal inti harus ditentukan dalam klausa WHERE. Segmen tanggal tidak harus sama dengan yang ditentukan dalam SELECT.

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 kampanye dan klik yang diperoleh selama rentang tanggal inklusif. Perhatikan bahwa segments.date tidak perlu muncul dalam klausa SELECT.
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date >= '2024-01-01'
  AND segments.date <= '2024-01-31'
Valid: Kueri ini menampilkan nama kampanye dan klik yang disegmentasikan menurut tanggal untuk semua hari dalam rentang tanggal inklusif.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date >= '2024-01-01'
  AND segments.date <= '2024-01-31'
Valid: Kueri ini menampilkan nama kampanye dan klik yang disegmentasikan menurut bulan untuk semua hari dalam rentang tanggal inklusif.
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date >= '2024-01-01'
  AND segments.date <= '2024-01-31'
Valid: Kueri ini menampilkan nama kampanye dan klik yang dikelompokkan menurut kuartal, lalu menurut bulan untuk semua bulan dalam rentang tahun inklusif.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year >= 2020
  AND segments.year <= 2024