Sorgu yapısı ve cümleler

Sorgular, SELECT, FROM, WHERE, ORDER BY, LIMIT ve PARAMETERS gibi çeşitli kısımlardan oluşur.

Cümleler, tek bir sorgu isteği olarak birleştirilen alan adları, kaynak adları, operatörler, koşullar ve sıralama kullanır.

Temel olarak, 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.
  • İlgili kaynak verilerini dolaylı olarak birleştirmek için ilişkilendirilmiş kaynaklar ekleyin.
  • Sonuçlarınızı filtreleyin, sıralayın ve sınırlayın.

SELECT koşulu

SELECT koşulu:

  • Sorgudaki zorunlu bir yan tümcedir.
  • İstekte getirilecek bir alan grubunu belirtir.
  • Kaynak alanlarının, özel sütunların, özel Floodlight değişkenlerinin, segment alanlarının 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 özelliklerinin nasıl seçileceği gösterilmektedir:

SELECT
  campaign.id,
  campaign.name
FROM campaign

Birden çok 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.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 başlıklı makaleyi inceleyin.

Ana kaynak alanı

Genellikle ana kaynak alanınızı SELECT yan tümcesine dahil edersiniz 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 dahil edebilirsiniz.

Bu örnekte sorgu, kampanya kaynağı için 123454321 kimlikli bir özel değişken içerir.

SELECT
  conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
  conversion_custom_dimensions.id[123454321]
FROM campaign

Özel sütunlar

SELECT yan tümcesine, kimliklerini kullanarak özel sütunlar ekleyebilirsiniz.

Bu örnekte sorgu, kampanya kaynağı için 12345678 kimlikli bir özel sütun içerir.

SELECT
  custom_columns.id[12345678]
FROM campaign

Özel sütun kimliklerini nasıl alacağınızı öğrenin.

Metrik alanları

SELECT yan tümcesine kaynaktaki başka alanları dahil etmeden belirli bir kaynak için metrik alanları 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 yan tümcesinde eşlik eden kaynak alanları 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 bölümüne bakın.

Yasaklı alanlar

SELECT yan tümcesinde aşağıdaki alanları kullanamazsınız:

  • Seçilemeyen alanlar (yani Selectable meta veri özelliği false olarak işaretlenmiş alanlar).
  • Yinelenen alanlar (yani Repeated meta veri özelliği true olarak işaretlenmiş alanlar).
  • FROM yan tümcesinde belirtilen kaynak için kullanılamayan alanlar. Bazı kaynakların özellikleri birlikte seçilemez. Bazı kaynaklar yalnızca tüm metriklerin ve segmentlerin bir alt kümesini sunar.
  • Uyumsuz segmentler veya metrikler. Daha fazla bilgi için Segmentasyon bölümüne bakın.

Her kaynak için bu bilgileri nerede bulabileceğinizle ilgili ayrıntılar için Referans belgelerine bakın.

FROM koşulu

FROM koşulu:

  • SearchAds360Service (hem Search hem de SearchStream yöntemleri) için sorgularda zorunlu bir yan tümcedir.
  • SearchAds360FieldService adresine yapılan sorgularda dahil edilmemelidir.
  • Sorgunun döndürdüğü ana kaynağı belirtir.
  • Yalnızca tek bir kaynak belirtilebilir.
  • Sorgudaki diğer tüm yan tümcelerde kullanabileceğiniz alanları tanımlar.

İlişkilendirilen kaynaklar

İlişkilendirilmiş kaynaklar mevcutsa FROM yan tümcesinde belirttiğiniz kaynakla dolaylı olarak birleştirilir. Değerlerini döndürmek için bu öğelerin özelliklerini SELECT yan tümcesine eklemeniz yeterlidir.

campaign, ad_group kaynağının ilişkilendirilmiş 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ümcesinde 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 özellik atanmış bir kaynağın resource_name alanı döndürülür.

Bu örnek sorguda, campaign.id seçildiğinden campaign.resource_name yanıta dahil edilir:

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

WHERE koşulu

WHERE koşulu:

  • Sorgudaki isteğe bağlı bir yan tümcedir.
  • İsteğin verilerini filtreleme ve segmentlere ayırma koşullarını belirtir. Koşullar şu kalıptadır: FIELD_NAME OPERATOR VALUE (boşluklarla ayrılır).
  • AND ayırıcıyla ayrılmış birden fazla koşul içerebilir.

