Özel şablon izinleri

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