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