Web sitelerinde izin modunu ayarlama

Bu sayfa, web sitelerinde kendi izin çözümlerini kullanan ve izin modunu entegre etmek isteyen geliştiriciler içindir. İzin moduyla ilgili giriş bilgileri için İzin moduna genel bakış başlıklı makaleyi inceleyin. Kullanıcı izni almak için Kullanıcı Rızası Yönetim Platformu (CMP) kullanıyorsanız CMP ile izin modunu ayarlama hakkında daha fazla bilgi edinin.

İzin modunu temel veya gelişmiş bir şekilde uygulayabilirsiniz. Bir uygulama yöntemi seçmek ve hangi varsayılanları ayarlayacağınızı belirlemek için şirketinizin yönergelerini inceleyin. Temel ve gelişmiş izin modu hakkında daha fazla bilgi edinin.

Başlamadan önce

İzin modunu uygulamadan önce aşağıdakileri göz önünde bulundurun:

  • Etiket Yöneticisi'ni kullanıyor ve kendi banner'ınızı kullanmaya devam etmek istiyorsanız önerilen yaklaşım, banner'ınızı Etiket Yöneticisi kapsayıcısı üzerinden yüklemektir. Bunun için izin modu şablonu oluşturmanız gerekir. Alternatif olarak, Topluluk Şablon Galerisi'ndeki bir izin modu şablonunu kullanabilirsiniz.

  • gtag.js kullanıyorsanız Google etiketini web sitenizin her sayfasına yüklediğinizden emin olun. İzin modu kodu, web sitenizin her sayfasına eklenir.

İzin modunu ayarlamak için aşağıdakileri yapmanız gerekir:
  1. Kullanıcı izin vermeden önce: Varsayılan izin durumunu ayarlayın.
  2. Kullanıcının izin ayarlarınızla etkileşimine göre izin durumunu güncelleyin.

Kullandığınız her izin türü için varsayılan bir değer ayarlayın. Varsayılan olarak, izin modu değeri ayarlanmaz.

En iyi uygulama, varsayılan izin ayarlarının kapsamını ziyaretçilerinize izin banner'larını gösterdiğiniz bölgelerle sınırlamaktır. Böylece, izin banner'larının gerekli olduğu bölgelerde ölçüm korunabilir ve Google etiketleri, davranışlarını buna göre ayarlar. Ayrıca, izin banner'ı bulunmadığında veya geçerli olmadığında tüm ölçüm verilerinin kaybedilmesini önlersiniz. Bölgeye özgü davranışlar başlıklı makaleyi inceleyin.

Etiket Yöneticisi

Google Etiket Yöneticisi'ni kullanıyorsanız Etiket Yöneticisi izin API'lerini kullanarak kendi şablonunuzu oluşturun. Başlangıç noktası olarak referans alabileceğiniz örneği aşağıda bulabilirsiniz.

İzin durumlarını yönetmek için Etiket Yöneticisi'ne özel API'leri kullanın setDefaultConsentState ve updateConsentState. gtagSet API, ads_data_redaction ve URL geçişi ayarlarını isteğe bağlı olarak uygun şekilde ayarlamak için kullanılabilir.

gtag.js

Varsayılan ölçüm özelliklerini ayarlamak için sitenizin her sayfasında, ölçüm verilerini gönderen komutlardan (ör. config veya event) önce gtag('consent', 'default', ...) komutunu çağırın.

Örneğin, tüm parametreler için varsayılan olarak izni reddetmek üzere ayarlama yapmak için:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});

İsteğe bağlı: Asenkron kullanıcı rızası yönetim platformlarıyla entegrasyon

Banner'ınız eşzamansız olarak yükleniyorsa her zaman Google etiketlerinizden önce çalışmayabilir. Bu tür durumları ele almak için verilerin gönderilmeden önce ne kadar süre bekleneceğini kontrol etmek üzere wait_for_update ile birlikte milisaniye cinsinden bir değer belirtin.

Örneğin, belirli bir sayfada ad_storage'yı varsayılan olarak reddetmek ancak CMP'nizin izin durumunu güncellemesine izin vermek için wait_for_update'ı kullanın. Aşağıdaki kodda, ad_storage varsayılan olarak denied olur ve izin aracına, etiketler tetiklenmeden önce gtag('consent', 'update', ...)'yi çağırması için 500 milisaniye verilir:

  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'wait_for_update': 500
  });

