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 ve kaynak için bir satırın bulunduğu ve istatistiksel değerlerin (gösterimler, tıklamalar, dönüşümler vb.) bunlar arasında bölündüğü 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
'i 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. Segments
Liste, 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 alan seçmek, sorgunun söz konusu 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 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ünmedenWHERE
yan tümcesinde filtrelenebilir.Bu segmentlerden herhangi biri
SELECT
yan tümcesindeyseWHERE
yan tümcesinde temel tarih segmentlerinden oluşan sonlu bir tarih aralığı belirtilmelidir (tarih segmentlerininSELECT
'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 > '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 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 > '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 aylık olarak 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ğı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":"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ı aslında farklıdır (özellikle "reklam grubu" bölümünde). Bu, "google fotoğraflar" arama terimiyle aynı tarihte (15.06.2015) 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.