İzin modu şablonu oluşturma

Bu makale, şu konularda kullanıcı rızası yönetim çözümü sunan geliştiricilere yöneliktir: Google Etiket Yöneticisi'ni (GTM) kullanan web siteleri.

Bu sayfada, Google Etiket Yöneticisi'ndeki izin türleri tanıtılmakta ve bunları kullanıcı rızası yönetim çözümünüzle entegre edin.

Bir etiket şablonu sağladığınızda, kullanıcılarınız izninizi entegre edebilir kodsuz bir şekilde sunarak zamandan ve emekten tasarruf etmenizi sağlar.

Kullanıcılar, izin modu şablonu kullanarak varsayılan izin durumlarını ayarlayabilir ve ziyaretçilerin izin seçeneklerini Google Etiket Yöneticisi'ne iletir. Böylece, kullanıcılar izni destekleyen Google ve üçüncü taraf etiketlerinin işleyiş şekli yatırım yapmanız önemlidir.

Şablon oluşturucu olarak, şirket içi kullanım için izin modu şablonlarını uygulayabilirsiniz veya Topluluk Şablon Galerisi'nde yayınlayarak herkese açık olarak yayınlanır. Kullanıcı Rızası Yönetim Platformu (CMP) sağlayıcıları izin modu şablonlarının, izin modumuzda listelenebilir. dokümanlarına göz atın ve Şablon Galerisi seçicisinde şablonların öne çıkmasını sağlayın.

ziyaret edin.

Google ve üçüncü taraf etiketleri, depolama davranışlarını izne göre ayarlar durumu granted veya denied olur. Yerleşik izin kontrolleri olabilir aşağıdaki izin türlerinden herhangi biri için:

İzin Türü Açıklama
ad_storage Reklamcılıkla ilgili çerezler gibi bilgilerin depolanmasını etkinleştirir.
ad_user_data Kullanıcı verilerinin internet reklamcılığı amacıyla Google'a gönderilmesine yönelik izinleri belirler.
ad_personalization Kişiselleştirilmiş reklamcılığa yönelik izni belirler.
analytics_storage Analizle ilgili olarak çerezler gibi bilgilerin depolanmasını etkinleştirir (örneğin, süre) ekleyebilirsiniz.
functionality_storage Web sitesinin veya uygulamanın işlevlerini destekleyen bilgilerin depolanmasını etkinleştirir. ayarları değiştirebilirsiniz.
personalization_storage Video gibi kişiselleştirmeyle ilgili bilgilerin depolanmasını etkinleştirir. öneriler.
security_storage Kimlik doğrulama gibi güvenlikle ilgili bilgilerin depolanmasını etkinleştirir. işlevsellik, sahtekarlığı önleme ve diğer kullanıcı koruma işlevleri

İzin modu, ziyaretçi izin seçeneklerini ve etiket izin kontrollerini takip eder Etiket davranışının buna göre ayarlanmasını sağlayın. Yeni bir izin oluştururken şablonu kullanıyorsanız en iyi uygulamaları izleyin:

  • setDefaultConsentState ve Etiket Yöneticisi izin modu API'lerini gtag consent yerine updateConsentState.

  • Etkinleştirildikten hemen sonra İzin Başlatma - Tüm Sayfalar tetikleyicisi.

  • CMP, ziyaretçiden en kısa sürede izin vermesini veya izin vermeyi istemelidir. (geçerli tüm izin türleri için)

  • Ziyaretçi izin seçimini belirttiğinde CMP'nin güncellenen ayarı iletmesi gerekir. izin durumu.

1. Yeni şablon oluştur

Bu uygulama yaklaşımı, varsayılan izin durumunu yönetebilirsiniz. Uygulama kodu, çalışma zamanında istenen izin durumuna Güncelleme komutu için kodunuz, ziyaretçi izin seçeneklerini depolamak için izin çözümü tarafından ayarlanan bir çerezi okuma. Destek kaydıyla ilgilenmek üzere updateConsentState için bir geri arama da ayarlayacaksınız ziyaretçilerin henüz izin seçimlerini yapmadığı veya izin izin vermelidir.

  1. Google Etiket Yöneticisi hesabınıza giriş yapın.
  2. Soldaki gezinme panelinde Şablonlar'ı seçin.
  3. Etiket Şablonları bölmesinde Yeni'yi tıklayın.
  1. Alanlar sekmesini seçin ve Alan Ekle > Parametre tablosu.
  2. Adı defaultSettings olarak değiştirin.
  3. Alanı genişletin.
  4. Görünen adDefault settings olarak güncelleyin.
  5. Sütun ekle'yi tıklayın, Metin girişi'ni seçin, adı region olarak değiştirin ve Sütun değerlerinin benzersiz olmasını zorunlu kıl kutusunu işaretleyin.
  6. Sütunu genişletin ve görünen adı Region (leave blank to have consent apply to all regions) olarak değiştirin. Parantez içindeki ifade dokümanlarına göz atabilirsiniz. Daha fazla bilgi: Farklı bölgeler için izin varsayılanları ayarlayın.
  7. Sütun ekle'yi tıklayın, Metin girişi'ni seçin ve adı granted olarak değiştirin.
  8. Sütunu genişletin ve görünen adı Granted Consent Types (comma separated) olarak değiştirin.
  9. Sütun ekle'yi tıklayın, Metin girişi'ni seçin ve adı denied olarak değiştirin.
  10. Sütunu genişletin ve görünen adı Denied Consent Types (comma separated) olarak değiştirin