Bu örnek sorguda, belirli bir döneme ait impressions metriklerini döndürmek için WHERE yan tümcesinin 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ı belirtme hakkında daha fazla bilgi edinmek için Tarih aralıkları başlıklı makaleyi inceleyin.

resource_name alanına göre filtreleme

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 impressions metriği olan tüm kampanyalar için clicks 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 Segmentlere ayırma bölümüne bakın.

Büyük/küçük harfe duyarlılık

Dize değerlerinde 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 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 için varsayılan hassasiyeti büyük/küçük harf duyarlı olmayan olarak değiştirmek üzere (?i) değiştiricisini kullanabilirsiniz. Ö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 dil referansı başlıklı makaleyi inceleyin.

Temel tarih 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 saat aralığı belirtmek için WHERE yan tümcenizde temel tarih segmentlerini kullanabilirsiniz.

Bu örnek sorgu, WHERE yan tümcesinde 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ç, seçilmemiş segment alanlarında.
  • Temel öğeler (ör. Int64Value, StringValue vb.) hariç tüm mesaj türlerinin alanlarında.
  • Temel öğeler (örneğin, Int64Value, StringValue vb.) hariç her türlü ileti türünün yinelenen alanlarının özelliklerinde.

ORDER BY koşulu

ORDER BY koşulu:

  • Sorgudaki isteğe bağlı bir yan tümcedir.
  • Sonuçların döndürüleceği sırayı belirtir. Sıralama şu kalıbı izler: FIELD_NAME ORDERING_OPTION (boşlukla ayrılır).
  • İki seçenek sunar: ASC (artan) veya DESC (azalan). Varsayılan sıralama artan şekildedir.

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 çok 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 düzende, ardından gösterim sayısına göre azalan düzende ve ardından 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ıralama ve sınırı birleştirme

Sonuçlarınızı hassaslaştırmak için ORDER BY yan tümcesini LIMIT yan tümcesiyle 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ş verme

Aşağıdakilere sipariş veremezsiniz:

  • Seçilmemiş kaynakların özelliklerine göre.
  • Seçilmemiş metriklere göre.
  • Seçilmemiş segmentlere göre.
  • Aşağıdaki alan türleri için:
    • MESSAGE
    • Yinelenen alanlar
    • Yinelenen alanların özellikleri.

LIMIT koşulu

LIMIT koşulu:

  • Sorgudaki isteğe bağlı bir yan tümcedir.
  • Sorgunun döndürdüğü sonuç sayısını sınırlamanıza olanak tanır.

Bu yan tümce, örneğin yalnızca sonuçların bir örneği veya özeti ile ilgileniyorsanız yararlı olur.

Bu örnek sorgu, toplam sonuç sayısını 50 ile sınırlandırır:

SELECT
  campaign.name,
  ad_group.name,
  segments.device,
  metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50

PARAMETERS yan tümcesi

PARAMETERS yan tümcesi, istek için meta parametreler belirtmenize olanak tanır.

Taslakları dahil etme

include_drafts parametresi, taslak öğelerin sonuçlara dahil edilip edilmeyeceğini kontrol eder. Varsayılan değer false'tir. Taslak varlıkları 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çilmemiş resource_name öğeleri 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'tir. Bu parametreyi true olarak ayarlarsanız birincil kaynağın ve SELECT yan tümcesinde ilişkilendirilmiş tüm kaynakların kaynak adını açıkça istemenizi öneririz.

Bu örnek sorgu, SELECT yan tümcesine dahil edilmediklerinden campaign.resource_name veya customer.resource_name alanını döndürmez:

SELECT
  campaign.name,
  customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true

Bu örnek sorgu, SELECT yan tümcesinde açıkça istendiği için 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 hesap için yerel para birimi kullanılır. Bu parametreyi ayarlarsanız ISO 4217 3 karakterli para birimi kodunu kullanmanız gerekir. Örneğin: TRY, EUR.

Bu örnek sorgu, cost_micros metriğini hesabın yerel para biriminde 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 pesosu (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"

Daha fazla bilgi