Etiket Yöneticisi

İzin modu şablonu kullandığınızda, kullanıcı banner ile etkileşime girdiğinde kullanıcı izni otomatik olarak güncellenmelidir.

İzin modu şablonunu kendiniz oluşturuyorsanız izin durumlarını yönetmek için Etiket Yöneticisi'ne özel API'leri setDefaultConsentState ve updateConsentState kullanın. gtagSet API, ads_data_redaction ve URL geçişi ayarlarını isteğe bağlı olarak uygun şekilde ayarlamak için kullanılabilir.

gtag.js

Kullanıcının izin durumunu göndermek için update komutunu kullanın. İzin modu, izin seçimlerini kaydetmediğinden kullanıcı, kullanıcı rızası yönetim çözümünüzle etkileşime girer girmez izin durumunu güncelleyin. Kullanıcı izin verdikten sonra seçimini kaydedin ve sonraki sayfalarda güncelleme komutunu buna göre çağırın.

Tüm izin türleri için doğru değerlerin ayarlandığından emin olmak sizin sorumluluğunuzdadır. Desteklenen türlerle ilgili tüm ayrıntılar için API referansını inceleyin.

Aşağıdaki kod örneğinde, kullanıcı tüm seçenekleri kabul ettiğinde izin durumunun nasıl granted olarak güncelleneceği gösterilmektedir:

