Uprawnienia szablonu niestandardowego

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

W tym dokumencie opisujemy uprawnienia dla niestandardowych szablonów internetowych.


Każde uprawnienie to:

  • Sprawdzane przez interfejsy API, które ich wymagają.
  • Automatycznie wykrywana w JavaScript w trybie piaskownicy na podstawie używanych interfejsów API. Dzieje się tak, gdy wprowadzasz zmiany w edytorze szablonów niestandardowych (w przypadku szybkiej pętli informacji zwrotnych) lub po skompilowaniu kodu (by sprawdzić, czy wymuszone są odpowiednie uprawnienia).
  • W edytorze szablonów niestandardowych można je edytować, aby nadać bardziej szczegółowe uprawnienia.
  • Tworzenie zapytań w języku JavaScript w trybie piaskownicy za pomocą interfejsu API queryPermission.

dostęp_globalny

Wyświetlana nazwa: uzyskuje dostęp do zmiennych globalnych

Opis: umożliwia dostęp do zmiennej globalnej (w tym potencjalnie poufnych interfejsów API).

Konfiguracja: lista kluczy, do których można uzyskać dostęp. Każdy klucz jest ścieżką rozdzielaną kropkami. Na przykład: foo.bar Pierwszy token w każdej ścieżce nie może być wstępnie zdefiniowanym kluczyem z zakresu globalnego przeglądarki ani słowem kluczowym JavaScript. Ma uprawnienia do odczytu, 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>), queryPermission('access_globals', 'write', <key to write to>), 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ć lub zapisywać wartości globalne.

Przykładowy kod

const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
  const dataLayerPush = createQueue('dataLayer');
}

dostęp do pamięci lokalnej

Wyświetlana nazwa: uzyskuje dostęp do pamięci lokalnej.

Opis: dostęp do określonych kluczy w pamięci lokalnej.

Konfiguracja: lista lokalnych kluczy pamięci, do których można uzyskać dostęp. Jest to prosta tablica kluczy bez symboli wieloznacznych. Ma pola wyboru do odczytu i zapisu, które dają dostęp rządowy.

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

dostęp_szablonu_dostępu

Wyświetlana nazwa: uzyskuje dostęp do magazynu szablonów

Opis: umożliwia dostęp do tymczasowej pamięci na potrzeby szablonów, które mogą być przechowywane przez cały okres istnienia strony.

Konfiguracja: Brak

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

pliki cookie

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 można odczytywać.

Wymagane 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 dostęp do odczytu do zawężonych części strony odsyłającej.

Konfiguracja: poniższe wartości logiczne określają, która część strony odsyłającej może być odczytywana. Daną część strony odsyłającej można odczytać tylko wtedy, gdy odpowiednia część strony odsyłającej to true. Wywołujący może wywołać metodę getReferrerUrl bez określonego komponentu, by uzyskać pełny adres URL strony odsyłającej, jeśli wszystkie te wartości logiczne są ustawione na true. Jeśli nie ustawisz żadnej wartości, domyślna wartość to all. Jeśli ustawiona jest wartość, musi ona być tablicą 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ć zestaw kluczy zapytania, z których mogą odczytywać dane. Jest to prosta tablica kluczy bez symboli wieloznacznych.

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 URL

Opis: zwraca część lub całość adresu URL bieżącej strony.

Konfiguracja: poniższe wartości logiczne określają, która część adresu URL może być odczytywana. Daną część adresu URL można odczytać tylko wtedy, gdy odpowiada jej część. Wywołujący może wywołać metodę getUrl bez komponentu, aby uzyskać cały adres URL, tylko wtedy, gdy wszystkie te wartości logiczne są ustawione na true. Jeśli nie ustawisz żadnej wartości, domyślna wartość to all. Jeśli ustawiona jest wartość, musi ona być tablicą komponentów, w których komponent jest jednym z tych elementów: protocol, host, port, path, query, extension lub fragment.

queryKeys: Jeśli wybierzesz zapytanie, autor szablonu może jeszcze bardziej ograniczyć zestaw kluczy zapytania, z których mogą odczytywać dane. Jest to prosta tablica kluczy bez symboli wieloznacznych.

Wymagane przez: getUrl

Podpis zapytania: queryPermission('get_url', <optional url component>, <optional query key>)

Komponent URL powinien zawierać jeden z tych komponentów: 'protocol', 'host', 'port', 'path', 'query', 'extension' lub 'fragment'. W przypadku pominięcia to zapytanie o uprawnienia to żądanie dostępu do całego adresu URL.

Jeśli jest podany, klucz zapytania powinien być argumentem ciągu zapytania, który kod szablonu chce odczytać.

Uwagi: określa, czy szablon niestandardowy może odczytywać dane z bieżącej lokalizacji. Umożliwia ograniczenie do konkretnej 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');
}

wstrzyknięty_element_iframe

Wyświetlana nazwa: wstawia ukryte elementy iframe

Opis: wstawia niewidoczny element iframe z podanym adresem URL.

Konfiguracja:lista wzorców adresów URL.

Wymagane przez: injectHiddenIframe

Podpis zapytania: queryPermission('inject_hidden_iframe', <url>)

Uwagi: określa, czy szablon niestandardowy może wstrzykiwać niewidoczny element iframe, i z którego źródła może to robić.

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

skrypt inject

Wyświetlana nazwa: wstrzykuje skrypty

