Özel şablon izinleri

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'});
}