İçeriğe geç
ceaksan

Google Ads Custom Variables: Dönüşümleri Zenginleştiren En Kısa Yol

Google Ads dönüşüm raporlarınızı ürün kategorisi, müşteri tipi ve ödeme yöntemine göre kırmak için Conversion Custom Variables kurulumu, aktivasyonu, raporlamada görüntülenmesi ve ilk hafta yaygın hataları.

6 May 2026 8 dk okuma
TL;DR

Google Ads dönüşüm raporları varsayılan olarak kampanya ve dönüşüm sayısı seviyesinde kalır; ürün kategorisi, müşteri tipi, ödeme yöntemi gibi iş boyutlarına göre kırılamaz. Conversion Custom Variables (CCV) bu boyutları conversion event'inin yanına ekleyip raporu segmentlemeyi sağlar; gtag, GTM ya da offline import yoluyla beslenir. Tag string ile kod parametre adı case-sensitive eşleşmeli, değişken Activate edilmedikçe rapora yansımaz ve aktivasyondan önceki veri geriye dönük işlenmez.

Google Ads dönüşüm raporları varsayılan olarak kampanya ve dönüşüm sayısı seviyesinde durur. “Şu kampanya 124 dönüşüm getirdi, toplam 18.450 TL” der; ürün kategorisi, yeni mi geri dönen müşteri mi, hangi ödeme tipiyle aldı sorularına cevap vermez. Conversion Custom Variables (CCV) dönüşüm event’inin yanına bu ek bilgileri ekleyip raporlarınızı bu boyutlara göre segmentlemenizi sağlar.

Bu yazıda kavramı, kurulum mantığını, doğrulama akışını ve raporda nasıl göründüğünü anlatmaya çalışacağım.

Custom Variable nedir, neyi çözer

Tipik kullanım örnekleri:

  • product_category → kategori bazlı ROAS karşılaştırması
  • customer_type → yeni vs geri dönen müşteri ayrımı
  • order_id → tekil sipariş takibi (yalnızca debug için, raporlama için anlamsız)
  • payment_method → kredi kartı vs havale dönüşüm karşılaştırması
  • shipping_region → bölgesel performans analizi (shopify için market_country, vb.)

Önemli sınır: kişisel veri (e-posta, telefon, ad-soyad, adres) yasak. Sadece sınıflama amaçlı dimension’lar kullanılabilir. PII gönderiminde Google Ads önce uyarır, devamında hesabı politika ihlali olarak işaretleyebilir.

Hangi durumlarda CCV anlam kazanır

CCV her veri için doğru çözüm değil. Üç tipik senaryoda gerçekten boşluk doldurur:

  1. Native dimension olmayan iş boyutları: ürün kategorisi, ödeme yöntemi, müşteri segmenti, plan tier’ı gibi Google Ads’in standart raporlarında bulunmayan alanlar.
  2. GA4’te kurguladığın custom dimension’ı Google Ads tarafına taşımak: GA4 import köprüsünden bağımsız olarak, conversion event’inin yanına aynı parametreyi koyup Google Ads UI’sında raporlanabilir hale getirmek.
  3. Cart data gönderiliyor ama formal pipeline yok: items array, COGS, margin gibi alanlar tag tarafında gönderiliyor ama Merchant Center linki kurulmamış ya da cart data raporu aktif değil. Native pipeline’da kaybolan bu veriyi CCV ile toplulaştırılmış skaler değerler olarak (cogs_total, margin_total, top_category) yakalayıp raporlanabilir hale getirebilirsin.

Sınır: array CCV’ye sığmaz, 100 karakterlik string skalerler. Sayısal alanlarda 100.000 unique value sınırını aşmamak için bucket’lama (0-50, 50-100, …) ya da onluk kuruş hassasiyeti gerekir.

Tersi de aynı netlikte: native işleyiş gören parametreleri CCV’ye dönüştürmek faydasız. NCA için new_customer ve customer_lifetime_value, cart data için aw_merchant_id ve aw_feed_*, standart value / currency Google Ads’in kendi pipeline’larında işleniyor. CCV’ye duplike etmek aktif değişken kotasından slot harcar, ek raporlama değeri üretmez.

Adım 1: Google Ads’te değişkeni tanımla

Goals > Conversions > Custom variables > + New custom variable

İki alan dolduruluyor:

AlanNe yazılırÖrnek
Custom variableRaporda görünen ad (insan için, sonradan değiştirilebilir)“Ürün Kategorisi”
Tag stringKod tarafında parametre adı (sonradan değişmez)product_category

