Sorgu, birden fazla ifadeden oluşur: SELECT
,
FROM
,
WHERE
,
ORDER BY
,
LIMIT
ve PARAMETERS
.
Tümceler tek bir sorgu isteğinde birleştirilen alan adları, kaynak adları, operatörler, koşullar ve siparişler kullanır.
Temel bir ifadeyle, bir sorgu oluşturmak için:
- Verilerin alınacağı kaynağı belirtin.
- Döndürmek istediğiniz verileri tanımlamak için alanlar ve metrikler ekleyin.
- Sonuçlarınızı gruplandırmak için segmentler ekleyin.
- İlgili kaynak verilerini dolaylı olarak birleştirmek için ilişkilendirilen kaynakları ekleyin.
- Sonuçlarınızı filtreleyin, sıralayın ve sınırlayın.
SELECT
koşulu
SELECT
koşulu:
- Sorgunun zorunlu bir yan tümcesidir.
- İstekte getirilecek bir alan grubunu belirtir.
- Kaynak alanları, özel sütunlar, özel Floodlight değişkenleri, segment alanları ve metriklerin virgülle ayrılmış bir listesini alır ve yanıtta değerleri döndürür.
Bu örnek sorguda, campaign
kaynağının özelliklerini nasıl seçeceğiniz gösterilmektedir:
SELECT
campaign.id,
campaign.name
FROM campaign
Birden çok alan türü
Aynı istekte farklı alan türleri için istekte bulunabilirsiniz.
Aşağıdaki örnek sorguda, aşağıdakilerin kombinasyonuna sahip tek bir sorgu gösterilmektedir:
- Kaynak alanları:
campaign.id
,campaign.name
,bidding_strategy.id
vebidding_strategy.name
. - Segment alanları:
segments.device
vesegments.date
. - Metrik alanları:
metrics.impressions
vemetrics.clicks
.
SELECT
campaign.id,
campaign.name,
bidding_strategy.id,
bidding_strategy.name,
segments.device,
segments.date,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Arama raporlarınızı segmentlere ayırma hakkında daha fazla bilgi edinmek için Segmentasyon konusuna bakın.
Ana kaynak alanı
Genellikle ana kaynak alanınızı SELECT
yan tümcesine eklersiniz, ancak bu isteğe bağlıdır (zorunlu değildir).
Bu örnek sorgu, yalnızca sonuçları filtrelemek için bir ana kaynak alanı (ad_group.status
) kullanır.
SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED
Özel Floodlight değişkenleri
Özel Floodlight değişkenlerini kimliklerini kullanarak SELECT yan tümcesine ekleyebilirsiniz.
Bu örnekteki sorgu, kampanya kaynağı için 123454321 kimliğine sahip bir özelleştirilebilen değişken içerir.
SELECT
conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
conversion_custom_dimensions.id[123454321]
FROM campaign
Özel sütunlar
Özel sütunları kimliklerini kullanarak SELECT yan tümcesine ekleyebilirsiniz.
Bu örnekte sorgu, kampanya kaynağı için 12345678 kimlikli özel bir sütun içerir.
SELECT
custom_columns.id[12345678]
FROM campaign
Özel sütun kimliklerini nasıl alacağınızı öğrenin.
Metrik alanları
Belirli bir kaynak için metrik alanlarını, SELECT
yan tümcesinde kaynakta bulunan başka herhangi bir alan eklemeden seçebilirsiniz.
Bu örnek sorguda, campaign
kaynağı için impressions
ve clicks
metrikleri seçilir.
SELECT
metrics.impressions,
metrics.clicks
FROM campaign
Sorgularınızda kullanabileceğiniz metrik alanlarının listesi için metrics
bölümüne bakın.
Segment alanları
Segment alanlarını, SELECT
ifadesinde eşlik eden kaynak alanları veya metrikleri belirtmeden seçebilirsiniz.
Bu örnek sorgu, sonuçları cihaza göre segmentlere ayırır.
SELECT segments.device
FROM campaign
Sorgularınızda kullanabileceğiniz segment alanlarının listesi için segments
bölümüne bakın.
Yasaklı alanlar
SELECT
yantümcesinde şu alanları kullanamazsınız:
- Seçilemez alanlar, yani
Selectable
meta veri özelliğininfalse
olarak işaretli olduğu alanlar. - Tekrarlanan alanlar, yani
Repeated
meta veri özelliğinintrue
olarak işaretli olduğu alanlar. FROM
yan tümcesinde belirtilen kaynak için kullanılamayan alanlar. Bazı kaynakların özellikleri birlikte seçilemez. Bazı kaynaklar, tüm metriklerin ve segmentlerin yalnızca bir alt kümesini kullanılabilir hale getirir.- Uyumsuz segmentler veya metrikler. Daha fazla bilgi için Segmentasyon konusuna bakın.
Her bir kaynakta bu bilgileri nerede bulacağınızla ilgili ayrıntılar için Referans dokümanlara bakın.
FROM koşulu
FROM
koşulu:
SearchAds360Service
sorguları için zorunlu bir ifadedir (hemSearch
hem deSearchStream
yöntemleri).SearchAds360FieldService
sorgularına dahil edilmemelidir.- Sorgunun döndürdüğü ana kaynağı belirtir.
- Yalnızca tek bir kaynak belirtebilir.
- Sorgudaki diğer tüm yan tümcelerde kullanabileceğiniz alanları tanımlar.
İlişkilendirilen kaynaklar
İlişkilendirilen kaynaklar varsa FROM
ifadesinde belirttiğiniz kaynakla dolaylı olarak birleştirilir. Bunların değerlerini döndürmek için yalnızca özelliklerini SELECT
yantümcesine eklemeniz gerekir.
campaign
, ad_group
kaynağının ilişkilendirilen bir kaynağı olduğundan bu örnek sorgu, hem reklam grubu kimliğini hem de kampanya kimliğini döndürür.
SELECT
campaign.id,
ad_group.id
FROM ad_group
resource_name
alan
FROM
yan tümcesindeki ana kaynağın resource_name
alanı her zaman döndürülür.
Bu örnek sorguda, ad_group.resource_name
sorguda açıkça seçilmemiş olsa bile yanıta dahil edilir:
SELECT ad_group.id
FROM ad_group
En az bir alan seçildiğinde ilişkilendirilmiş kaynağın resource_name
alanı döndürülür.
Bu örnek sorguda, campaign.id
seçildiği için campaign.resource_name
yanıta dahil edilecektir:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE koşulu
WHERE
koşulu:
- Bir sorgudaki isteğe bağlı yan tümcedir.
- İstek için verileri filtreleme ve segmentlere ayırma koşullarını belirtir.
Koşullar şu kalıbı izler:
FIELD_NAME
OPERATOR
VALUE
(boşlukla ayrılır). AND
ayırıcıyla ayrılmış birden fazla koşul içerebilir.
Bu örnek sorgu, belirli bir dönem için impressions
metriklerini döndürmek üzere WHERE
koşulunun nasıl kullanılacağını gösterir:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Arama raporlarınızı segmentlere ayırma hakkında daha fazla bilgi edinmek için Segmentasyon konusuna bakın.
Sorgularınızda tarih aralıkları belirtme hakkında daha fazla bilgi edinmek için Tarih aralıkları bölümüne bakın.
resource_name
alanına göre filtrele
Verileri filtrelemek veya sıralamak için resource_name
alanını kullanabilirsiniz.
Bu örnek sorguda, sonuçları belirli bir kampanyaya göre filtrelemek için campaign.resource_name
alanı kullanılmaktadır:
SELECT
campaign.id,
campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'
Birden çok koşul
Verilerinizi filtrelemek için birden fazla koşulu birleştirebilirsiniz.
Bu örnek sorgu, son 30 günde mobil cihazlarda impressions
metriğine sahip tüm kampanyalar için clicks
metrik sayısını ister.
SELECT
campaign.id,
campaign.name,
segments.device,
metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
AND segments.device = MOBILE
AND segments.date DURING LAST_30_DAYS
Raporlarınızı segmentlere ayırma hakkında daha fazla bilgi edinmek için Segmentasyon bölümünü inceleyin.
Büyük/küçük harfe duyarlılık
Dize değerlerine göre filtreleme yaparken her operatörün varsayılan büyük/küçük harfe duyarlılığı, sonuçlarınızın doğru bir şekilde filtrelenmesinde önemli bir rol oynar.
Aşağıdaki tabloda her bir operatörün varsayılan büyük/küçük harfe duyarlılığı gösterilmektedir.
Varsayılan büyük/küçük harfe duyarlılık | |
---|---|
=/!= |
Case sensitive |
IN/NOT IN |
Case sensitive |
LIKE/NOT LIKE |
Case insensitive |
CONTAINS (...) |
Case sensitive |
REGEXP_MATCH/NOT REGEXP_MATCH |
Case sensitive |
REGEXP_MATCH
ve NOT REGEXP_MATCH
öğelerinin varsayılan hassasiyetini büyük/küçük harfe duyarlı olmayacak şekilde değiştirmek için (?i)
değiştiricisini kullanabilirsiniz. Örneğin:
SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"
Verilerinizi filtrelemek amacıyla kullanabileceğiniz operatörlerin tam listesi için Sorgu dil bilgisi referansı bölümüne bakın.
Temel tarih segmentleri
Şu segment alanları temel tarih segmentleri olarak bilinir:
segments.date
, segments.week
, segments.month
, segments.quarter
ve
segments.year
.
Bir tarih veya saat belirtmek için WHERE
deyiminizde temel tarih segmentlerini kullanabilirsiniz.
Bu örnek sorgu, WHERE
yan tümcesindeki segments.date
alanı için DURING LAST_30_DAYS
değerini belirtir:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Temel tarih segmentlerini kullanma hakkında ayrıntılı bilgi için Segmentasyon > Temel tarih segmentleri bölümüne bakın.
Yasak filtreleme
Filtrelemeye izin verilmez:
- Temel tarih segmentleri hariç, seçilmemiş segment alanlarında.
- Temel öğeler (örneğin,
Int64Value
,StringValue
vb.) hariç tüm mesaj türündeki alanlarda. - Temel öğeler hariç (örneğin,
Int64Value
,StringValue
vb.) herhangi bir mesaj türündeki yinelenen alanların özelliklerinde.
ORDER BY koşulu
ORDER BY
koşulu:
- Bir sorgudaki isteğe bağlı yan tümcedir.
- Sonuçların döndürülme sırasını belirtir. Sıralama şu kalıbı izler:
FIELD_NAME
ORDERING_OPTION
(boşlukla ayrılır). - İki seçeneğe izin verir:
ASC
(artan) veyaDESC
(azalan). Varsayılan değer, artan düzendir.
Bu örnek sorgu, kampanyaları tıklama sayısına göre azalan düzende (en yüksekten en düşüğe) sıralar:
SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC
Birden fazla sipariş
Virgülle ayrılmış bir liste kullanarak ORDER BY
yan tümcesinde birden fazla alan belirtebilirsiniz. Sonuçlar, sorguda belirttiğiniz sırayla sıralanır.
Bu örnek sorgu, reklam grubu verilerini seçer ve sonuçları kampanya adına göre artan, daha sonra gösterim sayısına göre azalan ve daha sonra tıklama sayısına göre azalan düzende sıralar:
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC
Sıralamayı ve limiti birleştir
Sonuçlarınızı hassaslaştırmak için ORDER BY
ifadesini LIMIT
ifadesiyle birlikte kullanabilirsiniz.
Bu örnek sorgu, son 30 gün içinde en yüksek gösterim sayısına sahip beş kampanyayı döndürür:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5
Yasaklanmış sipariş
Sıralamaya izin verilmez:
- Seçili olmayan kaynakların özelliklerine göre.
- Seçili olmayan metriklere göre.
- Seçili olmayan segmentlere göre.
- Bu alan türleri için:
MESSAGE
- Yinelenen alanlar
- Yinelenen alanların özellikleri.
LIMIT madde
LIMIT
koşulu:
- Bir sorgudaki isteğe bağlı yan tümcedir.
- Sorgunun döndürdüğü sonuç sayısını sınırlamanıza olanak tanır.
Bu cümle, örneğin yalnızca sonuçların örneği veya özetiyle ilgileniyorsanız yararlıdır.
Bu örnek sorguda toplam sonuç sayısı 50 ile sınırlıdır:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
PARAMETERS koşulu
PARAMETERS
ifadesi, istek için meta parametreleri belirtmenizi sağlar.
Taslakları dahil et
include_drafts
parametresi, taslak varlıkların sonuçlara dahil edilip edilmeyeceğini kontrol eder. Varsayılan değer: false
. Taslak varlıkları dahil etmek için bunu true
olarak ayarlayın.
Bu örnek sorgu hem taslak kampanyaları hem de normal kampanyaları döndürür:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
Seçimi kaldırılan resource_name
öğesini atla
omit_unselected_resource_names
parametresi, SELECT
yan tümcenizde açıkça istenmeyen tüm kaynakların resource_name
alanını hariç tutmanıza olanak tanır. Varsayılan değer: false
. Bu parametreyi true
olarak ayarlarsanız SELECT
yan tümcenizde birincil kaynağın ve ilişkilendirilen tüm kaynakların kaynak adını açıkça istemenizi öneririz.
Bu örnek sorgu, SELECT
yan tümcesine dahil edilmediğinden ne campaign.resource_name
ne de customer.resource_name
alanını döndürür:
SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
Bu örnek sorgu, SELECT
yan tümcesinde açıkça istendiğinde campaign.resource_name
alanını döndürür:
SELECT
campaign.name,
campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true
Metriklerde kullanılan para birimini değiştirme
metrics_currency
parametresi, SELECT
ifadenize dahil edilen bir metriği hesaplarken kullanılacak para birimini belirtmenizi sağlar.
Varsayılan olarak hesabın yerel para birimi kullanılır. Bu parametreyi ayarlarsanız ISO 4217'ye uygun 3 karakterli para birimi kodunu kullanmanız gerekir.
Örneğin: USD, EUR.
Bu örnek sorgu, hesabın yerel para birimindeki cost_micros metriğini döndürür.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
Bu örnek sorgu, Şili pezosu (CLP) cinsinden cost_micros metriğini döndürür.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"