Segmentasyon

Segmentasyon, Google Ads kullanıcı arayüzünde ayrı bir menü olarak kullanılabilir. Google Ads API'de, sorguya uygun alanı ekleyerek segmentasyon uygulayabilirsiniz. Örneğin, bir sorguya segments.device eklediğinizi varsayalım. Bu durumda, FROM ifadesinde belirtilen cihaz ve kaynak kombinasyonlarının her biri için bir satır içeren bir rapor oluşturulur. İstatistiksel değerler (gösterimler, tıklamalar, dönüşümler vb.) bu satırlar arasında bölünür.

Google Ads kullanıcı arayüzünde aynı anda yalnızca bir segment kullanılabilir ancak API ile aynı sorguda birden fazla segment belirtebilirsiniz.

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

Bu sorguyu GoogleAdsService.SearchStream adresine göndermenin sonuçları şu JSON dizesine benzer:

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

Bu örnek sonuçta, kaynak adı da dahil olmak üzere birinci ve ikinci nesnelerin özellikleri aynıdır. Gösterimler cihaza göre segmentlere ayrılır. Bu nedenle, aynı kampanya için iki veya daha fazla nesne döndürülebilir.

Örtülü segmentasyon

Başlangıçta her rapor, FROM ifadesinde belirtilen kaynağa göre segmentlere ayrılır. Kaynak adı alanı sorguya açıkça dahil edilmese bile FROM ifadesindeki kaynağın resource_name alanı döndürülür ve metrikler bu alana göre segmentlere ayrılır. Örneğin, FROM ifadesinde kaynak olarak ad_group değerini belirttiğinizde ad_group.resource_name otomatik olarak döndürülür ve metrikler, reklam grubu düzeyinde buna karşı örtülü olarak segmentlere ayrılır.

Bu nedenle, bu sorgu için

SELECT metrics.impressions
FROM ad_group

Şuna benzer bir JSON dizesi alırsınız:

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

adGroup öğesinin resource_name alanı, ad_group, FROM ifadesinde kaynak olarak belirtildiği için her zaman döndürülür.

Seçilebilir segment alanları

FROM ifadesinde belirli bir kaynak için tüm segment alanları seçilemez. Örneğin, ad_group kaynağını sorgulamaya devam ettiğinizi varsayalım. Bir segment alanının ad_group kaynağında seçilebilir olması için bu alanın ad_group için Segments listesinde bulunması gerekir. Segments listesi, ad_group kaynağının meta veri sayfasındaki kullanılabilir alanlar tablosunun sarı kısmıdır.

Segment kaynakları

Bazı kaynaklardan seçim yaparken FROM ifadesindeki kaynak alanlarının yanı sıra ilgili kaynakların alanlarını da seçerek ilgili kaynaklara örtülü olarak katılma seçeneğiniz olabilir. Bu ilgili kaynakları, FROM maddesinin meta veri sayfasındaki Attributed Resources listesinde bulabilirsiniz. ad_group kaynağı söz konusu olduğunda, campaign kaynağındaki alanları da seçebileceğinizi görürsünüz. SELECT ifadesinde en az bir alan bulunan tüm Attributed Resources öğelerinin resource_name alanı, resource_name alanı sorguya açıkça dahil edilmemiş olsa bile otomatik olarak döndürülür.

Attributed Resource alanlarını seçmeye benzer şekilde, Segmenting Resource alanlarını da seçebilirsiniz. Belirli bir kaynağın meta veri sayfasında Segmenting Resources liste varsa, listelenen kaynaklardan birindeki alanları seçtiğinizde sorgu, söz konusu Segmenting Resource'nin döndürülen resource_name'sine göre daha fazla segmentlere ayrılır. Örneğin, campaign kaynağının campaign_budget kaynağı için Segmenting Resource olarak listelendiğini görürsünüz. campaign_budget kaynağında campaign.name gibi herhangi bir kampanya alanı seçildiğinde yalnızca campaign.name alanı döndürülmekle kalmaz, aynı zamanda campaign.resource_name alanı da döndürülür ve segmentlere ayrılır.

Segmentler ve metrikler arasında seçim yapma

