Autorizzazioni per i modelli personalizzati

Questo documento illustra le autorizzazioni per i modelli personalizzati per il web.


Ogni autorizzazione è:

  • Viene controllato dalle API che li richiedono.
  • Rilevata automaticamente in JavaScript con sandbox, in base alle API utilizzate. Questo accade man mano che le modifiche vengono apportate nell'editor dei modelli personalizzati (per una ciclo di feedback) e quando il codice viene compilato (per verificare che sia stato autorizzazioni sono applicate in modo forzato).
  • Modificabili nell'editor dei modelli personalizzati, per rendere l'autorizzazione più specifica.
  • Interrogabile in JavaScript con sandbox tramite l'API queryPermission.

access_globals

Nome visualizzato: accede a variabili globali

Descrizione: consente l'accesso a una variabile globale, che può includere API sensibili).

Configurazione: elenco delle chiavi a cui è possibile accedere. Ogni chiave è un punto separato. Ad esempio: foo.bar, il primo token di ogni percorso non deve essere una chiave predefinita nell'ambito globale del browser, né una parola chiave JavaScript. Con lettura, scrivere ed eseguire le caselle di controllo che regolano l'accesso.

Richiesta da: setInWindow, copyFromWindow, callInWindow, createQueue, createArgumentsQueue

Firma query: queryPermission('access_globals', 'read', <key to read from>), queryPermission('access_globals', 'write', <key to write to>) oppure queryPermission('access_globals', 'readwrite', <key to read and write>) o queryPermission('access_globals', 'execute', <key of function to execute>)

Note: consente di stabilire se un modello personalizzato può leggere e/o scrivere nel messaggio e i relativi valori.

Esempio di codice

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

access_local_storage

Nome visualizzato: consente di accedere allo spazio di archiviazione locale.

Descrizione: consente l'accesso alle chiavi specificate nello spazio di archiviazione locale.

Configurazione: elenco di chiavi di archiviazione locali a cui è possibile accedere. Si tratta di un un semplice array di chiavi, senza caratteri jolly. Dispone di caselle di controllo per la lettura e la scrittura per gestire l'accesso.

Richiesta da: localStorage

Firma query: queryPermission('access_local_storage', 'read', <key to read from>), queryPermission('access_local_storage', 'write', <key to write to>) o queryPermission('access_local_storage', 'readwrite', <key to read and write>)

Esempio di codice

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

Nome visualizzato: consente di accedere allo spazio di archiviazione dei modelli.

Descrizione: consente l'accesso all'archiviazione temporanea per i modelli che possono per tutta la durata della pagina.

Configurazione: nessuna

Richiesta da: templateStorage

Firma della query: queryPermission('access_template_storage')

Esempio di codice

const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
  const value = templateStorage.getItem(key);
}

get_cookies

Nome visualizzato: legge i valori dei cookie

Descrizione: legge i valori dei cookie con il nome specificato.

Configurazione: elenco dei nomi dei cookie che è possibile leggere.

Richiesta da: getCookieValues

Firma della query: queryPermission('get_cookies', <name>)

Note: determina se un cookie può essere letto, a seconda del nome.

Esempio di codice

const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
  cookieValues = getCookieValues(cookieName);
}

get_referrer

Nome visualizzato: legge l'URL del referrer

Descrizione: concede l'accesso in lettura a porzioni limitate del referrer.

Configurazione: i seguenti valori booleani regolano quale parte del referrer può essere lette. Una determinata parte del referrer può essere letta solo se la parte corrispondente è true. Il chiamante può chiamare getReferrerUrl senza un componente specificato a otterrà l'URL del referrer completo se tutti questi valori booleani sono impostati su true. Se non è disponibile alcun valore è impostata, il valore predefinito è all. Se è impostato un valore, questo deve essere un array di componenti in cui un componente è uno dei seguenti: protocol, host, port, path, query o extension.

queryKeys: Se viene selezionata la query, l'autore del modello può limitare ulteriormente l'insieme e le chiavi di query da cui possono leggere. Si tratta di un semplice array di chiavi, senza caratteri jolly.

Richiesta da: getReferrerUrl, getReferrerQueryParameters

Firma della query: queryPermission('get_referrer', <url_component>)

Esempio di codice

const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
  referrer = getReferrerUrl('queryParams');
}

get_url

Nome visualizzato: legge l'URL

Descrizione: restituisce tutto o parte dell'URL della pagina corrente.

Configurazione: i seguenti valori booleani determinano quale parte dell'URL può essere impostata. lette. Una determinata parte dell'URL può essere letta solo se la parte corrispondente è vero. Il chiamante può chiamare getUrl senza un componente specificato per ottenere il l'intero URL se e solo se tutti questi valori booleani sono impostati su true. Se nessun valore è impostato, il valore predefinito è all. Se viene impostato un valore, questo deve essere una matrice di componenti in cui un componente è uno dei seguenti: protocol, host, port, path, query, extension o fragment.

queryKeys: Se viene selezionata la query, l'autore del modello può limitare ulteriormente l'insieme e le chiavi di query da cui possono leggere. Si tratta di un semplice array di chiavi, senza caratteri jolly.

Richiesta da: getUrl

Firma della query: queryPermission('get_url', <optional url component>, <optional query key>)

