Sorgu yapısı ve cümleler

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 ve bidding_strategy.name.
  • Segment alanları: segments.device ve segments.date.
  • Metrik alanları: metrics.impressions ve metrics.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ğinin false olarak işaretli olduğu alanlar.
  • Tekrarlanan alanlar, yani Repeated meta veri özelliğinin true 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 (hem Search hem de SearchStream 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) veya DESC (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"

Daha fazla bilgi