Özel şablon izinleri

Bu dokümanda, Web'de özel şablonlar için izinler özetlenmektedir.


Her izin:

  • Bunları gerektiren API'ler tarafından kontrol edilir.
  • Kullanılan API'lere bağlı olarak, korumalı alana sahip JavaScript'te otomatik olarak algılanır. Bu, özel şablon düzenleyicide (hızlı bir geri bildirim döngüsü için) düzenlemeler yapılırken ve kod derlendiğinde (doğru izinlerin uygulandığını doğrulamak için) gerçekleşir.
  • İznin daha spesifik olması için özel şablon düzenleyicide düzenlenebilir.
  • queryPermission API'si aracılığıyla korumalı alana alınmış JavaScript'te sorgulanabilir.

access_globals

Görünen ad: Genel değişkenlere erişir

Açıklama: Genel değişkene (hassas API'ler de dahil olabilir) erişim izni verir.

Yapılandırma: Erişilebilen 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 bir JavaScript anahtar kelimesi olmamalıdır. Erişimi yöneten okuma, yazma ve yürütme onay kutularına sahiptir.

Zorunlu alanlar: 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 okuma ve/veya bunlara yazma işlemlerini yapıp yapamayacağı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şir

Açıklama: Yerel depolama alanındaki belirtilen anahtarlara erişim sağlar.

Yapılandırma: Erişilebilen yerel depolama anahtarlarının listesi. Bu, joker karakter içermeyen basit bir anahtar dizisidir. Erişimi yöneten okuma ve yazma onay kutuları bulunur.

Zorunlu kılan: 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 ömrü boyunca kullanılabilecek şablonlar için geçici depolamaya erişim sağlar.

Yapılandırma: Yok

Zorunlu kılan: 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: Okuma için izin verilen çerez adlarının listesi.

Zorunlu kılan: getCookieValues

Sorgu imzası: queryPermission('get_cookies', <name>)

Notlar: Bir çerezin adına bağlı olarak okunup okunamayacağını yönetir.

Ö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şimi izni verir.

Yapılandırma: Aşağıdaki boole'ler, yönlendirenin hangi bölümünün okunabileceğini yönetir. Yönlendirenin belirli bir bölümü, yalnızca karşılık gelen bölüm true olduğunda okunabilir. Bu boole değerlerinin tamamı true olarak ayarlanırsa çağrıyı yapan, tam yönlendiren URL'sini almak için bir bileşen belirtilmeden getReferrerUrl yöntemini çağırabilir. Herhangi bir değer ayarlanmazsa varsayılan değer all olur. Bir değer ayarlanırsa değer, bir bileşenin şunlardan biri olduğu bir bileşen dizisi olmalıdır: protocol, host, port, path, query veya extension.

queryKeys: Sorgu seçilirse şablon yazarı, okuyabileceği sorgu anahtarı grubunu daha da sınırlayabilir. Bu, joker karakter içermeyen basit bir anahtar dizisidir.

Zorunlu kılan: 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 boole'ler, URL'nin hangi bölümünün okunabileceğini yönetir. URL'nin belirli bir bölümü, yalnızca karşılık gelen kısım doğruysa okunabilir. Çağrıyı yapan, ancak tüm bu boole değerleri true olarak ayarlanmışsa, URL'nin tamamını almak için herhangi bir bileşen belirtilmeden getUrl yöntemini çağırabilir. Herhangi bir değer ayarlanmazsa varsayılan değer all olur. Bir değer ayarlanırsa değer, bir bileşenin şunlardan 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 anahtarı grubunu daha da sınırlayabilir. Bu, joker karakter içermeyen basit bir anahtar dizisidir.

Zorunlu kılan: getUrl

Sorgu imzası: queryPermission('get_url', <optional url component>, <optional query key>)

Sağlanmışsa URL bileşeni 'protocol', 'host', 'port', 'path', 'query', 'extension', 'fragment' olmalıdır. Atlanırsa izin sorgusu, URL'nin tamamına erişim isteğidir.

Sağlanması durumunda sorgu anahtarı, şablon kodunun okumak istediği sorgu dizesi bağımsız değişkeni olmalıdır.

Notlar: Özel bir şablonun mevcut konumdan okuma yapıp yapamayacağını kontrol eder. Konumun belirli bir bölümüyle sınırlandırmaya 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'leri ekler

Açıklama: Belirli bir URL'ye sahip görünmez bir iframe ekler.

Yapılandırma: URL kalıplarının listesi

Zorunlu kılan: injectHiddenIframe

Sorgu imzası: queryPermission('inject_hidden_iframe', <url>)

Notlar: Bir özel şablonun görünmez iFrame yerleştirip ekleyemeyeceğ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 dosyalarını ekler

Açıklama: Sayfaya bir komut dosyası ekler.

Yapılandırma: URL kalıplarının listesi

Zorunlu kılan: injectScript

Sorgu imzası: queryPermission('inject_script', <url>)

Notlar: Özel bir şablonun JavaScript ekleyip ekleyemeyeceklerini ve bunu hangi kaynaktan ekleyebileceğ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: Konsolda günlük kaydı oluşturur

Açıklama: Geliştirici konsolunda ve Google Etiket Yöneticisi ö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 modunda günlük kaydı etkinleştirilir. İzin reddedilirse logToConsole hata bildirmez ancak günlük mesajını gizler.

Zorunlu kılan: logToConsole

Sorgu imzası: queryPermission('logging')

Notlar: Özel bir şablonun geliştirici konsoluna giriş 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 içindeki verileri okur.

Yapılandırma: Bir anahtar eşleşmesinin, sonunda bir joker karakter bulunan noktalı referanslardan oluşan önde gelen bir dizi olabileceği anahtar eşleşme ifadeleri grubu. Anahtar eşleştirme ifadeleri, veri katmanından hangi özelliklerin okunabileceğini yönetir.

Zorunlu kılan: 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_character_set

Görünen ad: Doküman karakter kümesini okur

Açıklama: document.characterSet olarak yazılır.

Yapılandırma: Yok

Zorunlu kılan: 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

Zorunlu kılan: 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

Zorunlu kılan: 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: Doküman başlığını okur

Açıklama: document.title olarak yazılır.

Yapılandırma: Yok

Zorunlu kılan: readTitle

Sorgu imzası: queryPermission('read_title')

Notlar: Özel bir şablonun document.title öğesini 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: Pikselleri gönderir

Açıklama: Belirtilen bir URL'ye GET isteği gönderir. Yanıt işlenmez.

Yapılandırma: İzin verilen URL kalıplarının listesi.

Zorunlu kılan: sendPixel

Sorgu imzası: queryPermission('send_pixel', <url>)

Notlar: Özel bir şablonun GET isteği gönderip gönderemeyeceğini ve isteği 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 parametrelere sahip bir çerez oluşturur.

Yapılandırma: Her biri ad, alan, yol, secure özelliği ve geçerlilik bitiş tarihiyle ilgili isteğe bağlı kısıtlamalara sahip, izin verilen çerez adları tablosu.

Zorunlu kılan: setCookie

Sorgu imzası: queryPermission('set_cookies', <name>, <options>)

Notlar: Çerez adı, alan adı, yol, secure özelliği ve geçerlilik bitiş tarihine bağlı olarak ç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ını yazar

Açıklama: dataLayer'a veri yazar.

Yapılandırma: Bir anahtar eşleşmesinin, sonunda bir joker karakter bulunan noktalı referanslardan oluşan önde gelen bir dizi olabileceği anahtar eşleşme ifadeleri grubu. Anahtar eşleşmesi ifadeleri, hangi özelliklerin veri katmanına yazabileceğini belirler.

Zorunlu kılan: 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'});
}