Segmentasyon

Google Ads kullanıcı arayüzünde ayrı bir menü olarak bulunan segmentasyon, yalnızca bir sorguya uygun alan eklenerek Google Ads API'de uygulanabilir. Örneğin, bir sorguya segments.device eklendiğinde, FROM yan tümcesinde belirtilen her cihaz kombinasyonu için bir satır ve bu satırların arasında bölüştürülen istatistiksel değerler (gösterimler, tıklamalar, dönüşümler vb.) içeren bir rapor oluşturulur.

Google Ads kullanıcı arayüzünde tek seferde yalnızca bir segment kullanılabilirken API ile aynı sorguda birden fazla segment belirtebilirsiniz.

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

Bu sorgunun GoogleAdsService.SearchStream adresine gönderilmesiyle elde edilen sonuçlar aşağıdaki JSON dizesine benzer şekilde görünür:

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

Yukarıdaki örnek sonuçta, kaynak adı da dahil olmak üzere ilk ve ikinci nesnelerin özelliklerinin aynı olduğunu unutmayın. Gösterimler cihaz boyutuna göre segmentlere ayrılır ve bu nedenle aynı kampanya için iki veya daha fazla nesne döndürülebilir.

Örtülü segmentasyon

Her rapor başlangıçta FROM yan tümcesinde belirtilen kaynağa göre segmentlere ayrılır. resource_name alanı sorguya açıkça dahil edilmese bile FROM yan tümcesinde bulunan kaynağın resource_name alanı döndürülür ve metrikler buna göre segmentlere ayrılır. Örneğin, FROM yan tümcesinde kaynak olarak ad_group'u belirttiğinizde ad_group.resource_name otomatik olarak döndürülür ve metrikler, ad_group düzeyinde buna göre dolaylı olarak segmentlere ayrılır.

Bu sorgu için

SELECT metrics.impressions
FROM ad_group

Aşağıdaki gibi 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"
      }
    }
  ]
}

ad_group, FROM yan tümcesinde kaynak olarak belirtildiği için adGroup'un resource_name alanının her zaman döndürüldüğünü unutmayın.

Seçilebilir segment alanları

FROM yan tümcesinde belirli bir kaynak için tüm segment alanları seçilemez. Örneğin, ad_group kaynağından sorgulamaya devam edeceğiz. Bir segment alanının ad_group kaynağından seçilebilir olması için bu alanın ad_group için Segments listesinde bulunması gerekir. SegmentsListe, ad_group kaynağının meta veri sayfasındaki kullanılabilir alanlar tablosunun sarı kısmıdır.

Segment kaynakları

Bazı kaynaklar arasından seçim yaparken FROM yan tümcesinde ilgili kaynağın alanlarıyla birlikte alanlarını seçerek ilgili kaynaklara dolaylı olarak katılma seçeneğiniz olabilir. Bu ilgili kaynakları, FROM yan tümcesinin meta veri sayfasındaki kaynakta bulunan Attributed Resources listesinde bulabilirsiniz. ad_group kaynağında, campaign kaynağından da alan seçebileceğinizi görürsünüz. SELECT yan tümcesinde en az 1 alanı olan tüm Attributed Resources öğelerinin resource_name alanı, sorguya açıkça dahil edilmese bile otomatik olarak döndürülür.

Attributed Resource alanlarının seçimine benzer şekilde Segmenting Resource alanlarını da seçebilirsiniz. Belirli bir kaynağın meta veri sayfasında bir Segmenting Resources listesi varsa listelenen kaynaklardan birinde alanlar seçildiğinde sorgu, söz konusu Segmenting Resource kaynağının döndürülen resource_name değerine göre daha da 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ğından campaign.name gibi herhangi bir kampanya alanını seçmek, yalnızca campaign.name alanının döndürülmesine değil, campaign.resource_name alanının döndürülmesine ve segmentlere ayrılmasına da neden olur.

Segmentler ve metrikler arasında seçim yapma

Belirli bir segment alanı, diğer segment alanlarının veya metrik alanlarının bazılarıyla uyumlu olmayabilir. Hangi segment alanlarının birbiriyle uyumlu olduğunu belirlemek için SELECT yan tümcesinde segmentlerin selectable_with listesini inceleyebilirsiniz.

ad_group kaynağında, seçebileceğiniz 50'den fazla segment vardır. Ancak segments.hotel_check_in_date için selectable_with listesi, çok daha küçük bir uyumlu segment grubudur. Yani segments.hotel_check_in_date alanını SELECT yan tümcesine eklerseniz seçebileceğiniz mevcut segmentleri bu iki listenin kesişimiyle sınırlandırırsınız.

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

WHERE koşulundaki segmentler için kurallar

Bir segment WHERE yan tümcesindeyse SELECT yan tümcesinde de olmalıdır. Bu kuralın istisnası, temel tarih segmentleri olarak adlandırılan aşağıdaki tarih segmentleridir:

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

Temel tarih segmenti alanları için kurallar

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

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

  • Bu segmentlerden herhangi biri SELECT yan tümcesindeyse WHERE yan tümcesinde temel tarih segmentlerinden oluşan sonlu bir tarih aralığı belirtilmelidir (tarih segmentlerinin SELECT'te belirtilenlerle aynı olması gerekmez).

Örnekler

Geçersiz: segments.date, SELECT yan tümcesinde olduğundan WHERE yan tümcesinde segments.date, segments.week, segments.month, segments.quarter veya segments.year için sonlu 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 yan tümcesinde 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 tarihe göre segmentlere ayrılmış kampanya adlarını ve 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 kampanya adlarını ve tıklamaları aya göre segmentlere ayı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, yıl aralığındaki tüm aylar için kampanya adlarını ve tıklamaları üç aylık döneme, ardından aya göre segmentlere ayı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ğının, reklam grubunu da içeren kaynak adının yapısında da belirtildiği gibi, yalnızca bir arama terimi değil, aynı zamanda reklam grubuna göre de dolaylı olarak segmentlere ayrıldığını unutmayın. Bu nedenle, sonuçlarınızda aynı arama terimlerine sahip, görünüşte yinelenen bazı satırlar görürsünüz. Ancak bu satırlar aslında 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 (özellikle "reklam grubu" bölümünde). Bu, "google fotoğraflar" arama terimiyle aynı tarihte (15.06.2024) iki reklam grubunun (2222222222 ve 33333333333 kimlikleri) ilişkilendirildiği anlamına gelir. Bu nedenle, API'nin amaçlandığı gibi çalıştığı ve bu durumda yinelenen nesneler döndürmediği sonucuna varabiliriz.