Google Ads Sorgu Dili

Temel terminoloji

Kaynak
Google Ads'deki bir öğe (ör. campaign veya ad_group).
Segment
Verileri gruplandırmak için kullanılan bir boyut (ör. segments.date veya segments.device). Segmentler, metriklerle birlikte SELECT ifadesine dahil edildiğinde metrikler segmente göre bölünür.
Metrik
metrics.impressions veya metrics.clicks gibi performans ölçümü.
İlişkilendirilen Kaynak
FROM ifadesindeki ana kaynağa örtülü olarak katılan bir kaynak. Bu kaynak, ana kaynak özellikleriyle birlikte kendi özelliklerini de seçmenize olanak tanır.

Kaynak veya meta veri bilgileri için sorgu

Google Ads Sorgu Dili, Google Ads API'ye aşağıdaki bilgi türleri için sorgu gönderebilir:

  • GoogleAdsService Search veya SearchStream kullanılarak kaynaklar ve bunlarla ilgili özellikler, segmentler ve metrikler: GoogleAdsService sorgusunun sonucu, her biri bir kaynağı temsil eden GoogleAdsRow örneklerinin listesidir.GoogleAdsRow

    Herhangi bir özellik veya metrik istenirse satır bu alanları da içerir. Herhangi bir segment istenirse yanıtta her segment-kaynak grubu için ek bir satır da gösterilir.

  • GoogleAdsFieldService'daki kullanılabilir alanlar ve kaynaklarla ilgili meta veriler: Bu hizmet, sorgulanabilir alanların uyumlulukları ve türleriyle ilgili ayrıntıları içeren bir kataloğunu sağlar.

    GoogleAdsFieldService sorgusunun sonucu, GoogleAdsField örneklerinin bir listesidir. Her GoogleAdsField, istenen alanla ilgili ayrıntıları içerir.

Sorgu yapısı hakkında daha fazla bilgi için Sorgu Yapısı ve Google Ads Sorgu Dili Grameri başlıklı makaleleri inceleyin.

Kaynak özelliklerini sorgulama

Kampanya kaynağının özellikleriyle ilgili temel bir sorgu örneğini aşağıda bulabilirsiniz. Bu örnekte, kampanya kimliğinin, adının ve durumunun nasıl döndürüleceği gösterilmektedir:

SELECT
  campaign.id,
  campaign.name,
  campaign.status
FROM campaign
ORDER BY campaign.id

Bu sorgu, kampanya kimliğine göre sıralama yapar. Elde edilen her GoogleAdsRow, kampanyanın resource_name'ı dahil olmak üzere seçilen alanlarla doldurulmuş bir campaign nesnesini temsil eder.

Kampanya sorgularında hangi alanların kullanılabildiğini öğrenmek için Campaign referans belgelerine bakın.

Metrikler için sorgu oluşturma

Belirli bir kaynak için seçilen özelliklerin yanı sıra ilgili metrikleri de sorgulayabilirsiniz:

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  metrics.impressions
FROM campaign
WHERE campaign.status = 'PAUSED'
  AND metrics.impressions > 1000
ORDER BY campaign.id

Bu sorgu, yalnızca PAUSED durumuna sahip olan ve 1.000'den fazla gösterim alan kampanyaları filtrelerken kampanya kimliğine göre sıralama yapar. Sonuç olarak elde edilen her GoogleAdsRow, seçilen metriklerle doldurulmuş bir metrics alanına sahip olur.

Sorgulanabilir metriklerin listesi için Metrics belgelere bakın.

Segmentler için sorgu oluşturma

Belirli bir kaynak için seçilen özelliklerin yanı sıra ilgili segmentleri de sorgulayabilirsiniz:

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  metrics.impressions,
  segments.date,
FROM campaign
WHERE campaign.status = 'PAUSED'
  AND metrics.impressions > 1000
  AND segments.date during LAST_30_DAYS
ORDER BY campaign.id

Metrikler için sorgu oluşturmaya benzer şekilde, bu sorgu yalnızca durumu PAUSED olan ve 1.000'den fazla gösterim alan kampanyaları filtreler. Ancak bu sorgu, verileri tarihe göre segmentlere ayırır. Bu, sonuçlanan her bir GoogleAdsRow öğesinin bir kampanya ve tarih demetini Segment temsil etmesine yol açar. Segmentlere ayırma, seçilen metrikleri SELECT ifadesindeki her segmente göre gruplandırarak böler.

