Google Ads kullanıcı arayüzünde ayrı bir menü olarak bulunan segmentasyon, Google Ads API'de sorguya yalnızca uygun alan eklenerek uygulanabilir. Örneğin, bir sorguya segments.device
eklendiğinde, her cihaz ve FROM
ifadesinde belirtilen kaynak kombinasyonu için bir satır içeren bir rapor elde edilir ve istatistiksel değerler (gösterim, tıklama, dönüşüm vb.) bunlar arasında bölünür.
Google Ads kullanıcı arayüzünde aynı anda yalnızca bir segment kullanılabilir. API ile aynı sorguda birden çok 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:
{
"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 nesne özelliklerinin aynı olduğunu unutmayın. Gösterimler cihaza göre segmentlere ayrıldığından aynı kampanya için iki veya daha fazla nesne döndürülebilir.
Dolaylı 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 edilmemiş olsa bile metrikler bu alana 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, ad_group düzeyinde dolaylı olarak segmentlere ayrılır.
Yani bu sorgu için
SELECT metrics.impressions
FROM ad_group
şuna benzer 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"
}
}
]
}
FROM
yan tümcesinde ad_group
kaynak olarak belirtildiği için adGroup
öğesinin resource_name
alanının her zaman döndürüldüğünü unutmayın.
Seçilebilir segment alanları
FROM
yan tümcesindeki belirli bir kaynak için tüm segment alanları seçilemez.
Örnek olarak ad_group
kaynağından sorgulamaya devam edeceğiz. Bir segment alanının ad_group kaynağından seçilebilmesi 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.
Kaynakları segmentlere ayırın
Bazı kaynaklar arasından seçim yaparken FROM
ifadesindeki kaynak alanlarıyla birlikte ilgili kaynakları seçerek ilgili kaynaklara dolaylı olarak katılma seçeneğiniz olabilir. Bu ilgili kaynaklar, FROM
ibaresinin meta veri sayfasındaki kaynaktaki Attributed Resources
listesinde bulunabilir. ad_group
kaynağı söz konusu olduğunda, campaign
kaynağından alanlar da seçebileceğinizi görürsünüz. SELECT
yan tümcesinde en az 1 alan bulunan herhangi bir Attributed Resources
kaynağının 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
listesi varsa listelenen bu kaynakların birindeki alanların seçilmesi, sorgunun o Segmenting Resource
kaynağının döndürülen resource_name değerine göre daha fazla segmentlere ayrılmasına neden olur. Ö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ın seçilmesi 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 neden olur.
Segmentler ve metrikler arasında seçilebilirlik
Belirli bir segment alanı, diğer segment alanlarının bazılarıyla veya metrik alanlarının bazıları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, çok daha az sayıda uyumlu segmentten oluşur. Diğer bir deyişle, SELECT
yan tümcesine segments.hotel_check_in_date
alanını eklerseniz seçmek için kalan kullanılabilir segmentleri bu iki listenin kesişimiyle sınırlandırmış olursunuz.
- Bazı segmentler eklerken özet satırındaki metrikler azalabilir
FROM ad_group_ad
içeren bir sorguyasegments.keyword.info.match_type
eklendiğinde bu segment, sorguya yalnızca anahtar kelime içeren veri satırlarını getirmesini ve bir anahtar kelimeyle ilişkili olmayan tüm satırları kaldırmasını söyler. Bu durumda, anahtar kelime olmayan tüm metrikleri hariç tutacağı için metrikler daha düşük olur.
WHERE yan tümcesindeki segmentler için kurallar
WHERE
yan tümcesinde bir segment varsa SELECT
tümcesinde de bulunmalı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ıyla ilgili kurallar
segments.date
, segments.week
, segments.month
, segments.quarter
ve segments.year
segmentleri şu şekilde çalışır:
Bu segmentler,
SELECT
ifadesinde görünmedenWHERE
ifadesinde filtrelenebilir.Bu segmentlerden herhangi biri
SELECT
ifadesinde yer alıyorsaWHERE
yan tümcesinde temel tarih segmentlerinden oluşan sınırlı bir tarih aralığı belirtilmelidir (tarih segmentlerininSELECT
öğesinde belirtilenlerle aynı olması gerekmez).
Örnekler
Geçersiz: segments.date , SELECT yan tümcesinde bulunduğ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ığı boyunca tahakkuk eden kampanya adlarını ve tıklamaları döndürür. SELECT ifadesinde segments.date öğesinin 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 kampanya adlarını ve tıklamaları tarihe göre segmentlere ayrılmış şekilde 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, kampanya adlarını ve tıklamaları çeyreğe ve ardından yıl aralığındaki tüm aylar için aya göre segmentlere ayrılmış şekilde 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 söz konusu kaynağın yalnızca bir arama terimine göre değil, dolaylı olarak reklam grubuna göre segmentlere ayrıldığını da unutmayın. Bu durum, reklam grubunu da içeren kaynak adının yapısında gösterilir. Bu nedenle, gerçekte satırlar farklı bir reklam grubuna ait olduğunda, sonuçlarınızda aynı arama terimlerine sahip bazı yinelenen 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, özellikle "reklam grubu" bölümündeki kaynak adları farklıdır. Diğer bir deyişle, "google fotoğrafları" arama terimi aynı tarihte (15.06.2015) iki reklam grubuyla (kimlik: 2222222222
ve 33333333333
) ilişkilendirilir.
Bu nedenle, bu durumda API'nin amaçlandığı gibi çalıştığı ve yinelenen nesneler döndürmediği sonucuna varabiliriz.