Opis: wstawia skrypt na stronie.

Konfiguracja:lista wzorców adresów URL.

Wymagane przez: injectScript

Podpis zapytania: queryPermission('inject_script', <url>)

Uwagi: określa, czy szablon niestandardowy może wstrzykiwać 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);
}

warstwa_danych_odtwarzania

Wyświetlana nazwa:nasłuchuje zdarzeń warstwy danych.

Opis: rejestruje wywołania zwrotne, które wykrywają zdarzenia warstwy danych.

Konfiguracja: wartość logiczna, która określa, czy dozwolone są jakieś zdarzenia, czy tylko zestaw określonych zdarzeń. Jeśli ten drugi warunek jest dozwolony, należy podać zestaw nazw zdarzeń.

Wymagane przez: addDataLayerEventListener, removeDataLayerEventListener

Podpis zapytania: queryPermission('listen_data_layer', <event name>)

Uwaga: określa, czy szablon niestandardowy może rejestrować i wyrejestrowywać odbiorców danego zdarzenia.

Przykładowy kod

const addDataLayerEventListener = require('internal.addDataLayerEventListener');
const queryPermission = require('queryPermission');
const eventName = 'gtm.scrollDepth';
if (queryPermission('listen_data_layer', eventName)) {
  const listenerId = addDataLayerEventListener(eventName, (event) => {
     // ...
  });
}

logowanie

Wyświetlana nazwa: rejestruje konsolę.

Opis: rejestruje konsolę programisty i tryb podglądu Menedżera tagów Google.

Konfiguracja – opcja umożliwiająca logowanie się w środowisku produkcyjnym. Domyślnie włączone jest logowanie tylko podczas debugowania/podglądu. W przypadku odmowy uprawnień logToConsole nie wyświetla komunikatu o błędzie, ale blokuje komunikat logu.

Wymagane przez: logToConsole

Podpis zapytania: queryPermission('logging')

Uwaga: określa, czy szablon niestandardowy może być logowany 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');

warstwa_odczytu_danych

Wyświetlana nazwa: odczytuje warstwę danych

Opis: odczytuje dane z obiektu dataLayer.

Konfiguracja: zestaw wyrażeń pasujących do klucza, gdzie dopasowaniem klucza może być wiodąca seria kropkowanych odwołań z symbolem końcowym na końcu. Wyrażenia z dopasowaniem klucza określają, które właściwości można odczytywać z warstwy danych.

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

zestaw_znaków_odczytu

Wyświetlana nazwa:odczytuje zestaw znaków dokumentu

Opis: odczyt: document.characterSet.

Konfiguracja: Brak

Wymagane przez: readCharacterSet

Podpis zapytania: queryPermission('read_character_set')

Uwaga: określa, czy szablon niestandardowy może odczytywać document.characterSet.

Przykładowy kod

const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
  const characterSet = readCharacterSet();
}

dane_kontenera_odczytu

Wyświetlana nazwa:odczytuje dane kontenera

Opis: odczytuje dane kontenera.

Konfiguracja: Brak

Wymagane przez: getContainerVersion

Podpis zapytania: queryPermission('read_container_data')

Uwagi: określa, czy szablon niestandardowy może odczytywać dane kontenera.

Przykładowy kod

const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
  version = getContainerVersion();
}

odczyt_metadanych zdarzenia

Wyświetlana nazwa: odczytuje metadane zdarzenia

Opis: odczyt metadanych zdarzenia w wywołaniach zwrotnych zdarzenia

Konfiguracja: Brak

Wymagane przez: addEventCallback

Podpis zapytania: queryPermission('read_event_metadata')

Uwagi: określa, czy szablon niestandardowy może odczytywać metadane zdarzenia w wywołaniach zwrotnych.

Przykładowy kod

const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
  addEventCallback((containerId, eventMetadata) => {
    // Read event metadata.
  });
}

do odczytu_tytułu

Wyświetlana nazwa:czyta tytuł dokumentu

Opis: odczyt: document.title.

Konfiguracja: Brak

Wymagane przez: readTitle

Podpis zapytania: queryPermission('read_title')

Uwaga: 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();
}

wysłanie_piksela

Wyświetlana nazwa:wysyła piksele.

Opis: wysyła żądanie GET do określonego adresu URL. Odpowiedź nie jest przetwarzana.

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ć żądanie GET i do którego źródła może to wysłać.

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

pliki cookie

Wyświetlana nazwa: ustawia plik cookie.

Opis: ustawia plik cookie z określoną nazwą i parametrami.

Konfiguracja: tabela dozwolonych nazw plików cookie, z których każda ma opcjonalne ograniczenia dotyczące nazwy, domeny, ścieżki, atrybutu secure i daty ważności.

Wymagane przez: setCookie

Podpis zapytania: queryPermission('set_cookies', <name>, <options>)

Uwagi: określa, czy plik cookie może być zapisywany w zależności od jego nazwy, domeny, ścieżki, atrybutu secure i okresu 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);
}

warstwa_zapisu_danych

Wyświetlana nazwa: zapisuje warstwę danych

Opis: zapisuje dane w dataLayer.

Konfiguracja: zestaw wyrażeń pasujących do klucza, gdzie dopasowaniem klucza może być wiodąca seria kropkowanych odwołań z symbolem końcowym na końcu. Wyrażenia z dopasowaniem klucza określają, które właściwości mogą zapisywać informacje w warstwie danych.

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