İsteğe bağlı: Reklam verilerini azaltma desteği eklemek için:

  1. Alan Ekle'yi tıklayın, Onay kutusu'nu seçin ve alan adını ads_data_redaction.
  2. Görünen adı Redact Ads Data olarak güncelleyin

Reklam verilerini azaltma özelliğiyle çerez davranışı hakkında daha fazla bilgi

İsteğe bağlı: URL parametrelerini iletme desteği eklemek için:

  1. Alan Ekle'yi tıklayın, Onay kutusu'nu seçin ve alan adını url_passthrough.
  2. Görünen adı Pass through URL parameters olarak güncelleyin

URL parametrelerini iletme hakkında daha fazla bilgi

Uygulama kodunu eklemek için:

  1. Şablon düzenleyicide Kod sekmesini açın.
  2. Aşağıdaki kod örneğinde yer tutucu alanları düzenleyin.
  3. Kodu kopyalayın ve şablon düzenleyicideki standart kodu bununla değiştirin.
  4. Şablonu kaydedin.
ziyaret edin.
// The first two lines are optional, use if you want to enable logging
const log = require('logToConsole');
log('data =', data);
const setDefaultConsentState = require('setDefaultConsentState');
const updateConsentState = require('updateConsentState');
const getCookieValues = require('getCookieValues');
const callInWindow = require('callInWindow');
const gtagSet = require('gtagSet');
const COOKIE_NAME = 'Your_cookie_name';
/*
 *   Splits the input string using comma as a delimiter, returning an array of
 *   strings
 */
const splitInput = (input) => {
  return input.split(',')
      .map(entry => entry.trim())
      .filter(entry => entry.length !== 0);
};
/*
 *   Processes a row of input from the default settings table, returning an object
 *   which can be passed as an argument to setDefaultConsentState
 */
const parseCommandData = (settings) => {
  const regions = splitInput(settings['region']);
  const granted = splitInput(settings['granted']);
  const denied = splitInput(settings['denied']);
  const commandData = {};
  if (regions.length > 0) {
    commandData.region = regions;
  }
  granted.forEach(entry => {
    commandData[entry] = 'granted';
  });
  denied.forEach(entry => {
    commandData[entry] = 'denied';
  });
  return commandData;
};
/*
 *   Called when consent changes. Assumes that consent object contains keys which
 *   directly correspond to Google consent types.
 */
const onUserConsent = (consent) => {
  const consentModeStates = {
    ad_storage: consent['adConsentGranted'] ? 'granted' : 'denied',
    ad_user_data: consent['adUserDataConsentGranted'] ? 'granted' : 'denied',
    ad_personalization: consent['adPersonalizationConsentGranted'] ? 'granted' : 'denied',
    analytics_storage: consent['analyticsConsentGranted'] ? 'granted' : 'denied',
    functionality_storage: consent['functionalityConsentGranted'] ? 'granted' : 'denied',
    personalization_storage: consent['personalizationConsentGranted'] ? 'granted' : 'denied',
    security_storage: consent['securityConsentGranted'] ? 'granted' : 'denied',
  };
  updateConsentState(consentModeStates);
};
/*
 *   Executes the default command, sets the developer ID, and sets up the consent
 *   update callback
 */
const main = (data) => {
  /*
   * Optional settings using gtagSet
   */
  gtagSet('ads_data_redaction', data.ads_data_redaction);
  gtagSet('url_passthrough', data.url_passthrough);
  gtagSet('developer_id.your_developer_id', true);
  // Set default consent state(s)
  data.defaultSettings.forEach(settings => {
    const defaultData = parseCommandData(settings);
  // wait_for_update (ms) allows for time to receive visitor choices from the CMP
    defaultData.wait_for_update = 500;
    setDefaultConsentState(defaultData);
  });

  // Check if cookie is set and has values that correspond to Google consent
  // types. If it does, run onUserConsent().
  const settings = getCookieValues(COOKIE_NAME);
  if (typeof settings !== 'undefined') {
    onUserConsent(settings);
  }
  /**
   *   Add event listener to trigger update when consent changes
   *
   *   References an external method on the window object which accepts a
   *   function as an argument. If you do not have such a method, you will need
   *   to create one before continuing. This method should add the function
   *   that is passed as an argument as a callback for an event emitted when
   *   the user updates their consent. The callback should be called with an
   *   object containing fields that correspond to the five built-in Google
   *   consent types.
   */
  callInWindow('addConsentListenerExample', onUserConsent);
};
main(data);
data.gtmOnSuccess();

