Ten dokument opisuje uprawnienia szablonów niestandardowych w internecie.
Każde uprawnienie:
- Sprawdzone przez interfejsy API, które ich wymagają.
- Automatycznie wykrywany w JavaScripcie w trybie piaskownicy na podstawie używanych interfejsów API. Zmiany pojawiają się w edytorze niestandardowych szablonów (aby szybko pętla informacji zwrotnych) oraz po skompilowaniu kodu (aby sprawdzić, czy wymuszanie uprawnień).
- Możesz je edytować w edytorze szablonów niestandardowych, aby dostosować uprawnienie.
- Można wysyłać zapytania w JavaScripcie w trybie piaskownicy za pomocą interfejsu API
queryPermission
.
access_globals
Wyświetlana nazwa: uzyskuje dostęp do zmiennych globalnych
Opis: umożliwia dostęp do zmiennej globalnej (w tym wartości lub wrażliwe interfejsy API).
Konfiguracja: lista kluczy, do których można uzyskać dostęp. Każdy klawisz jest kropką
ścieżki tekstu. Na przykład: foo.bar
Pierwszy token w każdej ścieżce nie może być
wstępnie zdefiniowanego klucza w zakresie globalnym przeglądarki ani słowa kluczowego JavaScript. Przeczytano,
zapisu i wykonywania pól wyboru, które regulują dostęp.
Wymagane przez: setInWindow
, copyFromWindow
, callInWindow
,
createQueue
, createArgumentsQueue
Podpis zapytania: queryPermission('access_globals', 'read', <key to read
from>)
lub queryPermission('access_globals', 'write', <key to write to>)
lub
queryPermission('access_globals', 'readwrite', <key to read and write>)
lub
queryPermission('access_globals', 'execute', <key of function to execute>)
Uwagi: określa, czy szablon niestandardowy może odczytywać i zapisywać w środowisku globalnym .
Przykładowy kod
const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
const dataLayerPush = createQueue('dataLayer');
}
access_local_storage
Wyświetlana nazwa: uzyskuje dostęp do pamięci lokalnej.
Opis: umożliwia dostęp do określonych kluczy w pamięci lokalnej.
Konfiguracja: lista kluczy pamięci lokalnej, do których można uzyskać dostęp. To jest prostej tablicy kluczy bez symboli wieloznacznych. Ma pola wyboru odczytu i zapisu, które i zarządzać dostępem.
Wymagany przez: localStorage
Podpis zapytania: queryPermission('access_local_storage', 'read', <key to
read from>)
, queryPermission('access_local_storage', 'write', <key to write
to>)
lub queryPermission('access_local_storage', 'readwrite', <key to read and
write>)
Przykładowy 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
Wyświetlana nazwa: uzyskuje dostęp do pamięci szablonów
Opis: umożliwia dostęp do tymczasowego miejsca na dane szablonów, których można używać pozostają bez zmian przez cały czas istnienia strony.
Konfiguracja: brak
Wymagany przez: templateStorage
Podpis zapytania: queryPermission('access_template_storage')
Przykładowy 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
Wyświetlana nazwa: odczytuje wartości plików cookie
Opis: odczytuje wartości plików cookie o określonej nazwie.
Konfiguracja: lista nazw plików cookie, które mogą być odczytywane.
Wymagany przez: getCookieValues
Podpis zapytania: queryPermission('get_cookies', <name>)
Uwagi: określa, czy plik cookie może być odczytywany – w zależności od jego nazwy.
Przykładowy kod
const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
cookieValues = getCookieValues(cookieName);
}
get_referrer
Wyświetlana nazwa: odczytuje adres URL strony odsyłającej.
Opis: umożliwia odczytywanie ograniczonych części danych o witrynie odsyłającej.
Konfiguracja: te wartości logiczne określają, która część strony odsyłającej może
do przeczytania. Określoną część strony odsyłającej można odczytać tylko wtedy, gdy odpowiadająca jej część
jest true
. Wywołujący może wywołać funkcję getReferrerUrl
bez określonego komponentu,
uzyskasz pełny adres URL strony odsyłającej, jeśli wszystkie te wartości logiczne mają wartość true
. Jeśli brak wartości
jest ustawiony, wartość domyślna to all
. Jeśli jest ustawiona wartość, musi być ona
tablica komponentów, w których komponent jest jednym z tych elementów: protocol
,
host
, port
, path
, query
lub extension
.
queryKeys
:
Jeśli wybierzesz zapytanie, autor szablonu może jeszcze bardziej ograniczyć zbiór
kluczy zapytań, z których mogą odczytywać dane. To jest prosta tablica kluczy, bez żadnego
symboli zastępczych.
Wymagane przez: getReferrerUrl
, getReferrerQueryParameters
Podpis zapytania: queryPermission('get_referrer', <url_component>)
Przykładowy kod
const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
referrer = getReferrerUrl('queryParams');
}
get_url
Wyświetlana nazwa: odczytuje adres URL.
Opis: zwraca część lub całość adresu URL bieżącej strony.
Konfiguracja: te wartości logiczne określają, która część adresu URL
przeczytaj. Daną część adresu URL można odczytać tylko wtedy, gdy odpowiada ona
true (prawda). Element wywołujący może wywołać metodę getUrl
bez określonego komponentu, aby uzyskać
cały adres URL tylko wtedy, gdy wszystkie te wartości logiczne mają wartość true
. Jeśli żadna wartość nie jest
Wartość domyślna to all
. Jeśli wartość jest ustawiona, musi być tablicą
komponentów, których komponent jest jednym z tych komponentów: protocol
, host
,
port
, path
, query
, extension
lub fragment
.
queryKeys
:
Jeśli wybierzesz zapytanie, autor szablonu może jeszcze bardziej ograniczyć zbiór
kluczy zapytań, z których mogą odczytywać dane. To jest prosta tablica kluczy, bez żadnego
symboli zastępczych.
Wymagany przez: getUrl
Podpis zapytania: queryPermission('get_url', <optional url component>,
<optional query key>)
Jeśli jest podany, komponent adresu URL powinien mieć te wartości: 'protocol'
, 'host'
, 'port'
,
'path'
, 'query'
, 'extension'
, 'fragment'
. W przypadku pominięcia tego uprawnienia
to żądanie dostępu do całego adresu URL.
Jeśli został podany, klucz zapytania powinien być argumentem ciągu zapytania, którego szablon który chce odczytać.
Uwagi: określa, czy szablon niestandardowy może odczytywać dane z bieżącego lokalizacji. Umożliwia ograniczenie do określonej części lokalizacji.
Przykładowy 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
Wyświetlana nazwa: wstawia ukryte elementy iframe
Opis: wstawia niewidoczny element iframe z podanym adresem URL.
Konfiguracja: lista wzorców adresów URL
Wymagany przez: injectHiddenIframe
Podpis zapytania: queryPermission('inject_hidden_iframe', <url>)
Uwagi: określa, czy szablon niestandardowy może wstawić niewidoczny element iframe. z którego może to być możliwe.
Przykładowy 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
Wyświetlana nazwa: powoduje wstrzykiwanie skryptów
Opis: wstawia skrypt na stronie.
Konfiguracja: lista wzorców adresów URL
Wymagany przez: injectScript
Podpis zapytania: queryPermission('inject_script', <url>)
Uwagi: określa, czy szablon niestandardowy może wstrzyknąć kod JavaScript i z jakiego źródła może to robić.
Przykładowy kod
const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
injectScript(url);
}
logowanie
Wyświetlana nazwa: Logi do konsoli
Opis: loguje się w konsoli programisty i w trybie podglądu Menedżera tagów Google.
Konfiguracja:opcja umożliwiająca włączenie logowania w środowisku produkcyjnym. Wartość domyślna to tylko
włącz logowanie w trybie debugowania/podglądu. Jeśli nie przyznasz uprawnień, logToConsole
nie spowoduje zgłoszenia błędu, ale usunie komunikat dziennika.
Wymagany przez: logToConsole
Podpis zapytania: queryPermission('logging')
Uwagi: określa, czy szablon niestandardowy może logować się w konsoli programisty.
Przykładowy 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
Wyświetlana nazwa: odczytuje warstwę danych.
Opis: odczyt danych z tablicy dataLayer.
Konfiguracja: zestaw wyrażeń dopasowania klucza, gdzie dopasowaniem klucza może być wiodącej serii przerywanych odwołań, na końcu których znajduje się symbol wieloznaczny. Dopasowanie klucza decydują o tym, które właściwości mogą być odczytywane z warstwy danych.
Wymagany przez: copyFromDataLayer
Podpis zapytania: queryPermission('read_data_layer', <data layer key to read
from>)
Uwagi: określa, czy szablon niestandardowy może odczytywać dane z warstwy danych.
Przykładowy 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
Wyświetlana nazwa: odczytuje zestaw znaków w dokumencie.
Opis: czytanie document.characterSet
.
Konfiguracja: brak
Wymagany przez: readCharacterSet
Podpis zapytania: queryPermission('read_character_set')
Uwagi: określa, czy szablon niestandardowy może odczytywać wartość document.characterSet
.
Przykładowy kod
const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
const characterSet = readCharacterSet();
}
read_container_data
Wyświetlana nazwa: odczytuje dane kontenera.
Opis: odczytuje dane o kontenerze.
Konfiguracja: brak
Wymagany przez: getContainerVersion
Podpis zapytania: queryPermission('read_container_data')
Uwagi: określa, czy szablon niestandardowy może odczytywać dane o kontenerze.
Przykładowy kod
const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
version = getContainerVersion();
}
read_event_metadata
Wyświetlana nazwa: odczytuje metadane zdarzenia.
Opis: odczytywanie metadanych zdarzeń w wywołaniach zwrotnych zdarzeń
Konfiguracja: brak
Wymagane przez: addEventCallback
Podpis zapytania: queryPermission('read_event_metadata')
Uwagi: określa, czy szablon niestandardowy może odczytywać metadane zdarzeń w .
Przykładowy kod
const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
addEventCallback((containerId, eventMetadata) => {
// Read event metadata.
});
}
read_title
Wyświetlana nazwa: czytanie tytułu dokumentu.
Opis: czytanie document.title
.
Konfiguracja: brak
Wymagany przez: readTitle
Podpis zapytania: queryPermission('read_title')
Uwagi: określa, czy szablon niestandardowy może odczytywać document.title
.
Przykładowy kod
const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
const title = readTitle();
}
send_pixel
Wyświetlana nazwa: wysyła piksele.
Opis: wysyła żądanie GET do określonego adresu URL. Odpowiedź nie jest przetworzono.
Konfiguracja: lista dozwolonych wzorców adresów URL.
Wymagane przez: sendPixel
Podpis zapytania: queryPermission('send_pixel', <url>)
Uwagi: określa, czy szablon niestandardowy może wysyłać żądania GET oraz z którego źródła może to robić.
Przykładowy 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
Wyświetlana nazwa: ustawia plik cookie.
Opis: ustawia plik cookie o określonej nazwie i określonych parametrach.
Konfiguracja: tabela z dozwolonymi nazwami plików cookie, przy każdej z opcjonalnych nazw
ograniczenia dotyczące nazwy, domeny, ścieżki, atrybutu secure
i okresu ważności.
Wymagany przez: setCookie
Podpis zapytania: queryPermission('set_cookies', <name>, <options>)
Uwagi: określa, czy plik cookie może być zapisywany – w zależności od pliku cookie
nazwa, domena, ścieżka, atrybut secure
i okres ważności.
Przykładowy 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
Wyświetlana nazwa: zapisuje warstwę danych
Opis: zapisuje dane w dataLayer.
Konfiguracja: zestaw wyrażeń dopasowania klucza, gdzie dopasowaniem klucza może być wiodącej serii przerywanych odwołań, na końcu których znajduje się symbol wieloznaczny. Dopasowanie klucza decydują o tym, które właściwości mogą zapisywać się w warstwie danych.
Wymagany przez: gtagSet
Podpis zapytania: queryPermission('write_data_layer', <data layer key to
write from>)
Uwagi: określa, czy szablon niestandardowy może zapisywać dane w warstwie danych.
Przykładowy kod
const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
gtagSet({dlKey: 'baz'});
}