Bu belgede, Web için özel şablonların izinleri açıklanmaktadır.
Her izin:
- Gerekli API'ler tarafından kontrol edilir.
- Hangi API'lerin kullanıldığına bağlı olarak, korumalı alandaki JavaScript'te otomatik olarak algılanır. Bu durum, özel şablon düzenleyicide düzenlemeler yapılırken (hızlı geri bildirim döngüsü için) ve kod derlenirken (doğru izinlerin uygulandığını doğrulamak için) meydana gelir.
- İzni daha spesifik hale getirmek için özel şablon düzenleyicide düzenlenebilir.
queryPermission
API aracılığıyla korumalı alan JavaScript'te sorgulanabilir.
access_globals
Görünen ad: Genel değişkenlere erişim sağlar
Açıklama: Genel bir değişkene (hassas API'ler de dahil olabilir) erişime izin verir.
Yapılandırma: Erişilebilen anahtarların listesi. Her anahtar, nokta ile ayrılmış bir yoldur. Örneğin: foo.bar
Her yoldaki ilk jeton, tarayıcı genel kapsamındaki önceden tanımlanmış bir anahtar veya bir JavaScript anahtar kelimesi olmamalıdır. Erişimi yöneten okuma, yazma ve yürütme onay kutuları vardır.
Şu ürünler için gereklidir: setInWindow
, copyFromWindow
, callInWindow
,
createQueue
, createArgumentsQueue
Sorgu imzası: queryPermission('access_globals', 'read', <key to read
from>)
veya queryPermission('access_globals', 'write', <key to write to>)
ya da
queryPermission('access_globals', 'readwrite', <key to read and write>)
veya
queryPermission('access_globals', 'execute', <key of function to execute>)
Notlar: Özel bir şablonun genel değerleri okuyup okuyamayacağını ve/veya bu değerlere yazıp yazamayacağını kontrol eder.
Örnek kod
const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
const dataLayerPush = createQueue('dataLayer');
}
access_local_storage
Görünen ad: Yerel depolama alanına erişme
Açıklama: Yerel depolama alanındaki belirtilen anahtarlara erişime izin verir.
Yapılandırma: Erişilebilen yerel depolama alanı anahtarlarının listesi. Bu, joker karakter içermeyen basit bir anahtar dizisidir. Erişimi yöneten okuma ve yazma onay kutuları vardır.
Gerektiren: localStorage
Sorgu imzası: queryPermission('access_local_storage', 'read', <key to
read from>)
veya queryPermission('access_local_storage', 'write', <key to write
to>)
ya da queryPermission('access_local_storage', 'readwrite', <key to read and
write>)
Örnek kod
const queryPermission = require('queryPermission');
const localStorage = require('localStorage');
const key = 'my_key';
if (queryPermission('access_local_storage', 'read', key)) {
const value = localStorage.getItem(key);
}
access_template_storage
Görünen ad: Şablon depolama alanına erişir
Açıklama: Sayfanın kullanım ömrü boyunca kalıcı olabilen şablonlar için geçici depolama alanına erişime izin verir.
Yapılandırma: Yok
Gerektiren: templateStorage
Sorgu imzası: queryPermission('access_template_storage')
Örnek kod
const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
const value = templateStorage.getItem(key);
}
get_cookies
Görünen ad: Çerez değerlerini okur.
Açıklama: Belirtilen ada sahip çerezlerin değerlerini okur.
Yapılandırma: Okunmasına izin verilen çerezlerin adlarının listesi.
Gerektiren: getCookieValues
Sorgu imzası: queryPermission('get_cookies', <name>)
Notlar: Çerezin adına bağlı olarak okunup okunamayacağını belirler.
Örnek kod
const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
cookieValues = getCookieValues(cookieName);
}
get_referrer
Görünen ad: Yönlendiren URL'sini okur
Açıklama: Yönlendirenin daraltılmış bölümlerine okuma erişimine izin verir.
Yapılandırma: Aşağıdaki boole değerleri, yönlendirenin hangi bölümünün okunabileceğini belirler. Yönlendirenin belirli bir bölümü yalnızca ilgili bölüm true
ise okunabilir. Arayan, tüm bu boole değerleri true
olarak ayarlanmışsa tam yönlendiren URL'yi almak için bileşen belirtmeden getReferrerUrl
işlevini çağırabilir. Herhangi bir değer ayarlanmazsa varsayılan değer all
olur. Bir değer ayarlanırsa değer, bileşen dizisi olmalıdır. Bileşenler şunlardan biri olabilir: protocol
, host
, port
, path
, query
veya extension
.
queryKeys
:
Sorgu seçilirse şablon yazarı, okuyabileceği sorgu anahtarlarının kümesini daha da sınırlayabilir. Bu, joker karakter içermeyen basit bir anahtar dizisidir.
Şu kişiler tarafından gereklidir: getReferrerUrl
, getReferrerQueryParameters
Sorgu imzası: queryPermission('get_referrer', <url_component>)
Örnek kod
const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
referrer = getReferrerUrl('queryParams');
}
get_url
Görünen ad: URL Okur
Açıklama: Geçerli sayfanın tüm URL'lerini veya bir kısmını döndürür.
Yapılandırma: Aşağıdaki boole değerleri, URL'nin hangi bölümünün okunabileceğini belirler. URL'nin belirli bir bölümü yalnızca ilgili bölüm doğruysa okunabilir. Arayan, yalnızca tüm bu boole değerleri true
olarak ayarlanmışsa bileşen belirtmeden getUrl
'yı arayarak URL'nin tamamını alabilir. Herhangi bir değer ayarlanmazsa varsayılan değer all
olur. Bir değer ayarlanırsa değer, bileşenlerden oluşan bir dizi olmalıdır. Bileşenler şunlardan biri olabilir: protocol
, host
, port
, path
, query
, extension
veya fragment
.
queryKeys
:
Sorgu seçilirse şablon yazarı, okuyabileceği sorgu anahtarlarının kümesini daha da sınırlayabilir. Bu, joker karakter içermeyen basit bir anahtar dizisidir.
Gerektiren: getUrl
Sorgu imzası: queryPermission('get_url', <optional url component>,
<optional query key>)
Sağlanırsa URL bileşeni 'protocol'
, 'host'
, 'port'
, 'path'
, 'query'
, 'extension'
veya 'fragment'
olmalıdır. Atlanırsa izin sorgusu, URL'nin tamamına erişim isteğidir.
Sağlanırsa sorgu anahtarı, şablon kodunun okumak istediği sorgu dizesi bağımsız değişkeni olmalıdır.
Notlar: Özel bir şablonun geçerli konumdan okuma yapıp yapamayacağını kontrol eder. Konumun belirli bir bölümüyle sınırlamaya olanak tanır.
Örnek kod
const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
const gclid = getUrl('query', false, null, 'gclid');
}
inject_hidden_iframe
Görünen ad: Gizli iframe'ler ekler
Açıklama: Belirli bir URL'ye sahip görünmez iframe ekler.
Yapılandırma: URL kalıpları listesi
Gerektiren: injectHiddenIframe
Sorgu imzası: queryPermission('inject_hidden_iframe', <url>)
Notlar: Özel bir şablonun görünmez bir iFrame ekleyip ekleyemeyeceğini ve bunu hangi kaynaktan yapabileceğini yönetir.
Örnek kod
const queryPermission = require('queryPermission');
const injectHiddenIframe = require('injectHiddenIframe');
const url = 'https://www.example.com/iframes';
if (queryPermission('inject_hidden_iframe', url)) {
injectHiddenIframe(url);
}
inject_script
Görünen ad: Komut dosyası yerleştirir
Açıklama: Sayfaya bir komut dosyası ekler.
Yapılandırma: URL kalıpları listesi
Gerektiren: injectScript
Sorgu imzası: queryPermission('inject_script', <url>)
Notlar: Özel bir şablonun JavaScript ekleyip ekleyemeyeceğini ve bunu hangi kaynaktan yapabileceğini yönetir.
Örnek kod
const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
injectScript(url);
}
logging
Görünen ad: Konsola günlük kaydı ekler
Açıklama: Geliştirici konsolunda ve GTM'nin önizleme modunda günlük kaydı oluşturur.
Yapılandırma: Üretimde günlük kaydını etkinleştirme seçeneği. Varsayılan olarak yalnızca hata ayıklama/önizleme sırasında günlük kaydı oluşturulur. İzin reddedilirse logToConsole
hata vermez ancak günlük mesajını bastırır.
Gerektiren: logToConsole
Sorgu imzası: queryPermission('logging')
Notlar: Özel bir şablonun geliştirici konsoluna kaydedilip kaydedilemeyeceğini kontrol eder.
Örnek kod
const queryPermission = require('queryPermission');
const logToConsole = require('logToConsole');
// Note that it's fine to call log, since the log call will be ignored if
// logging isn't permitted in the current environment.
logToConsole('diagnostic info');
read_data_layer
Görünen ad: Veri katmanını okur.
Açıklama: dataLayer'daki verileri okur.
Yapılandırma: Anahtar eşlemenin, sonunda joker karakter bulunan, noktalı referanslardan oluşan bir dizi olabileceği anahtar eşleme ifadeleri grubu. Anahtar eşleşme ifadeleri, veri katmanından hangi özelliklerin okunabileceğini belirler.
Gerektiren: copyFromDataLayer
Sorgu imzası: queryPermission('read_data_layer', <data layer key to read
from>)
Notlar: Özel bir şablonun veri katmanından okuma yapıp yapamayacağını kontrol eder.
Örnek kod
const queryPermission = require('queryPermission');
const copyFromDataLayer = require('copyFromDataLayer');
const dlKey = 'foo.bar';
if (queryPermission('read_data_layer', dlKey)) {
const dlContents = copyFromDataLayer(dlKey);
}
read_analytics_storage
Görünen ad: Analytics depolamasını okur.
Açıklama: Bu, şablonların depolanmış analiz verilerini (ör. istemci kimlikleri) okumasına olanak tanır.
Yapılandırma: Yok
Gerektiren: readAnalyticsStorage
Sorgu imzası: queryPermission('read_analytics_storage')
Notlar: Özel bir şablonun analiz depolamasından okuma yapıp yapamayacağını belirler.
Örnek kod
const queryPermission = require('queryPermission');
const readAnalyticsStorage = require('readAnalyticsStorage');
if (queryPermission('read_analytics_storage')) {
const value = readAnalyticsStorage();
}
read_character_set
Görünen ad: Belge karakter kümesini okur
Açıklama: document.characterSet
okunuyor.
Yapılandırma: Yok
Gerektiren: readCharacterSet
Sorgu imzası: queryPermission('read_character_set')
Notlar: Özel bir şablonun document.characterSet
okuyup okuyamayacağını belirler.
Örnek kod
const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
const characterSet = readCharacterSet();
}
read_container_data
Görünen ad: Kapsayıcı verilerini okur.
Açıklama: Kapsayıcıyla ilgili verileri okur.
Yapılandırma: Yok
Gerektiren: getContainerVersion
Sorgu imzası: queryPermission('read_container_data')
Notlar: Özel bir şablonun kapsayıcıyla ilgili verileri okuyup okuyamayacağını kontrol eder.
Örnek kod
const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
version = getContainerVersion();
}
read_event_metadata
Görünen ad: Etkinlik meta verilerini okur
Açıklama: Etkinlik geri çağırmalarındaki etkinlik meta verilerini okur.
Yapılandırma: Yok
Gerektiren: addEventCallback
Sorgu imzası: queryPermission('read_event_metadata')
Notlar: Özel bir şablonun geri çağırmalarda etkinlik meta verilerini okuyup okuyamayacağını kontrol eder.
Örnek kod
const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
addEventCallback((containerId, eventMetadata) => {
// Read event metadata.
});
}
read_title
Görünen ad: Belge başlığını okur.
Açıklama: document.title
okunuyor.
Yapılandırma: Yok
Gerektiren: readTitle
Sorgu imzası: queryPermission('read_title')
Notlar: Özel bir şablonun document.title
okuyup okuyamayacağını belirler.
Örnek kod
const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
const title = readTitle();
}
send_pixel
Görünen ad: Piksel gönderir
Açıklama: Belirtilen bir URL'ye GET isteği gönderir. Yanıt işlenmiyor.
Yapılandırma: İzin verilen URL kalıplarının listesi.
Gerektiren: sendPixel
Sorgu imzası: queryPermission('send_pixel', <url>)
Notlar: Özel bir şablonun GET isteği gönderip gönderemeyeceğini ve hangi kaynağa gönderebileceğini belirler.
Örnek kod
const queryPermission = require('queryPermission');
const sendPixel = require('sendPixel');
const url = 'https://www.example.com?foo=3';
if (queryPermission('send_pixel', url)) {
sendPixel(url);
}
set_cookies
Görünen ad: Çerez ayarlar.
Açıklama: Belirtilen ad ve parametreye sahip bir çerez oluşturur.
Yapılandırma: İzin verilen çerez adlarının yer aldığı bir tablo. Her çerez adı için ad, alan, yol, secure
özelliği ve geçerlilik süresiyle ilgili isteğe bağlı kısıtlamalar vardır.
Gerektiren: setCookie
Sorgu imzası: queryPermission('set_cookies', <name>, <options>)
Notlar: Çerez adına, alana, yola, secure
özelliğine ve geçerlilik bitimine bağlı olarak çerez yazılıp yazılamayacağını belirler.
Örnek kod
const queryPermission = require('queryPermission');
const setCookie = require('setCookie');
const options = {
'domain': 'www.example.com',
'path': '/',
'max-age': 60*60*24*365,
'secure': true
};
if (queryPermission('set_cookies', 'info', options)) {
setCookie('info', 'xyz', options);
}
write_data_layer
Görünen ad: Veri katmanına veri yazar.
Açıklama: dataLayer üzerine veri yazar.
Yapılandırma: Anahtar eşlemenin, sonunda joker karakter bulunan, noktalı referanslardan oluşan bir dizi olabileceği anahtar eşleme ifadeleri grubu. Anahtar eşleşme ifadeleri, hangi özelliklerin veri katmanına yazabileceğini belirler.
Gerektiren: gtagSet
Sorgu imzası: queryPermission('write_data_layer', <data layer key to
write from>)
Notlar: Özel bir şablonun veri katmanına yazıp yazamayacağını kontrol eder.
Örnek kod
const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
gtagSet({dlKey: 'baz'});
}