Tag string için tutarlı bir konvansiyon: lowercase + snake_case + ASCII. urun_kategorisi yerine product_category. Türkçe karakter ve boşluk kodda sıkıntı çıkarır; raporda görünmesi gereken Türkçe karşılık zaten “Custom variable” alanına yazılır. Her iki alan da 100 karakter ile sınırlıdır.

Bir değişken oluşturulduktan sonra işlev kazanır ve bu süre 24-48 saat alabilir. Daha önce iletilmiş değişkenler varsa durum Activation needed olarak görünebilir; bu normaldir.

Alternatif yol: Önceden tanımlama opsiyonel. Tag tarafında yeni bir parametre göndermeye başlarsan, ilk veri ulaştıktan sonra değişken otomatik olarak Custom variables sayfasına düşer; sonrasında sadece Activate kalır. Önceden tanımlamak isim ve case kontrolünü kolaylaştırır; tag’den otomatik düşmek hızlı POC için pratiktir. Offline conversion import yolunda ise önceden tanımlama zorunludur (otomatik düşmez).

Adım 2: Kodu siteye bağla

Burada iki yol var: gtag.js doğrudan implementasyon ya da Google Tag Manager (GTM) üzerinden Conversion Tracking template. Hangi yolu kullanırsanız kullanın, kodda kullandığınız parametre adının Google Ads’teki Tag string ile birebir case-sensitive eşleşmesi gerekir. En sık karşılaşılan hata budur: Tag string product_category iken kodda productCategory ya da Product_Category çalışmaz, sessizce boş döner.

GTM Google Ads Conversion Tracking tag’i ne sunuyor

GTM’in Google Ads Conversion Tracking template’i, gtag.js’te kodla yapacağın işleri checkbox seviyesine indirir. Aşağıdaki alanlar tag editöründe sırayla görünür:

AlanNe işe yararNe zaman aç
Conversion Value / Transaction ID / Currency CodeStandart e-ticaret dönüşüm verisi (value, transaction_id, currency)Her purchase event’inde
Provide product-level sales dataCart data: items[{id, price, quantity}] + aw_merchant_id, aw_feed_country, aw_feed_language. PMax / Shopping cart-level atribüsyon. id Merchant Center feed’i ile birebir eşleşmeliMerchant Center linki kurulmuşsa
Provide new customer dataNCA bidding goal’unu besler. new_customer (Boolean) ve customer_lifetime_value (numeric) parametreleri. GA4 tarafındaki customer_type karşılığıNew customer acquisition kampanyası varsa
Provide shipping dataEnhanced Conversions match rate uplift + bölgesel sinyal. Adres alanları (first_name, last_name, street, city, region, country, postal_code ya da sha256_* hash karşılıkları). Min match seti: ad+soyad+posta kodu+ülkeEC zaten aktifse, ek match power için
Enable Restricted Data ProcessingTrue olduğunda veri sadece delivery, raporlama, fraud, debug için kullanılır; targeting / remarketing / personalizasyon kapalı. CCPA opt-out, GPC sinyali ve ABD eyalet privacy yasaları içinOpt-out durumunda dinamik değişkenle, varsayılan False
Event Settings Variable / Event ParametersCCV parametrelerinin geçtiği yer. Her satırın key’i Google Ads UI’daki Tag string ile case-sensitive eşleşmeliCCV göndermek için

CCV özelinde önemli olan en alttaki Event Parameters bölümü. Burada product_category: {{DLV - product_category}} gibi key-value çiftleri eklersin. Aynı parametre setini birden fazla conversion tag’inde paylaşmak için bir Event Settings Variable oluşturup tek noktadan yönetebilirsin; bu, çok sayıda conversion action olan hesaplarda CCV güncellemelerini tek dosyaya indirir.

Üç checkbox’ın (cart data, new customer, shipping) ortak özelliği: native pipeline’a beslenirler, CCV ile aynı şey değildirler. CCV bu native verileri görünür kılmaz, sadece kendi tanımladığın özel boyutları yakalar.

Alternatif: offline conversion import ile CCV

Online tag dışında ikinci bir besleme kanalı var: offline conversion upload. GCLID-back upload yapan ajans, B2B satış ekipleri ya da CRM entegrasyonu olan senaryolarda CCV bu yoldan da gelir.

Mekanizma:

  • CSV ya da Google Sheet’te zorunlu kolonlar: Google Click ID, Conversion Name, Conversion Time, Conversion Value, Conversion Currency
  • CCV için ek kolon adı: cv:[tag_string] formatı. Örnek: cv:product_category, cv:customer_segment
  • Yükleme manuel UI üzerinden, üçüncü parti entegrasyon (Salesforce, HubSpot vb.) ya da Google Ads API ile yapılır