Ardından, izin durumuna erişim ve erişim izinlerini yapılandırın. çerezler.

  1. İzinler sekmesini seçin ve İzin durumuna erişir'i tıklayın.
  2. İzin türü ekle'yi tıklayın.
  3. Kutuyu tıklayın ve açılır menüden ad_storage öğesini seçin.
  4. Yaz'ı işaretleyin.
  5. Ekle'yi tıklayın.
  6. ad_user_data, ad_personalization ve için 2-5. adımları tekrarlayın analytics_storage. Daha fazla izin türüne ihtiyacınız varsa bunları aynı şekilde yürütülür.
  7. Kaydet'i tıklayın.

Çerezlere erişim izni eklemek için:

  1. İzinler sekmesini seçin ve Çerez değerlerini okur'u tıklayın.
  2. Specific (Spesifik) bölümünde, kodunuz için gereken çerezlerin her birinin adını girin. kullanıcının izin tercihlerini belirlemek üzere her satırda bir ad olacak şekilde okunmalıdır.
  3. Kaydet'i tıklayın.

2. Birim testleri oluşturma

Şablonunuz için test oluşturma hakkında bilgi edinmek üzere Testler'e bakın.

Aşağıdaki kod, bu şablonun nasıl entegre edilebileceğine dair bir örnek gösterir aşağıdaki kodu kullanarak izin yönetim çözümünüzün kodunu kullanabilirsiniz:

// Array of callbacks to be executed when consent changes
const consentListeners = [];

/**
 *   Called from GTM template to set callback to be executed when user consent is provided.
 *   @param {function} Callback to execute on user consent
 */
window.addConsentListenerExample = (callback) => {
  consentListeners.push(callback);
};

/**
 *   Called when user grants/denies consent.
 *   @param {Object} Object containing user consent settings.
 */
const onConsentChange = (consent) => {
  consentListeners.forEach((callback) => {
    callback(consent);
  });
};

Bir web sitesi ziyaretçisi izin seçeneklerini gösterdikten sonra, genellikle bir izin banner'ı ile etkileşimde bulunursa şablon kodunun izni güncellemesi gerekir updateConsentState API'ye uygun şekilde belirtilmesi gerekir.

Aşağıdaki örnekte, şu özelliklere sahip bir ziyaretçi için updateConsentState çağrısı gösterilmektedir: tüm depolama türlerine izin verdiğini belirtti. Aynı şekilde, bu örnekte de değerleri, granted için değerleri, ancak pratikte, bunlar çalışma zamanında CMP tarafından toplanan ziyaretçinin izni kullanılır.

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'ad_user_data': 'granted',
  'ad_personalization': 'granted',
  'analytics_storage': 'granted',
  'functionality_storage': 'granted',
  'personalization_storage': 'granted',
  'security_storage': 'granted'
});

Bölgeye özgü davranış hakkında

Belirli bölgelerden ziyaretçiler için geçerli olan varsayılan izin durumlarını ayarlamak için bir bölge belirtin (ISO'ya göre) 3166-2) gösterilir. tıklayın. Bölge değerlerinin kullanılması, şablon kullanıcılarının bölgesel kurallarından bağımsız olarak, bu bölgelerin dışındaki ziyaretçilerden gelen bilgileri kaybetmeden. Zaman setDefaultConsentState komutunda bölge belirtilmemişse tüm diğer bölgeler için geçerlidir.

Örneğin, aşağıda analytics_storage için varsayılan durum şu şekilde ayarlanır: İspanya ve Alaska'dan gelen ziyaretçiler için denied ve analytics_storage değerini Diğer tüm ülkeler için granted:

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});
setDefaultConsentState({
  'analytics_storage': 'granted'
});

En belirgin olanı önceliklidir

Bir bölgenin değerleriyle aynı sayfada iki varsayılan izin komutu oluşuyorsa daha belirli bir bölgeye sahip olan alt bölge geçerli olacaktır. Örneğin, Örneğin, ad_storage ayarınız US bölgesi için 'granted' olarak ayarlıysa ve ad_storage, Kaliforniya'dan gelen bir ziyaretçi olan US-CA bölgesi için 'denied' olarak ayarlandı daha spesifik US-CA ayarı geçerli olacak.