Sorgulanabilir segmentlerin listesi için Segments belgelerine bakın.

Belirli bir kaynağa yönelik sorguda, varsa diğer ilgili kaynaklarla birleştirme işlemi yapabilirsiniz. Bu ilgili kaynaklar "atfedilen kaynaklar" olarak bilinir. Sorgunuzda bir özellik seçerek ilişkilendirilmiş kaynaklara karşı örtülü olarak birleştirme işlemi yapabilirsiniz.

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  bidding_strategy.name
FROM campaign
ORDER BY campaign.id

Bu sorgu yalnızca kampanya özelliklerini seçmekle kalmaz, aynı zamanda seçilen her kampanyadan ilgili özellikleri de getirir. Elde edilen her GoogleAdsRow, seçilen kampanya özelliklerinin yanı sıra seçilen teklif stratejisi özelliği bidding_strategy.name ile doldurulmuş bir campaign nesnesini temsil eder.

Kampanya sorguları için hangi ilişkilendirilmiş kaynakların kullanılabildiğini öğrenmek üzere Campaign referans belgelerine bakın.

En iyi uygulamalar

  • Uzun yanıt sürelerini ve zaman aşımlarını önlemek için yalnızca ihtiyacınız olan alanları seçin.
  • Büyük sonuç kümelerinin işlenmesini önlemek için geliştirme ve test sırasında LIMIT kullanın.
  • Veri aktarımını ve yanıt boyutunu en aza indirmek için WHERE ifadesinde filtre uygulayın.
  • Karmaşık sorgular oluşturmadan önce alan uyumluluğunu ve veri türlerini kontrol etmek için GoogleAdsFieldService'ı kullanın.
  • Bazı alanların, özellikle de büyük miktarda veri veya karmaşık hesaplamalar içerenlerin sorgu maliyetini artırabileceğini unutmayın.

Sorgu sonuçlarına göre değiştirme

Belirli bir kaynak için sorgu gönderirken döndürülen sonuçları hemen nesne olarak alabilir, bunları değiştirebilir ve ilgili kaynağın hizmetindeki mutate yöntemine geri gönderebilirsiniz. Örnek bir iş akışı: 1. Şu anda PAUSED olan ve 1.000'den fazla gösterime sahip tüm kampanyalar için bir sorgu yürütün. 1. Yanıtın campaign alanındaki her GoogleAdsRow öğesinden Campaign nesnesini alın. 1. Her kampanyanın durumunu PAUSED'dan ENABLED'a değiştirin. 1. Değiştirilen kampanyaları kullanarak CampaignService.MutateCampaigns işlevini çağırın.

Alan meta verileri

GoogleAdsFieldService adresine gönderilen sorgular, alan meta verilerini almak için kullanılır. Bu bilgiler, alanların bir sorguda birlikte nasıl kullanılabileceğini anlamak için kullanılabilir. Veriler API'den alınabildiğinden ve sorguyu doğrulamak ya da oluşturmak için gerekli meta veriler sağlandığından geliştiriciler bu işlemleri programatik olarak yapabilir. Meta veriler için tipik bir sorgu örneğini aşağıda bulabilirsiniz:

SELECT
  name,
  category,
  selectable,
  filterable,
  sortable,
  selectable_with,
  data_type,
  is_repeated
WHERE name = "<INSERT_RESOURCE_OR_FIELD>"

Bu sorgudaki <INSERT_RESOURCE_OR_FIELD> yerine bir kaynak (ör. customer veya campaign) ya da alan (ör. campaign.id, metrics.impressions veya ad_group.id) kullanabilirsiniz.

Sorgulanabilir alanların listesi için GoogleAdsField belgelerine bakın.

Kod örnekleri

İstemci kitaplıklarında, GoogleAdsService içinde Google Ads Sorgu Dili'nin kullanımına ilişkin örnekler bulunur. Temel işlemler klasöründe GetCampaigns, GetKeywords ve SearchForGoogleAdsFields gibi örnekler bulunur.