Belirli bir segment alanı, diğer segment alanlarından bazılarıyla veya metrik alanlarından bazılarıyla uyumlu olmayabilir. Hangi segment alanlarının birbiriyle uyumlu olduğunu belirlemek için selectable_with listesindeki SELECT ifadesindeki segmentleri inceleyin.

ad_group kaynağı için seçebileceğiniz 50'den fazla segment vardır. Ancak segments.hotel_check_in_date için selectable_with listesi, uyumlu segmentlerden oluşan çok daha küçük bir settir. Yani segments.hotel_check_in_date alanını SELECT ifadesine eklerseniz seçebileceğiniz segmentleri bu iki listenin kesişimiyle sınırlandırmış olursunuz.

Belirli segmentler eklediğinizde özet satırındaki metrikler azalabilir. segments.keyword.info.match_type, FROM ad_group_ad içeren bir sorguya eklendiğinde bu segment, sorguya yalnızca anahtar kelimeler içeren veri satırlarını almasını ve anahtar kelimeyle ilişkilendirilmeyen tüm satırları kaldırmasını söyler. Bu durumda, anahtar kelime dışı metrikler hariç tutulduğu için metrikler daha düşük olur.

WHERE koşulundaki segmentlerle ilgili kurallar

Bir segment WHERE ifadesindeyse SELECT ifadesinde de olmalıdır. Bu kuralın istisnaları, temel tarih segmentleri olarak adlandırılan aşağıdaki tarih segmentleridir:

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

Temel veri segmenti alanlarıyla ilgili kurallar

segments.date, segments.week, segments.month, segments.quarter ve segments.year segmentleri aşağıdaki gibi çalışır:

  • Bu segmentler, WHERE yan tümcesinde filtrelenebilir ve SELECT yan tümcesinde görünmez.

  • Bu segmentlerden herhangi biri SELECT ifadesindeyse WHERE ifadesinde temel tarih segmentlerinden oluşan sınırlı bir tarih aralığı belirtilmelidir. Tarih segmentlerinin, SELECT içinde belirtilenlerle aynı olması gerekmez.

Örnekler

Geçersiz: segments.date, SELECT ifadesinde olduğundan WHERE ifadesinde segments.date, segments.week, segments.month, segments.quarter veya segments.year için sınırlı bir tarih aralığı belirtmeniz gerekir.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
Geçerli: Bu sorgu, tarih aralığında elde edilen kampanya adlarını ve tıklamaları döndürür. segments.date ifadesinin SELECT ifadesinde görünmesi gerekmez.
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
Geçerli: Bu sorgu, tarih aralığındaki tüm günler için kampanyaların adlarını ve tarihe göre segmentlere ayrılmış tıklamaları döndürür.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
Geçerli: Bu sorgu, tarih aralığındaki tüm günler için kampanyaların adlarını ve aylara göre segmentlere ayrılmış tıklamaları döndürür.
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
Geçerli: Bu sorgu, kampanya adlarını ve tıklamaları yıl aralığındaki tüm aylar için önce üç aylık dönemlere, ardından aylara göre segmentlere ayırarak döndürür.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2019
  AND segments.year < 2024

search_term_view

search_term_view kaynağı, yalnızca bir arama terimiyle değil, reklam grubuna göre de dolaylı olarak segmentlere ayrılır. Bu durum, reklam grubunu da içeren kaynak adının yapısında yansıtılır. Bu nedenle, sonuçlarınızda aynı arama terimlerinin yer aldığı, görünüşte yinelenen bazı satırlar görürsünüz ancak bu satırlar farklı bir reklam grubuna aittir.

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

Bu örnekte döndürülen iki nesne kopya gibi görünse de kaynak adları aslında farklıdır. Bu durum özellikle "reklam grubu" bölümünde geçerlidir. Bu, "google fotoğraflar" arama teriminin aynı tarihte (2024-06-15) iki reklam grubuyla (kimlik 2222222222 ve 33333333333) ilişkilendirildiği anlamına gelir. Bu nedenle, API'nin beklendiği gibi çalıştığı ve bu durumda yinelenen nesneler döndürmediği sonucuna varabiliriz.