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.
İzin için neden etiket şablonu kullanmalısınız?
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.
İzin durumu ve izin türleri
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 |
Yeni izin şablonu oluştur
İ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.
İzin şablonu oluşturmak için:
- Google Etiket Yöneticisi hesabınıza giriş yapın.
- Soldaki gezinme panelinde Şablonlar'ı seçin.
- Etiket Şablonları bölmesinde Yeni'yi tıklayın.
Varsayılan izin durumlarını ayarlamak için:
- Alanlar sekmesini seçin ve Alan Ekle > Parametre tablosu.
- Adı
defaultSettings
olarak değiştirin. - Alanı genişletin.
- Görünen ad'ı
Default settings
olarak güncelleyin. - 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. - 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. - Sütun ekle'yi tıklayın, Metin girişi'ni seçin ve adı
granted
olarak değiştirin. - Sütunu genişletin ve görünen adı
Granted Consent Types (comma separated)
olarak değiştirin. - Sütun ekle'yi tıklayın, Metin girişi'ni seçin ve adı
denied
olarak değiştirin. - 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:
- Alan Ekle'yi tıklayın, Onay kutusu'nu seçin ve alan adını
ads_data_redaction
. - 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:
- Alan Ekle'yi tıklayın, Onay kutusu'nu seçin ve alan adını
url_passthrough
. - Görünen adı
Pass through URL parameters
olarak güncelleyin
Uygulama kodunu eklemek için:
- Şablon düzenleyicide Kod sekmesini açın.
- Aşağıdaki kod örneğinde yer tutucu alanları düzenleyin.
- Kodu kopyalayın ve şablon düzenleyicideki standart kodu bununla değiştirin.
- Şablonu kaydedin.
// 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.
İzin durumlarını yönetme izni eklemek için:
- İzinler sekmesini seçin ve İzin durumuna erişir'i tıklayın.
- İzin türü ekle'yi tıklayın.
- Kutuyu tıklayın ve açılır menüden
ad_storage
öğesini seçin. - Yaz'ı işaretleyin.
- Ekle'yi tıklayın.
ad_user_data
,ad_personalization
ve için 2-5. adımları tekrarlayınanalytics_storage
. Daha fazla izin türüne ihtiyacınız varsa bunları aynı şekilde yürütülür.- Kaydet'i tıklayın.
Çerezlere erişim izni eklemek için:
- İzinler sekmesini seçin ve Çerez değerlerini okur'u tıklayın.
- 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.
- 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.
3. Şablonu izin çözümüyle entegre etme
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);
});
};
İzin durumunu güncelleme
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.