Segmentasyon

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

Google Ads kullanıcı arayüzünde, aynı anda yalnızca bir segment kullanılabilir. 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önderilmesinden elde edilen sonuçlar şu 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ını içeren birinci ve ikinci nesnelerin özelliklerinin aynı olduğunu unutmayın. Gösterimler cihaza göre segmentlere ayrılır ve böylece 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. FROM yan tümcesindeki kaynağın resource_name alanı döndürülür ve resource_name alanı sorguya açıkça dahil edilmese bile, metrikler buna göre segmentlere ayrılır. Örneğin, FROM yan tümcesinde 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 dolaylı olarak segmentlere ayrılır.

Dolayısıyla bu sorgu için,

SELECT metrics.impressions
FROM ad_group

şöyle bir JSON dizesi elde edersiniz:

{
  "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ğinden adGroup öğesinin 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. Örnek olarak, ad_group kaynağından sorgulama yapmaya 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. Segments listesi, 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 ifadesinde yer alan kaynak alanlarının yanı sıra ilgili kaynakların alanlarını seçerek ilgili kaynakları dolaylı olarak birleştirme seçeneğiniz olabilir. Bu ilgili kaynaklar, FROM yan tümcesinin meta veri sayfasındaki kaynakta yer alan Attributed Resources listesinde bulunabilir. ad_group kaynağında, campaign kaynağından da alan seçebileceğinizi göreceksiniz. SELECT yantümcesinde en az 1 alan içeren herhangi bir Attributed Resources öğesinin resource_name alanı, resource_name alanı sorguya açıkça dahil edilmese bile otomatik olarak döndürülür.

Attributed Resource alanı seçmeye benzer şekilde, Segmenting Resource alanı da seçebilirsiniz. Belirli bir kaynağın meta veri sayfasında Segmenting Resources listesi varsa listelenen bu kaynakların birindeki alanların seçilmesi, sorgunun döndürülen resource_name parametresine göre daha fazla segmentlere ayrılmasına neden olur: Segmenting Resource. Örnek olarak, campaign kaynağının campaign_budget kaynağı için Segmenting Resource olarak listelendiğini görebilirsiniz. campaign_budget kaynağından campaign.name gibi bir kampanya alanının seçilmesi, yalnızca campaign.name alanının döndürülmesine neden olmakla kalmaz, aynı zamanda campaign.resource_name alanının döndürülmesine ve segmentlere ayrılmasına neden olur.

Segmentler ve metrikler arasında seçim yapabilme

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

ad_group kaynağı söz konusu olduğunda seçebileceğiniz 50'den fazla kullanılabilir segment vardır. Ancak segments.hotel_check_in_date için selectable_with listesi, uyumlu segmentlerden oluşan çok daha az sayıdadır. Yani, segments.hotel_check_in_date alanını SELECT yantümcesine eklerseniz, seçtiğiniz kullanılabilir segmentleri bu iki listenin kesişimiyle sınırlandırırsınız.

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

WHERE yan tümcesindeki segmentler için kurallar

Bir segment, WHERE yan tümcesinde yer aldığında SELECT yan tümcesinde de olmalıdır. Bu kuralın bir 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 gibi işlev görür:

  • Bu segmentler, SELECT ifadesinde görünmeden WHERE ifadesinde filtrelenebilir.

  • Bu segmentlerden herhangi biri SELECT yan tümcesindeyse WHERE yan tümcesinde temel tarih segmentlerinden oluşan sınırlı bir tarih aralığı belirtilmelidir (tarih segmentlerinin SELECT öğesinde belirtilenlerle aynı olması gerekmez).

Örnekler

Geçersiz: segments.date, SELECT yan tümcesinde olduğundan segments.date, segments.week, segments.month,segments.quarter veya segments.year için WHERE yan tümcesinde sonlu bir tarih aralığı belirtmeniz gerekir.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
Geçerli: Bu sorgu, tarih aralığında gerçekleşen kampanya adlarını ve tıklamaları döndürür. segments.date ifadesinin SELECT yan tümcesinde görünmesi gerekmediğini unutmayın.
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-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 > '2020-01-01'
  AND segments.date < '2020-02-01'
Geçerli: Bu sorgu, tarih aralığındaki tüm günler için aya göre segmentlere ayrılmış kampanya adlarını ve tıklamaları döndürür.
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
Geçerli: Bu sorgu, yıl aralığındaki tüm aylar için üç aylık ve ardından aya göre segmentlere ayrılmış kampanya adlarını ve tıklamaları döndürür.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2015
  AND segments.year < 2020

search_term_view

search_term_view kaynağı için yalnızca bir arama terimine göre değil, reklam grubuna göre de örtülü bir şekilde segmentlere ayrıldığını unutmayın. Bunu, reklam grubunu da içeren kaynak adının yapısında görebilirsiniz. Bu nedenle, aslında farklı bir reklam grubuna ait olsa da, sonuçlarınızda aynı arama terimlerine sahip gibi görünen bazı satırlar görürsünüz:

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

Bu örnekte döndürülen iki nesne kopya gibi görünse de kaynak adları özellikle "reklam grubu" bölümünde birbirinden farklıdır. Bu, "google fotoğraflar" arama teriminin aynı tarihte (15.06.2015) iki reklam grubuyla (kimlik: 2222222222 ve 33333333333) ilişkilendirildiği anlamına gelir. Böylece, API'nin amaçlandığı gibi çalıştığı ve bu durumda yinelenen nesneler döndürmediği sonucuna varabiliriz.