<!-- Send consent updates when users interact with your consent banner -->
<script>
function allConsentGranted() {
  gtag('consent', 'update', {
    'ad_user_data': 'granted',
    'ad_personalization': 'granted',
    'ad_storage': 'granted',
    'analytics_storage': 'granted'
  });
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Accept all</button>
  ...
</body>

Kullanıcılar, ilk etkileşimlerinden sonra izin tercihlerini değiştirebilir. Örneğin, başlangıçta izin veren bir kullanıcı daha sonra web sitenizin ayarlar panelinden bu izni iptal etmeye karar verebilir.

Etiket Yöneticisi

İzin modu şablonu kullanıyorsanız kullanıcı banner'ınızla veya ayarlar panelinizle etkileşimde bulunduğunda kullanıcının izni otomatik olarak güncellenmelidir.

İzin modu şablonunu kendiniz oluşturuyorsanız kullanıcı yeni tercihlerini onayladığında izin durumunu güncellemek için updateConsentState API'sini kullanın.

gtag.js

İzin durumunu istediğiniz zaman güncellemek için update komutunu kullanın. Bu komut, 'granted''dan 'denied''ye geçiş de dahil olmak üzere izin durumundaki tüm değişiklikler için kullanılır.

Örnek: İznin iptal edilmesi

Daha önce analytics_storage ve ad_storage için izin vermiş olan bir kullanıcı artık izni reddetmek istiyorsa yeni seçimini yansıtan bir update çağrısı gönderin:

// User updates their settings to deny consent
gtag('consent', 'update', {
  'analytics_storage': 'denied',
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied'
});

Uygulamada dikkat edilmesi gereken hususlar:

  1. Kalıcılık: Kullanıcının güncellenen izin seçimlerinin (ör. birinci taraf çerezinde veya yerel depolamada) kalıcı hale getirildiğinden emin olun. Böylece, sonraki sayfa yüklemelerinde doğru durum ayarlanır.
  2. Zamanlama: Kullanıcı, sitenizin izin ayarları arayüzünde yeni tercihlerini onaylar onaylamaz güncelleme komutunu çağırın.

Uygulama örneği

Aşağıdaki örnekte, birden fazla izin modu parametresi varsayılan olarak denied olarak ayarlanır. Kullanıcı izin tercihlerini belirttikten sonra ilgili parametreler granted olarak güncellenir.

Etiket Yöneticisi

Etiket Yöneticisi'ni kullanan sitelerde, ziyaretçi izin tercihlerinin güncellenmesini yönetmek için bir CMP kullanmanızı öneririz. CMP'ler, izin modunu yönetmek için bir etiket oluşturmak üzere Topluluk Şablon Galerisi'nde şablonlar sağlar.

Şablon kullanmak mümkün değilse bunun yerine sayfanızdaki kodu aşağıdaki şekilde güncelleyebilirsiniz. Buradaki kodun sırası çok önemlidir. İzin kodunuz sırayla çağrılmazsa izin varsayılan değerleri çalışmaz.

<script>
  // Define dataLayer and the gtag function.
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Set default consent to 'denied' as a placeholder
  // Determine actual values based on your own requirements
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied'
  });
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Send consent updates when users interact with your consent banner -->
<script>
  function allConsentGranted() {
    gtag('consent', 'update', {
      'ad_user_data': 'granted',
      'ad_personalization': 'granted',
      'ad_storage': 'granted',
      'analytics_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Accept all</button>
  ...
</body>

gtag.js

Buradaki kodun sırası çok önemlidir. İzin kodunuz sırayla çağrılmazsa izin varsayılan değerleri çalışmaz. İşletme gereksinimlerine bağlı olarak ayrıntılar değişebilir ancak genel olarak kod aşağıdaki sırayla çalışmalıdır:

  1. Google etiketini yükleyin. Bu, varsayılan snippet kodunuzdur. Varsayılan snippet, gtag('consent', 'default', ...) çağrısı içerecek şekilde güncellenmelidir (aşağıya bakın).

  2. İzin çözümünüzü yükleyin. Kullanıcı rızası çözümünüz eşzamansız olarak yükleniyorsa bunun doğru sırada gerçekleştiğinden nasıl emin olacağınızı öğrenmek için Eşzamansız kullanıcı rızası yönetim platformlarıyla entegrasyon başlıklı makaleyi inceleyin.

  3. İzin çözümünüz tarafından işlenmiyorsa kullanıcı izin verdikten sonra gtag('consent', 'update', ...) komutunu çağırın.

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="//www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'TAG_ID');
</script>

<!-- Send consent updates when users interact with your consent banner -->
<script>
  function allConsentGranted() {
    gtag('consent', 'update', {
      'ad_user_data': 'granted',
      'ad_personalization': 'granted',
      'ad_storage': 'granted',
      'analytics_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Accept all</button>
  ...
</body>

Google'ın gizlilik odaklı dijital reklamcılık ekosistemine yönelik devam eden taahhüdü kapsamında, AB kullanıcı rızası politikamızın yaptırımını daha sıkı hale getiriyoruz.

Google'ın Avrupa Ekonomik Alanı'ndaki (AEA) trafik için izin modu güncellemeleri hakkında daha fazla bilgi edinin.

İzin modu kullanıcılarının ad_storage ve analytics_storage parametrelerine ek olarak iki yeni parametre göndermesi gerekir:

Alan Adı İzin Verilen Değerler Açıklama
ad_user_data 'granted' | 'denied' Reklamcılıkla ilgili kullanıcı verilerinin Google'a gönderilmesi için izni belirler.
ad_personalization 'granted' | 'denied' Kişiselleştirilmiş reklamcılığa yönelik izni belirler.

Gelişmiş izin özellikleriyle şunları yapabilirsiniz:

  • Google etiketi kullanıcı arayüzünü kullanarak hangi Google hizmetleriyle veri paylaşacağınızı ayarlayın.
  • Coğrafi bölge için davranış belirleme
  • Kullanıcılar çerezlere izin vermediğinde URL'lerde reklam tıklaması, istemci kimliği ve oturum kimliği bilgilerini iletin.
  • Kullanıcılar reklam çerezleri için izin vermediğinde reklam bilgilerini tamamen çıkartın (kaldırın).

Bölgeye özgü davranış

Belirli bölgelerden gelen ziyaretçiler için geçerli olan varsayılan izin durumlarını ayarlamak istiyorsanız gtag izin varsayılan değeri komutunuzda bir bölge (ISO 3166-2'ye göre) belirtin. Bölge değerlerini kullanmak, bölgesel düzenlemelere uymanızı sağlar.

Belirli bölgeler için varsayılan ayarlar belirleyebilir, ardından diğer tüm bölgeler için farklı bir varsayılan ayar belirleyebilirsiniz. Bölge parametresi içermeyen bir gtag izin varsayılan komutu, başka bir bölgeye özgü komut kapsamına girmeyen tüm ziyaretçiler için varsayılan değeri ayarlar.

Etiket Yöneticisi

Etiketinizi oluşturmak için bir şablon kullanıyorsanız şablon, bölgeye özgü davranışları ayarlamak için kontroller içerebilir. Kendi şablon etiketinizi oluşturuyorsanız bölgeye özgü davranışı ayarlama hakkında daha fazla bilgi için İzin modu şablonu oluşturma bölümünü inceleyin.

gtag.js

Aşağıdaki örnekte, İspanya ve Alaska'daki kullanıcılar için analytics_storage, denied olarak, tüm kullanıcılar için ise ad_storage, denied olarak ayarlanır.

  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'region': ['ES', 'US-AK']
  });

  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

En spesifik parametre önceliklidir.

Aynı sayfada bir bölge ve alt bölge değerleriyle iki varsayılan izin komutu varsa daha belirli bir bölgeye sahip olan komut geçerli olur. Örneğin, ABD bölgesi için ad_storage özelliğini granted, ABD-CA bölgesi için ad_storage özelliğini denied olarak ayarladıysanız Kaliforniya'dan gelen bir ziyaretçi için daha spesifik olan ABD-CA ayarı geçerli olur. Bu örnekte, ABD-CA'dan gelen bir ziyaretçinin ad_storage değeri denied olarak ayarlanır.

Bölge ad_storage Davranış
ABD 'granted' ABD'de bulunan ancak Kaliforniya'da olmayan kullanıcılar için geçerlidir.
US-CA 'denied' ABD-CA'daki kullanıcılar için geçerlidir.
Belirtilmedi 'granted' 'granted' varsayılan değerini kullanır. Örnekte, ABD'de veya ABD-CA'da olmayan ziyaretçiler için geçerlidir.

Reklam tıklaması, istemci kimliği ve oturum kimliği bilgilerini URL'lerde iletme

Bir kullanıcı reklamı tıkladıktan sonra web sitenize ulaştığında, reklamla ilgili bilgiler açılış sayfası URL'lerinize sorgu parametresi olarak eklenebilir. Önemli etkinlik doğruluğunu artırmak için bu bilgiler genellikle alanınızdaki birinci taraf çerezlerinde saklanır.

Ancak ad_storage denied olarak ayarlanırsa bu bilgiler yerel olarak depolanmaz. ad_storage denied olduğunda reklam tıklama ölçüm kalitesini artırmak için URL geçişini kullanarak URL parametreleri aracılığıyla sayfalar arasında reklam tıklamaları hakkında bilgi iletmeyi isteğe bağlı olarak seçebilirsiniz.

Benzer şekilde, analytics_storage parametresi denied olarak ayarlanırsa URL geçişi, çerezler olmadan sayfalar arasında etkinliğe ve oturuma dayalı analizleri (önemli etkinlikler dahil) göndermek için kullanılabilir.

URL geçişini kullanmak için aşağıdaki koşulların karşılanması gerekir:

  • Google etiketiniz veya hedef etiketiniz izne duyarlıdır ve sayfada mevcuttur.
  • Reklamveren, URL geçişi özelliğini etkinleştirmiş olmalıdır.
  • İzin modu sayfada uygulanmış olmalıdır.
  • Giden bağlantı, geçerli sayfanın alan adıyla aynı alan adına yönlendiriyor.
  • URL'de GCLID veya DCLID bulunması (yalnızca Google Ads ve Floodlight etiketleri)

Etiket Yöneticisi

Etiketinizi oluşturmak için bir şablon kullanıyorsanız bu şablonda URL geçişini ayarlamaya yönelik kontroller olabilir. Kendi başınıza bir şablon etiketi oluşturuyorsanız gtagSet özel şablon API'sini kullanarak URL geçişini ayarlama hakkında daha fazla bilgi için İzin modu şablonu oluşturma başlıklı makaleyi inceleyin.

Alternatif olarak, hedef etiketlerinizde, Google etiketinizde veya Dönüşüm Bağlayıcı etiketinizde ayarlamak için aşağıdaki seçenekleri kullanabilirsiniz.

Hedef etiketler ve Google etiketi için:

  1. Çalışma alanınızda Etiketler menüsünü açın.
  2. Mevcut bir Google etiketini veya hedef etiketini düzenleyin ya da yeni bir etiket oluşturun.
  3. Yapılandırma ayarlarında yeni bir parametre ekleyin:
    • Ad: url_passthrough
    • Değer: true
  4. Etiketi kaydedin ve kapsayıcıyı yayınlayın.

Google etiketi aracılığıyla bağlanan Google Ads ve Floodlight etiketleri için:

Bu özelliği etkinleştirmek için dönüşüm bağlayıcı etiketi oluşturun (veya mevcut bir etiketi kullanın) ve Tüm sayfa URL'lerinde bağlamayı etkinleştir seçeneğinin işaretli olduğundan emin olun. Dönüşüm Bağlayıcı etiketi oluşturma talimatları için temel kurulum bölümüne bakın.

Alternatif olarak, GTM yükleme snippet'inden önce sitenizin her sayfasında url_passthrough parametresini true olarak ayarlayabilirsiniz.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

gtag.js

Bu özelliği etkinleştirmek için url_passthrough parametresini true olarak ayarlayın. Varsayılan snippet'e, config komutlarından önce aşağıdaki komutu ekleyin:

gtag('set', 'url_passthrough', true);

URL geçişi kullanılırken kullanıcılar web sitenizdeki sayfalarda gezinirken bağlantılara birkaç sorgu parametresi eklenebilir:

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

En iyi sonuçlar için şunlardan emin olun:

  1. Sitenizdeki yönlendirmeler, önceki tüm sorgu parametrelerini iletir.
  2. Analiz araçlarınız, sayfa URL'lerindeki bu parametreleri yoksayar.
  3. Bu parametreler sitenizin davranışını etkilemez.

Reklam verilerini çıkartma

ad_storage, denied olduğunda reklamcılık amacıyla yeni çerezler ayarlanmaz. Ayrıca, daha önce google.com ve doubleclick.net'te ayarlanan üçüncü taraf çerezleri, spam ve sahtekarlık amaçları dışında kullanılmaz. Google'a gönderilen veriler, URL parametrelerindeki reklam tıklaması bilgileri de dahil olmak üzere tam sayfa URL'sini içermeye devam eder.

Etiket Yöneticisi

Etiketinizi oluşturmak için bir şablon kullanıyorsanız şablon, reklam verilerini daha fazla karartmaya yönelik kontroller içerebilir. Kendi şablon etiketinizi oluşturuyorsanız reklam verilerini çıkarma hakkında daha fazla bilgi için İzin modu şablonu oluşturma başlıklı makaleyi inceleyin.

gtag.js

ad_storage, denied olduğunda reklam verilerinizi daha fazla çıkarmak için ads_data_redaction değerini true olarak ayarlayın.

gtag('set', 'ads_data_redaction', true);

ads_data_redaction true ve ad_storage denied olduğunda, Google Ads ve Floodlight etiketleri tarafından ağ isteklerinde gönderilen reklam tıklaması tanımlayıcıları çıkarılır. Ağ istekleri, pagead2.googlesyndication.com gibi üçüncü taraf çerezleri içermeyen bir alan üzerinden de gönderilir.

Genel sorunlar

Uygulama sırasında karşılaşılan aşağıdaki yaygın sorunları inceleyin.

Gelişmiş izin modunu uyguladığınızda, kullanıcının izin verdiği sayfada bir güncelleme komutu çağırmanız gerekir.

Bir sayfa izin reddedilmiş olarak yüklendikten sonra izin değişikliği nedeniyle izin verilmiş olarak yeniden yüklendiğinde Google etiketleri, orijinal sayfadaki önemli veri noktalarını kaybedebilir. Sonraki raporlar eksik olabilir.

Örneğin, Google Analytics'te izin verilen birçok oturumda session_start etkinliği eksik olabilir.

Bu sorunu önlemek için kullanıcının izin durumu her değiştiğinde güncelleme komutunu çağırın.

Bazı durumlarda, bir izin türü "reddedildi"den "izin verildi"ye güncellendiğinde Google etiketleri bu güncellemeye göre ölçüm gönderebilir. Güncelleme komutu sayfa kaldırılırken çağrılırsa tarayıcı, bu ağ trafiğini tamamlanmadan önce iptal edebilir. Sonraki raporlar eksik olabilir.

Mümkünse güncelleme komutlarının sayfanın yüklemesi kaldırılmadan çok önce günlüğe kaydedildiğinden emin olun.

Sonraki adımlar

Eski etiket kontrolleri

ga.js, analytics.js veya conversion.js gibi eski etiketleri kullanıyorsanız bunları gtag.js veya Google Etiket Yöneticisi'ne güncelleyin.

Diğer eski etiketlerin gizlilik denetimleri hakkında daha fazla bilgi edinmek için aşağıdaki belgelere bakın: