Bu dokümanda, web özel şablonlarının izinleri ana hatlarıyla açıklanmaktadır.
Her izin:
- Bunları gerektiren API'ler tarafından kontrol edilir.
- Kullanılan API'lere 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ı bir geri bildirim döngüsü için) ve kod derlenirken (doğru izinlerin uygulandığını doğrulamak için) ortaya çıkar.
- İzni daha spesifik hale getirmek için özel şablon düzenleyicisinde düzenlenebilir.
queryPermission
API aracılığıyla korumalı alandaki JavaScript'de sorgulanabilir.
access_globals
Görünüm adı: Genel değişkenlere erişim sağlar
Açıklama: Genel bir değişkene (hassas API'ler de dahil olabilir) erişim sağlar.
Yapılandırma: Erişilebilecek anahtarların listesi. Her anahtar, noktayla ayrılmış bir yoldur. Örneğin: foo.bar
Her yoldaki ilk jeton, tarayıcı genel kapsamında önceden tanımlanmış bir anahtar veya JavaScript anahtar kelimesi olmamalıdır. Erişimi yöneten okuma, yazma ve yürütme onay kutuları vardır.
Şunlar tarafından zorunlu kılınmıştır: setInWindow
, copyFromWindow
, callInWindow
,
createQueue
, createArgumentsQueue
Sorgu imzası: queryPermission('access_globals', 'read', <key to read
from>)
veya queryPermission('access_globals', 'write', <key to write to>)
veya
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 yazmayacağı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şilebilecek 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.
Zorunlu olduğu platformlar: localStorage
Sorgu imzası: queryPermission('access_local_storage', 'read', <key to
read from>)
veya queryPermission('access_local_storage', 'write', <key to write
to>)
veya 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ı olabilecek şablonlar için geçici depolama alanına erişim sağlar.
Yapılandırma: Yok
Zorunlu olduğu platformlar: 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 çerez adlarının listesi.
Zorunlu olduğu platformlar: getCookieValues
Sorgu imzası: queryPermission('get_cookies', <name>)
Notlar: Bir ç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önlendiricinin daraltılmış bölümlerine okuma erişimi sağlar.
Yapılandırma: Yönlendiricinin hangi bölümünün okunabileceğini aşağıdaki doğru/yanlış değerler belirler. Yönlendiricinin belirli bir bölümü yalnızca ilgili bölüm true
ise okunabilir. Bu tüm doğru/yanlış değerler true
olarak ayarlanırsa, arayanın tam yönlendiren URL'sini almak için bileşen belirtilmeden getReferrerUrl
'ü çağırması mümkündür. Herhangi bir değer ayarlanmazsa varsayılan değer all
olur. Ayarlanan değer, bir bileşenin protocol
, host
, port
, path
, query
veya extension
değerlerinden biri olduğu bir bileşen dizisi olmalıdır.
queryKeys
:
Sorgu seçilirse şablon yazarı, okuyabileceği sorgu anahtarlarını daha da sınırlayabilir. Bu, joker karakter içermeyen basit bir anahtar dizisidir.
Şu platformlar tarafından zorunludur: 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'yi okur
Açıklama: Geçerli sayfanın URL'sinin bir kısmını veya tamamını döndürür.
Yapılandırma: Aşağıdaki doğru/yanlış değerler, URL'nin hangi kısmının okunabileceğini belirler. URL'nin belirli bir bölümü yalnızca ilgili bölüm doğruysa okunabilir. Yalnızca bu tüm doğru/yanlış değerleri true
olarak ayarlanmışsa arayan, URL'nin tamamını almak için bileşen belirtilmeden getUrl
'i çağırabilir. Bir değer ayarlanmazsa varsayılan değer all
olur. Ayarlanan değer, bir bileşenin aşağıdakilerden biri olduğu bir bileşen dizisi olmalıdır: protocol
, host
, port
, path
, query
, extension
veya fragment
.
queryKeys
:
Sorgu seçilirse şablon yazarı, okuyabileceği sorgu anahtarlarını daha da sınırlayabilir. Bu, joker karakter içermeyen basit bir anahtar dizisidir.
Zorunlu olduğu platformlar: getUrl
Sorgu imzası: queryPermission('get_url', <optional url component>,
<optional query key>)
Gönderilirse URL bileşeni 'protocol'
, 'host'
, 'port'
, 'path'
, 'query'
, 'extension'
, 'fragment'
arasından biri olmalıdır. Atlanırsa izin sorgusu, URL'nin tamamına erişim isteği olur.
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 okuyup okuyamayacağını kontrol eder. Konumun belirli bir kısmıyla 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
Zorunlu olduğu platformlar: injectHiddenIframe
Sorgu imzası: queryPermission('inject_hidden_iframe', <url>)
Notlar: Özel bir şablonun görünmez bir iFrame ekleyip ekleyebileceğini ve bunu hangi kaynaktan yapabileceğini belirler.
Ö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
Zorunlu olduğu platformlar: injectScript
Sorgu imzası: queryPermission('inject_script', <url>)
Notlar: Özel bir şablonun JavaScript ekleyip ekleyebileceğini ve bunu hangi kaynaktan yapabileceğini belirler.
Ö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 Konsolu'nda 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ını etkinleştirir. İzin reddedilirse logToConsole
hata vermez ancak günlük mesajını bastırır.
Zorunlu olduğu platformlar: logToConsole
Sorgu imzası: queryPermission('logging')
Notlar: Özel şablonun geliştirici konsoluna günlük kaydını yapıp yapamayacağını 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şleme ifadesi grubu. Anahtar eşleme, sonuna joker karakter eklenmiş noktalı referanslar dizisi olabilir. Anahtar eşleme ifadeleri, veri katmanından hangi özelliklerin okunabileceğini belirler.
Zorunlu olduğu platformlar: copyFromDataLayer
Sorgu imzası: queryPermission('read_data_layer', <data layer key to read
from>)
Notlar: Özel bir şablonun veri katmanından veri okuyup okuyamayacağı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_character_set
Görünen ad: Belge karakter kümesini okur
Açıklama: document.characterSet
değerini okur.
Yapılandırma: Yok
Zorunlu olduğu platformlar: readCharacterSet
Sorgu imzası: queryPermission('read_character_set')
Notlar: Özel bir şablonun document.characterSet
değerini 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
Zorunlu olduğu platformlar: 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ğırma işlevlerindeki etkinlik meta verilerini okur
Yapılandırma: Yok
Zorunlu olduğu platformlar: addEventCallback
Sorgu imzası: queryPermission('read_event_metadata')
Notlar: Özel ş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
değerini okur.
Yapılandırma: Yok
Zorunlu olduğu platformlar: readTitle
Sorgu imzası: queryPermission('read_title')
Notlar: Özel şablonun document.title
değerini 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: Belirli bir URL'ye GET isteği gönderir. Yanıt işlenmiyor.
Yapılandırma: İzin verilen URL kalıplarının listesi.
Zorunlu olduğu platformlar: 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 ayarlama
Açıklama: Belirtilen ad ve parametrelere sahip bir çerez oluşturur.
Yapılandırma: Her biri ad, alan, yol, secure
özelliği ve geçerlilik süresiyle ilgili isteğe bağlı kısıtlamalar içeren izin verilen çerez adlarının yer aldığı bir tablo.
Zorunlu olduğu platformlar: setCookie
Sorgu imzası: queryPermission('set_cookies', <name>, <options>)
Notlar: Çerezin adı, alanı, yolu, secure
özelliği ve geçerlilik süresine bağlı olarak bir çerezin 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'e veri yazar.
Yapılandırma: Anahtar eşlemenin, sonuna joker karakter eklenmiş noktalı referanslardan oluşan bir başlangıç dizisi olabileceği anahtar eşleme ifadesi grubu. Anahtar eşleme ifadeleri, hangi mülklerin veri katmanına yazabileceğini belirler.
Zorunlu olduğu platformlar: gtagSet
Sorgu imzası: queryPermission('write_data_layer', <data layer key to
write from>)
Notlar: Özel bir şablonun veri katmanına yazıp yazamayacağına karar verir.
Örnek kod
const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
gtagSet({dlKey: 'baz'});
}