Bölge ad_storage Davranış
ABD 'granted' ABD'de bulunan ve Kanada'da olmayan kullanıcılar için geçerlidir
US-CA 'denied' US-CA kullanıcıları için geçerlidir
Belirtilmedi 'granted' Varsayılan 'granted' değerini kullanır. Bu örnekte, ABD veya US-CA'da olmayan kullanıcılar için geçerlidir

Ek meta veriler

Aşağıdaki isteğe bağlı parametreleri ayarlamak için gtagSet API'yi kullanabilirsiniz:

Bu API'ler yalnızca GTM şablonu korumalı alan ortamında kullanılabilir.

URL'lerdeki reklam tıklaması, istemci kimliği ve oturum kimliği bilgilerini iletme

Bir ziyaretçi bir reklamı tıkladıktan sonra reklamverenin web sitesine geldiğinde, Reklamla ilgili bilgiler, açılış sayfası URL'lerine sorgu olarak eklenebilir. parametresinden sonra bir değer girin. Google etiketleri, dönüşüm doğruluğunu iyileştirmek için genellikle bu bilgileri saklar. Reklamverenin alanındaki birinci taraf çerezlerin bilgileri.

Ancak ad_storage değeri denied ise Google etiketleri bu bilgiyi kaydetmez. yerel olarak. Reklamverenler bu durumda reklam tıklaması ölçüm kalitesini iyileştirmek için isteğe bağlı olarak, bir adlı yeni bir özellik kullanıma sunduk.

Benzer şekilde, analytics_storage reddedildi olarak ayarlanırsa URL geçişi kullanılabilir hem etkinlik hem de oturuma dayalı analizleri (dönüşümler dahil) çerezlere yer verir.

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

  • Sayfada izinleri gözeten Google etiketleri olmalıdır.
  • Site, URL geçişi özelliğini kullanmayı tercih etmiş olmalıdır.
  • İzin modu sayfada uygulanır.
  • Giden bağlantı, geçerli sayfanın alan adıyla aynı alan adına işaret eder.
  • URL'de bir gclid/DCLID var (yalnızca Google Ads ve Floodlight etiketleri)

Şablonunuz, şablon kullanıcısının şablon kullanıcının bu ayarı seçip bu ayarı etkinleştirmek istiyor. Aşağıdaki şablon kodu, SSCS'nin url_passthrough yerine true:

gtagSet('url_passthrough', true);

Reklam verilerini çıkartma

ad_storage reddedildiğinde reklamcılık için yeni çerezler ayarlanmaz amaçlar. Ayrıca, daha önce google.com'da oluşturulan üçüncü taraf çerezleri ve doubleclick.net kullanılmaz. Google'a gönderilen veriler şunları içerir: tam sayfa URL'si (URL parametrelerindeki tüm reklam tıklama bilgileri dahil).

ad_storage reddedildiğinde reklam verilerinizi daha fazla çıkartmak için şu değeri ayarlayın: ads_data_redaction - true.

ads_data_redaction doğru olduğunda ve ad_storage reddedildiğinde reklam tıklaması Google Ads ve Floodlight etiketleri tarafından ağ isteklerinde gönderilen tanımlayıcıların çıkartılır.

gtagSet('ads_data_redaction', true);

Geliştirici kimliği

Google tarafından verilen geliştirici kimliğine sahip bir CMP tedarikçisiyseniz aşağıdakileri kullanın: yöntemini kullanabilirsiniz.

Yalnızca uygulamanız Alakasız şirketler veya tüzel kişiler tarafından birden fazla web sitesi. Bu uygulama bir site veya tüzel kişi tarafından kullanılacaksa geliştirici kimliği başvurusu yapın.

gtagSet('developer_id.<your_developer_id>', true);

Kullanıcılarınız için doküman sağlayın

Kullanıcılarınız, izin şablonunuzu kullanarak kullanıcı verilerini toplayan bir etiket oluşturur izin verin. Kullanıcılarınız için aşağıdakileri en iyi açıklayan dokümanlar sağlayın uygulamalar:

  • Ayarlar tablosunda varsayılan izin ayarlarını belirleme
  • Ek bilgiler ekleyerek farklı bölgeler için izin varsayılanlarını ayarlama tablo satırlarını ekleyin.
  • İzin Başlatma - Tüm Sayfalar tetikleyicisinde etiketi tetikleyin.

Sonraki adımlar

Şablonunuzu tüm Etiket Yöneticisi kullanıcılarına sağlamak isterseniz Topluluk Şablon Galerisi.