Tag-side kanalından farklı kuralları:

  • CCV upload’tan önce tanımlanıp Activate edilmiş olmalı; offline pipeline’da otomatik düşme yoktur
  • Tag string lowercase
  • Upload sonrası CCV güncellenemez: yanlış değer yüklendiyse o conversion için düzeltme yok
  • Aynı conversion için aynı CCV ikinci kez yüklenirse ikinci değer birinciyi ezer (overwrite)

Adım 3: Aktivasyon (en sık atlanan adım)

Google Ads’e ilk veri ulaştıktan ve değişken doğrulandıktan sonra Custom variables sayfasında değişken Recent values kolonunda son 5 değeri göstermeye başlar. Received time alanı da güncellenir.

Bu noktada hâlâ Activation needed durumundadır. Veri sisteme ulaşıyor ama raporlanmıyor.

Aksiyon: değişkeni seçip Activate butonuna basın. Birden fazla değişkeni aynı anda aktive etmek için listede checkbox seçimi yapıp Edit > Enable komutu kullanılır.

Aktivasyondan önceki veri geriye dönük olarak işlenmez. Aktivasyonu unutmak haftalarca veri kaybına yol açar. Tag’i canlıya aldığınız gün takvim hatırlatıcısı koyun, ertesi gün durumu kontrol edin.

Status değerlerinin anlamı:

DurumAnlamı
Activation neededVeri geliyor, henüz raporlanmıyor
EnabledVeri kaydediliyor ve raporlanabilir
PausedKayıt durduruldu (re-enable ederseniz boşluk dönemi olur)
RemoveDeğişken ve geçmiş veri silinir, geri alınamaz

Adım 4: Canlıda doğru çalışıyor mu

Aktivasyondan sonra Recent values kolonunda görmeniz gereken senaryolar:

SenaryoGörüntüOlası sebep
BoşHiç değer yokTag fire etmiyor ya da parametre adı Tag string ile eşleşmiyor
”Not set” çoğunluktaTag fire ediyor ama parametre boşData Layer’da değer yok, doğru sayfada değil
Bazı dönüşümlerde dolu, bazılarında boşKarışıkKategori sayfası vs ürün detay sayfası tutarsızlığı
Hepsi düzgünBeklenen değerlerAktivasyona hazır

Hızlı tanı için Browser DevTools Network sekmesinde /pagead/conversion/... request’inin data= query parametresinin içine bakın. Pratikte custom variable’larınız orada noktalı virgülle ayrılmış görünür.

Örnek bir begin_checkout request’inin URL-decoded data= içeriği:

event=begin_checkout;shipping=0;tax=51.89;page_path=/checkouts/cn/...

data= payload üç katmandan oluşur ve hepsi ; ile ayrılmış olarak aynı request’te görünür ama Google Ads tarafında farklı pipeline’larda işlenir:

  1. Top-level conversion fields: value, currency_code, oid (transaction id) — request’in üst seviyesinde, data= dışında query parametresi olarak. Native conversion pipeline’ına gider.
  2. Event metadata: event, page_path, shipping, taxdata= içinde. GA4 enhanced ecommerce yapısından gelir, Google Ads cart-data field’larıyla karıştırılmamalı.
  3. CCV’ler: Tag string ile tanımladığın özel boyutlar (product_category, customer_type, …) — yine data= içinde, event metadata ile aynı formatta. Custom variables sayfasında Recent values kolonunda görünmesi gereken alanlar bunlar.

Üç katman aynı görünür ama Google Ads’te farklı yere düşer. CCV’lerin görünmediği bir senaryoda önce data= içinde gerçekten gönderildiğinden emin ol, sonra Tag string eşleşmesini kontrol et.

Adım 5: Raporda görüntüleme

Aktivasyondan sonra dönüşüm verisi 3-6 saat içinde rapora yansır.

Yöntem A: Segment

Campaigns ya da Ad groups raporunda:

  1. Sağ üstte segment ikonu
  2. Conversions > Custom variables
  3. Görmek istediğiniz değişkeni seçin

Tabloda her satır seçtiğiniz değişkenin değerine göre kırılır. Örneğin customer_type segmentinde “new” / “returning” / “Not set” satırlarını görürsünüz.

Önemli davranış: CCV göndermeyen ya da aktivasyon öncesinde toplanan dönüşümler segment satırlarında görünmez; sadece kampanyanın toplam (unsegmented) satırında sayılır1. Bu yüzden segment satırlarının toplamı kampanyanın toplam dönüşüm sayısından az olabilir; aradaki fark “CCV taşımayan” dönüşümlerdir.

