Bir sorgu, çeşitli ifadelerden oluşur:
SELECT,
FROM,
WHERE,
ORDER BY, LIMIT ve
PARAMETERS.
Yan tümceler, tek bir sorgu isteğinde birleşen alan adları, kaynak adları, operatörler, koşullar ve sıralamalar kullanır.
Temel olarak bir sorgu oluşturmak için:
- Verilerin alınacağı bir kaynak 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.
- İlişkili kaynak verilerini örtülü olarak birleştirmek için ilişkilendirilmiş kaynaklar ekleyin.
- Sonuçlarınızı filtreleyin, sıralayın ve sınırlandırın.
SELECT koşulu
SELECT koşulu:
- Sorguda zorunlu bir ibaredir.
- İstekle getirilecek alan grubunu belirtir.
- Virgülle ayrılmış bir kaynak alanı, özel sütun, özel Floodlight değişkeni, segment alanı ve metrik listesini alır ve yanıttaki değerleri döndürür.
Bu örnek sorgu, campaign kaynağının özelliklerini nasıl seçeceğinizi gösterir:
SELECT
campaign.id,
campaign.name
FROM campaign
Birden fazla alan türü
Aynı istekte farklı alan türleri isteyebilirsiniz.
Aşağıdaki örnek sorguda, aşağıdakilerin bir kombinasyonunu içeren tek bir sorgu gösterilmektedir:
Kaynak alanları:
campaign.id,campaign.name,bidding_strategy.idvebidding_strategy.name.Segment alanları:
segments.devicevesegments.date.Metrik alanları:
metrics.impressionsvemetrics.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 başlıklı makaleyi inceleyin.
Ana kaynak alanı
Genellikle ana kaynak alanınızı SELECT ifadesine dahil edersiniz ancak bu isteğe bağlıdır (gerekli değildir).
Bu örnek sorgu, yalnızca sonuçları filtrelemek için ana kaynak alanı (ad_group.status) kullanır.
SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED
Özel Floodlight değişkenleri
Kimliklerini kullanarak SELECT ifadesine özel Floodlight değişkenleri ekleyebilirsiniz.
Bu örnekte sorgu, kampanya kaynağı için 123454321 kimlikli bir özel değişken içeriyor.
SELECT
conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
conversion_custom_dimensions.id[123454321]
FROM campaign
Özel sütunlar
Kimliklerini kullanarak özel sütunları SELECT yan tümcesine ekleyebilirsiniz.
Bu örnekte sorgu, kampanya kaynağı için 12345678 kimlikli bir özel sütun içeriyor.
SELECT
custom_columns.id[12345678]
FROM campaign
Özel sütun kimliklerini nasıl alacağınızı öğrenin.
Metrik alanları
Belirli bir kaynağın metrik alanlarını, kaynağın diğer alanlarını SELECT ifadesine dahil etmeden seçebilirsiniz.
Bu örnek sorgu, campaign kaynağı için impressions ve clicks metriklerini seçer.
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ı
SELECT ifadesinde eşlik eden kaynak alanlarını veya metrikleri belirtmeden segment alanları 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 başlıklı makaleyi inceleyin.
Yasaklı alanlar
SELECT ifadesinde aşağıdaki alanları kullanamazsınız:
Seçilemeyen alanlar (ör.
Selectablemeta veri özelliğifalseolarak işaretlenmiş alanlar).Yinelenen alanlar (yani
Repeatedmeta veri özelliğitrueolarak işaretlenmiş alanlar).FROMifadesinde 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ıma sunar.Uyumsuz segmentler veya metrikler. Daha fazla bilgi için segmentasyon bölümünü inceleyin.
Her kaynak için bu bilgileri nerede bulacağınızla ilgili ayrıntılar için referans belgelerine bakın.
FROM koşulu
FROM koşulu:
SearchAds360Service'e yönelik sorgular için zorunlu bir ifadedir. (HemSearchhem deSearchStreamyöntemleri)SearchAds360FieldServicesorgularında yer almamalıdır.Sorgunun döndürdüğü ana kaynağı belirtir.
Yalnızca tek bir kaynak belirtebilirsiniz.
Sorgudaki diğer tüm maddelerde kullanabileceğiniz alanları tanımlar.
İlişkilendirilen kaynaklar
Atfedilen kaynaklar varsa bunlar, FROM ifadesinde belirttiğiniz kaynakla örtülü olarak birleştirilir. Değerlerini döndürmek için yalnızca özelliklerini SELECT ifadesine eklemeniz gerekir.
Bu örnek sorgu, campaign kaynağı ad_group kaynağının ilişkilendirilmiş bir kaynağı olduğundan 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 ifadesindeki ana kaynağın resource_name alanı her zaman döndürülür.
Bu örnek sorguda, sorguda açıkça seçilmemiş olmasına rağmen ad_group.resource_name yanıta dahil edilir:
SELECT ad_group.id
FROM ad_group
En az bir alan seçildiğinde bir ilişkilendirilmiş kaynağın resource_name alanı döndürülür.
Bu örnek sorguda, campaign.resource_name yanıtına dahil edilir. Çünkü campaign.id seçilmiştir:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE koşulu
WHERE koşulu:
- Sorguda isteğe bağlı bir ibaredir.
İstek için verilerin filtrelenmesi ve segmentlere ayrılmasıyla ilgili koşulları belirtir. Koşullar şu kalıba uyar:
FIELD_NAMEOPERATORVALUE(boşluklarla ayrılır).ANDayırıcıyla ayrılmış birden fazla koşul içerebilir.
Bu örnek sorguda, belirli bir dönem için impressions metriklerini döndürmek üzere WHERE ifadesinin nasıl kullanılacağı gösterilmektedir:
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 başlıklı makaleyi inceleyin.
Sorgularınızda tarih aralıklarını 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 sorgu, sonuçları belirli bir kampanyaya göre filtrelemek için campaign.resource_name alanını kullanır:
SELECT
campaign.id,
campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'
Birden fazla koşul
Verilerinizi filtrelemek için birden fazla koşulu birleştirebilirsiniz.
Bu örnek sorgu, son 30 gün içinde mobil cihazlarda clicks metrikleri olan tüm kampanyalar için impressions metriklerinin 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 başlıklı makaleyi 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 harf duyarlılığı, sonuçlarınızı doğru şekilde filtrelemede önemli bir rol oynar.
Aşağıdaki tabloda her operatörün varsayılan büyük/küçük harf duyarlılığı gösterilmektedir.
| Varsayılan büyük/küçük harf duyarlılığı | |
|---|---|
=/!= |
Case sensitive |
IN/NOT IN |
Case sensitive |
LIKE/NOT LIKE |
Case insensitive |
CONTAINS (...) |
Case sensitive |
REGEXP_MATCH/NOT REGEXP_MATCH |
Case sensitive |
(?i) değiştiricisini kullanarak REGEXP_MATCH ve NOT REGEXP_MATCH için varsayılan hassasiyeti büyük/küçük harfe duyarsız olarak değiştirebilirsiniz. Örneğin:
SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"
Verilerinizi filtrelemek için kullanabileceğiniz operatörlerin tam listesi için Sorgu dilbilgisi referansı başlıklı makaleyi inceleyin.
Temel veri segmentleri
Aşağıdaki segment alanları temel tarih segmentleri olarak bilinir:
segments.date, segments.week, segments.month, segments.quarter ve
segments.year.
Bir tarih veya zaman aralığı belirtmek için WHERE koşulunuzda temel tarih segmentlerini kullanabilirsiniz.
Bu örnek sorgu, WHERE ifadesindeki 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.
Yasaklanmış filtreleme
Filtrelemeye izin verilmez:
Temel tarih segmentleri hariç olmak üzere, seçilmeyen segment alanlarında.
Basit türler (ör.
Int64Value,StringValuevb.) hariç olmak üzere herhangi bir mesaj türünün alanlarında.Basitler (örneğin,
Int64Value,StringValuevb.) hariç olmak üzere herhangi bir mesaj türünün tekrarlanan alanlarının özelliklerinde.
ORDER BY koşulu
ORDER BY koşulu:
- Sorguda isteğe bağlı bir ibaredir.
- Sonuçların döndürülme sırasını belirtir. Sıralama şu düzene göre yapılır:
FIELD_NAMEORDERING_OPTION(boşlukla ayrılmış). ASC(artan) veyaDESC(azalan) olmak üzere iki seçeneğe izin verir. Varsayılan olarak artan sırada gösterilir.
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 sıralama
Virgülle ayrılmış bir liste kullanarak ORDER BY ifadesinde birden fazla alan belirtebilirsiniz. Sonuçlar, sorguda belirttiğiniz sırayla düzenlenir.
Bu örnek sorgu, reklam grubu verilerini seçer ve sonuçları önce kampanya adına göre artan, ardından gösterim sayısına göre azalan ve son olarak tıklama sayısına göre azalan sırada düzenler:
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC
Sıralama ve sınırlamayı birleştirme
Sonuçlarınızı daha iyi hale getirmek için ORDER BY ifadesini LIMIT ifadesiyle birlikte kullanabilirsiniz.
Bu örnek sorgu, son 30 gün içinde en yüksek gösterime 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şler
Sipariş vermeye izin verilmez:
- Seçilmeyen kaynakların özelliklerine göre.
- Seçilmeyen metriklere göre.
- Seçilmeyen segmentlere göre.
- Şu alan türleri için:
MESSAGE- Yinelenen alanlar
- Yinelenen alanların özellikleri.
LIMIT koşulu
LIMIT koşulu:
- Sorguda isteğe bağlı bir ibaredir.
- Sorgunun döndürdüğü sonuç sayısını sınırlamanıza olanak tanır.
Bu madde, örneğin yalnızca sonuçların bir örneği veya özetiyle ilgileniyorsanız yararlıdır.
Bu örnek sorgu, toplam sonuç sayısını 50 ile sınırlar:
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 parametreler belirtmenize olanak tanır.
Taslakları dahil et
include_drafts parametresi, taslak öğelerin sonuçlara dahil edilip edilmeyeceğini kontrol eder. Varsayılan değer false'dir. Taslak öğeleri dahil etmek için 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çilmeyenleri atla resource_name
omit_unselected_resource_names parametresi, SELECT ifadesinde açıkça istenmeyen tüm kaynakların resource_name alanını hariç tutmanıza olanak tanır. Varsayılan değer false'dir. Bu parametreyi true olarak ayarlarsanız SELECT maddenizde birincil kaynağın ve ilişkilendirilmiş kaynakların kaynak adını açıkça istemenizi öneririz.
Bu örnek sorgu, campaign.resource_name ve customer.resource_name alanlarını döndürmez. Bunun nedeni, bu alanların SELECT ifadesine dahil edilmemiş olmasıdır:
SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
Bu örnek sorgu, campaign.resource_name alanı SELECT ifadesinde açıkça istendiği için 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 maddenize dahil edilen bir metrik hesaplanırken kullanılacak para birimini belirtmenize olanak tanır. Varsayılan olarak customer_id tarafından belirtilen hesabın para birimi kullanılır. Bu parametreyi ayarlarsanız 3 karakterli ISO 4217 para birimi kodunu kullanmanız gerekir. Örneğin: USD, EUR.
Bu örnek sorgu, customer_id ile belirtilen hesabın para biriminde 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, cost_micros metriğini Şili pezosu (CLP) cinsinden 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"
MM genişletmeyi etkinleştirme
Doğru olarak ayarlanan enable_mcc_expansion parametresi, FROM ifadesindeki kaynak için customer_id köklü tüm hesaplardaki metrikleri, alanları ve segmentleri dahil etmenize olanak tanır. metrics_currency parametresinde açıkça belirtilmediği sürece yanıtta customer_id para birimi kullanılır.
Bu örnek sorgu, enable_mcc_expansion parametresi true olarak ayarlandığı için customer_id köklü hesap hiyerarşisindeki tüm hesaplardan bidding_strategy.name, bidding_strategy.type ve metrics.cost_micros değerlerini döndürür.
SELECT
bidding_strategy.name,
bidding_strategy.type,
metrics.cost_micros
FROM bidding_strategy
WHERE segments.date DURING LAST_14_DAYS
PARAMETERS enable_mcc_expansion = true