Questo documento descrive le autorizzazioni per i modelli personalizzati per il web.
Ogni autorizzazione è:
- Verificato dalle API che le richiedono.
- Rilevato automaticamente in JavaScript con sandbox, in base alle API utilizzate. Ciò accade quando vengono apportate modifiche nell'editor del modello personalizzato (per un loop di feedback rapido) e quando il codice viene compilato (per confermare che vengano applicate le autorizzazioni corrette).
- Modificabili nell'editor del modello personalizzato, per rendere l'autorizzazione più specifica.
- È possibile eseguire query in JavaScript con sandbox tramite l'API
queryPermission
.
access_globals
Nome visualizzato: consente di accedere alle variabili globali.
Descrizione: consente l'accesso a una variabile globale (che potenzialmente include API sensibili).
Configurazione: elenco delle chiavi a cui è possibile accedere. Ogni chiave è un percorso
separato da punti. Ad esempio: foo.bar
il primo token in ogni percorso non deve essere una chiave predefinita nell'ambito globale del browser, né una parola chiave JavaScript. Include caselle di controllo di lettura,
scrittura ed esecuzione che regolano l'accesso.
Obbligatorio da: setInWindow
, copyFromWindow
, callInWindow
,
createQueue
, createArgumentsQueue
Firma query: queryPermission('access_globals', 'read', <key to read
from>)
o 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 nei valori globali.
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: accede allo spazio di archiviazione locale.
Descrizione: consente l'accesso alle chiavi specificate nello spazio di archiviazione locale.
Configurazione: elenco delle chiavi di archiviazione locale a cui è possibile accedere. Si tratta di un semplice array di chiavi, senza caratteri jolly. Dispone di caselle di controllo di lettura e scrittura che regolano 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 del modello.
Descrizione: consente l'accesso all'archiviazione temporanea per i modelli che possono durare 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 consentiti per la lettura.
Richiesta da: getCookieValues
Firma della query: queryPermission('get_cookies', <name>)
Nota:specifica se un cookie può essere letto in base al 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: consente l'accesso in lettura a parti limitate del referrer.
Configurazione: i seguenti valori booleani regolano la parte del referrer che può essere letta. Una determinata parte del referrer può essere letta solo se la parte corrispondente è true
. Il chiamante può chiamare getReferrerUrl
senza un componente specificato per
ottenere l'URL referrer completo se tutti questi valori booleani sono impostati su true
. Se non è impostato alcun valore, il valore predefinito è all
. Se viene 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 la query è selezionata, l'autore del modello potrebbe limitare ulteriormente il set di chiavi di query da cui può 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 una parte o l'intero URL della pagina corrente.
Configurazione: i seguenti valori booleani regolano la parte dell'URL che può essere letta. Una determinata parte dell'URL può essere letta solo se la parte corrispondente è
true. Il chiamante può chiamare getUrl
senza un componente specificato per ottenere l'intero URL se e solo se tutti questi valori booleani sono impostati su true
. Se non viene impostato alcun valore, il valore predefinito è all
. Se viene impostato un valore, questo deve essere un array di componenti in cui un componente è uno dei seguenti: protocol
, host
, port
, path
, query
, extension
o fragment
.
queryKeys
:
se la query è selezionata, l'autore del modello potrebbe limitare ulteriormente il set di chiavi di query da cui può 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'
, 'fragment'
. Se omessa, la query di autorizzazione è una richiesta di accesso all'intero URL.
Se fornita, la chiave di query deve essere l'argomento della stringa di query che il codice del modello vuole leggere.
Note: consente di stabilire se un modello personalizzato può leggere dalla posizione corrente. Consente di limitare l'accesso 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 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: stabilisce se un modello personalizzato può inserire un iframe invisibile e da quale origine 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 script
Descrizione: inserisce uno script nella pagina.
Configurazione: elenco di pattern URL
Richiesta da: injectScript
Firma della query: queryPermission('inject_script', <url>)
Note: stabilisce se un modello personalizzato può inserire JavaScript e 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 i dati nella console
Descrizione: registra i dati della console per gli sviluppatori e della modalità di anteprima di GTM.
Configurazione: opzione per abilitare il logging in produzione. L'impostazione predefinita abilita il logging solo nel debug/anteprima. Se l'autorizzazione viene negata, logToConsole
non genererà 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 a 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 delle chiavi, in cui una corrispondenza di chiave può essere una serie principale di riferimenti punteggiati, con un carattere jolly finale. Le espressioni di corrispondenza delle chiavi 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:stabilisce 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 container.
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 dell'evento.
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 nei 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: stabilisce se un modello personalizzato può leggere il document.title
.
Esempio di codice
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 è stata elaborata.
Configurazione: elenco dei pattern URL consentiti.
Richiesta da: sendPixel
Firma della query: queryPermission('send_pixel', <url>)
Note: determina se un modello personalizzato può inviare una richiesta GET e a 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 restrizioni facoltative su nome, dominio, percorso, attributo secure
e scadenza.
Richiesta da: setCookie
Firma della query: queryPermission('set_cookies', <name>, <options>)
Note: determina se un cookie può essere scritto a seconda del nome del cookie, del dominio, del percorso, dell'attributo secure
e della 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
Description: scrive i dati nel dataLayer.
Configurazione: insieme di espressioni di corrispondenza delle chiavi, in cui una corrispondenza di chiave può essere una serie principale di riferimenti punteggiati, con un carattere jolly finale. Le espressioni di corrispondenza delle chiavi regolano le proprietà che possono essere scritte 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'});
}