Yöntem B: Custom Column (önerilen)

Segment hızlıdır ama esnek değildir. Daha güçlüsü, custom column’da filter ile metrik tanımlamak:

  1. Columns > Custom columns > + Custom column
  2. Metric: All conv. value
  3. Filter: Custom variable [customer_type] equals new
  4. Adı: “Yeni Müşteri Dönüşüm Değeri”

Bu kolonu eklediğinizde her kampanya için sadece yeni müşteri dönüşüm değerini görürsünüz. Aynı yöntemle “Geri dönen müşteri ROAS”, “Yüksek margin kategorisi CPA” gibi özel metrikleri kurabilirsiniz.

Sınırlandırmalar: Conv. rate, Cost/conv., ROAS gibi oran metrikleri segment ile bölünemez1. Bunları custom column ile yeniden inşa etmeniz gerekir.

Yaygın hatalar (ilk hafta)

  1. Tag string ile kod parametre adı uyuşmuyor (en sık problem, case-sensitive)
  2. Aktivasyon unutuluyor: değişken UI’da görünür ama veri kayda alınmaz
  3. PII gönderiliyor: email, telefon CCV’ye yazıldığında politika ihlali uyarısı alınır
  4. Aynı conversion’a aynı CCV birden fazla değer: online tarafında çakışma, offline upload’ta ikinci yükleme birinciyi ezer (örn. car_color=red sonra car_color=blue → sonuç blue). Birden fazla anlamlı değer gerekiyorsa CCV’yi ikiye böl: tek location yerine city + state gibi
  5. Yüksek kardinaliteli alan: order_id gibi alanlar 100.000 unique value sınırını hızla zorlar
  6. Native parametre CCV’ye duplike ediliyor: new_customer, aw_merchant_id, value gibi alanlar Google Ads’in kendi pipeline’ında işleniyor; CCV slot’u harcamak ek değer üretmez

Bilinmesi gereken sınırlar

  • Bir değişkende maksimum 100.000 unique value, üstü sessizce drop1
  • Değer string’leri 100 karakter ile kesilir1
  • Hesap başına aktif değişken kotası vardır; Google resmi rakam yayımlamıyor, hesap UI’sında uyarı görünüyorsa kotaya yaklaşılmıştır. Kullanmadığın değişkenleri Pause etmek slot açar
  • MCC hesaplarda: “yaklaşan limit” uyarıları MCC seviyesinde belirebilir, ancak limit aşan child hesabı bulup orada düzeltmek gerekir1
  • API tarafında (GAQL/BigQuery Data Transfer) CCV ile segmentasyon yok2; otomasyon istiyorsanız UI scheduled report > Sheets > BigQuery yolu gerekir
  • Consent Mode advanced açıksa modelled conversions CCV taşımaz, “Not set” oranı %20-25 görebilirsiniz3

Sonraki adım: impression ve kullanıcı verisine göre genişletme

Bu rehberde dönüşüm seviyesinde CCV kurulumunu anlattık. Talep geldikçe seri devam edecek konular:

  • Remarketing event’lerinde CCV: kullanıcıyı segmentlere ayırıp Audience Manager’da custom audience’a dönüştürmek
  • Conversion Value Rules: margin’i CCV’ye yazmak yerine value alanında yansıtmak (POAS yaklaşımı)
  • GA4 import köprüsü: GA4’e gönderdiğiniz custom dimension’ların otomatik olarak Google Ads’te CCV olarak görünmesi
  • Server-side GTM: first-party cookie kayıplarına karşı CCV’lerin sGTM tarafında yönetilmesi
  • Smart Bidding etkileşimi: CCV’nin neden direkt bidding sinyali olmadığı, hangi durumda Value Rules ile birleştirileceği

İlk kurulumu sağlam yapın, ondan sonra optimizasyon adımları çok daha verimli işler.

CCV kurulumunu mağazanızda uygulayalım

Google Ads custom variables tanımlama, gtag/GTM Tag string mapping, Tag Assistant ve DevTools ile doğrulama, segment ve custom column raporlama setup'ı için mağazanıza özel kurulum desteği.

Ölçüm Kurulumu Desteği
Neler var
  • Custom variable + Tag string konvansiyonu kurulumu
  • gtag.js / GTM event parameters mapping
  • Tag Assistant + DevTools ile case-sensitive doğrulama
  • Segment + custom column raporlama şablonları
  • PII / cardinality / consent mode gözden geçirme