Se specificato, il componente URL deve essere uno dei seguenti: 'protocol', 'host', 'port', 'path', 'query', 'extension' e 'fragment'. Se omessa, l'autorizzazione è una richiesta di accesso all'intero URL.

Se specificata, la chiave di query deve essere l'argomento della stringa di query che il modello che il codice vuole leggere.

Note: consente di stabilire se un modello personalizzato può leggere dalla versione corrente in ogni località. Consente di limitare la visualizzazione a una parte specifica della località.

Esempio di codice

const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
  const gclid = getUrl('query', false, null, 'gclid');
}

inject_hidden_iframe

Nome visualizzato: inserisce gli iframe nascosti

Descrizione: inserisce un iframe invisibile con un determinato URL.

Configurazione: elenco di pattern URL

Richiesta da: injectHiddenIframe

Firma della query: queryPermission('inject_hidden_iframe', <url>)

Note: specifica se un modello personalizzato può inserire un iframe invisibile e da cui può farlo.

Esempio di codice

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

Nome visualizzato: inserisce gli script

Descrizione: inserisce uno script nella pagina.

Configurazione: elenco di pattern URL

Richiesta da: injectScript

Firma della query: queryPermission('inject_script', <url>)

Note: determina se un modello personalizzato può inserire JavaScript e da da quale origine può farlo.

Esempio di codice

const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
  injectScript(url);
}

logging

Nome visualizzato: registra nella console

Descrizione: registra l'account nella Developer Console e mostra la modalità di anteprima di GTM.

Configurazione:opzione per abilitare il logging in produzione. Il valore predefinito è solo abilita il logging in debug/anteprima. Se l'autorizzazione viene negata, logToConsole non genera un errore, ma eliminerà il messaggio di log.

Richiesta da: logToConsole

Firma della query: queryPermission('logging')

Note: consente di stabilire se un modello personalizzato può accedere alla Developer Console.

Esempio di codice

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

Nome visualizzato: legge il livello dati

Descrizione: legge i dati del dataLayer.

Configurazione: insieme di espressioni di corrispondenza della chiave, in cui una corrispondenza di chiave può essere una serie principale di riferimenti punteggiati, con un carattere jolly finale. Corrispondenza chiave Espressioni regolano le proprietà che possono essere lette dal livello dati.

Richiesta da: copyFromDataLayer

Firma della query: queryPermission('read_data_layer', <data layer key to read from>)

Note: consente di stabilire se un modello personalizzato può leggere dal livello dati.

Esempio di codice

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

Nome visualizzato: legge il set di caratteri del documento

Descrizione: legge document.characterSet.

Configurazione: nessuna

Richiesta da: readCharacterSet

Firma della query: queryPermission('read_character_set')

Note: specifica se un modello personalizzato può leggere document.characterSet.

Esempio di codice

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

read_container_data

Nome visualizzato: legge i dati del contenitore

Descrizione: legge i dati relativi al contenitore.

Configurazione: nessuna

Richiesta da: getContainerVersion

Firma della query: queryPermission('read_container_data')

Note: consente di stabilire se un modello personalizzato può leggere i dati relativi al contenitore.

Esempio di codice

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

read_event_metadata

Nome visualizzato: legge i metadati degli eventi

Descrizione: legge i metadati degli eventi nei callback eventi

Configurazione: nessuna

Richiesta da: addEventCallback

Firma della query: queryPermission('read_event_metadata')

Note: consente di stabilire se un modello personalizzato può leggere i metadati degli eventi in i callback.

Esempio di codice

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

read_title

Nome visualizzato: legge il titolo del documento

Descrizione: legge document.title.

Configurazione: nessuna

Richiesta da: readTitle

Firma della query: queryPermission('read_title')

Note: specifica se un modello personalizzato può leggere document.title.

Codice di esempio

const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
  const title = readTitle();
}

send_pixel

Nome visualizzato: invia pixel

Descrizione: invia una richiesta GET a un URL specificato. La risposta non è elaborati.

Configurazione: elenco di pattern URL consentiti.

Richiesta da: sendPixel

Firma della query: queryPermission('send_pixel', <url>)

Note:stabilisce se un modello personalizzato può inviare una richiesta GET e a da quale origine può farlo.

Esempio di codice

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

Nome visualizzato: imposta un cookie

Descrizione: imposta un cookie con il nome e i parametri specificati.

Configurazione: una tabella di nomi dei cookie consentiti, ciascuno con opzioni facoltative limitazioni relative a nome, dominio, percorso, attributo secure e scadenza.

Richiesta da: setCookie

Firma della query: queryPermission('set_cookies', <name>, <options>)

Note: determina se è possibile scrivere un cookie, a seconda del cookie nome, dominio, percorso, attributo secure e scadenza.

Esempio di codice

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

Nome visualizzato: scrive il livello dati

Descrizione: scrive i dati nel dataLayer.

Configurazione: insieme di espressioni di corrispondenza della chiave, in cui una corrispondenza di chiave può essere una serie principale di riferimenti punteggiati, con un carattere jolly finale. Corrispondenza chiave le espressioni controllano quali proprietà possono scrivere nel livello dati.

Richiesta da: gtagSet

Firma della query: queryPermission('write_data_layer', <data layer key to write from>)

Note: consente di stabilire se un modello personalizzato può scrivere nel livello dati.

Esempio di codice

const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
  gtagSet({dlKey: 'baz'});
}