Footnotes

  1. Google Ads Help, Set up custom variables for conversions ve About custom variables for conversions. Resmi limitler: “Values beyond the first 100,000 for any custom variable aren’t recorded”, “Strings are limited to 100 characters for custom variable data”, MCC hesaplarda limit uyarısı durumunda child hesapların kontrolü. 2 3 4 5
  2. Google Ads API support: “segmenting conversions by Custom Conversion Variables is not supported” (Eylül 2025). Google’ın resmi API destek cevabı, segments.conversion_custom_variable GAQL’de geçersiz alan olarak işaretleniyor.
  3. Jesper Joergensen, Google Ads Custom Variables — A Guide (Ekim 2025). Consent Mode advanced ile modelled conversion’larda “Not set” CCV oranı vaka örneği.
Önemli Noktalar
  • 01 Custom variable (rapor adı) ve Tag string (kod parametre adı) birbirinden farklı: Tag string sonradan değişmez, kodla birebir case-sensitive eşleşmeli
  • 02 Aktivasyon zorunlu ve geriye dönük backfill yok: Recent values'ta veri görüldüğü an Activate edilmezse haftalarca veri kaybı olur
  • 03 Oran metrikleri (ROAS, Conv. rate, Cost/conv.) segment ile bölünemez, sadece custom column'da filter ile yeniden inşa edilebilir
  • 04 Değişken başına 100.000 unique value sınırı: order_id gibi yüksek kardinaliteli alanlar bu sınırı hızla zorlar. Aktif değişken sayısı için resmi yayımlanmış rakam yok, UI uyarılarından izlenir
  • 05 Google Ads API/GAQL custom variable ile segmentasyonu desteklemiyor: BigQuery pipeline kuruyorsanız UI scheduled report > Sheets > BQ workaround gerekir
  • 06 PII yasak: e-posta, telefon, ad-soyad, adres asla CCV değeri olarak gönderilmez, hesabı politika ihlali olarak işaretler
Sık Sorulan Sorular (FAQ)
+ Custom variable ve Tag string arasındaki fark nedir?

Custom variable raporda görünen, insan okunabilir addır ve sonradan değiştirilebilir. Tag string ise kodda kullanılan parametre adıdır, sonradan değiştirilemez ve gtag/GTM tarafındaki key ile birebir case-sensitive eşleşmek zorundadır. Tag string için lowercase + snake_case + ASCII konvansiyonu önerilir.

+ Custom variable kurduktan sonra eski dönüşüm verisi de bu boyuta göre raporlanır mı?

Hayır. Aktivasyondan önceki veri geriye dönük olarak işlenmez (no backfill). Tag canlıya alındığında Recent values'ta değerler görünmeye başlar ama değişken Activate edilmediği sürece raporlanmaz. Aktivasyondan sonraki dönüşümler segment ve custom column'da görünür.

+ Custom variable bidding sinyali olarak çalışır mı?

Hayır, doğrudan bidding sinyali değildir. Smart Bidding'in (tROAS, Maximize Conversion Value) optimize ettiği değer conversion event'inin value alanıdır. Margin ya da LTV gibi sinyalleri bidding'e taşımak için ya value alanına gerçek profit yazılır (POAS yaklaşımı) ya da Conversion Value Rules ile audience/geo/device bazlı çarpan tanımlanır. CCV reporting ve segmentasyon içindir.

+ GAQL ya da BigQuery Data Transfer ile custom variable'a göre segmentleme yapabilir miyim?

Hayır. Google Ads API resmi olarak segments.conversion_custom_variable alanını desteklemiyor. UI'da segmentasyon mümkün ama API üzerinden değil. BigQuery pipeline kurmak istiyorsanız Google Ads UI scheduled report > Google Sheets > BigQuery import workaround'una başvurmanız gerekir.

+ new_customer, customer_lifetime_value, aw_merchant_id gibi native parametreleri CCV olarak da tanımlamalı mıyım?

Hayır. Bu parametreler Google Ads'in kendi pipeline'larında (NCA, cart data) zaten işleniyor; new_customer için native New / Returning segmenti, cart data için Merchant Center bağlantılı raporlar mevcut. CCV'ye duplike etmek aktif değişken kotasından slot harcar, ek raporlama değeri üretmez. CCV'yi gerçekten custom dimensions için sakla: product_category, payment_method, plan_tier gibi.

+ Türkçe karakterli ya da boşluklu değer gönderebilir miyim?

Önerilmez. Tag string ve değerler ASCII güvenli, lowercase + snake_case formatında olmalıdır. "İstanbul Avrupa" gibi değerler URL encoding sorunlarına yol açar; istanbul_avrupa, marmara_bolgesi gibi slug formatına çevirin. İnsan okunabilir Türkçe karşılığı raporda Custom Column adına yazılır, ham değer koda uygun olur.