Ce document décrit les autorisations pour les modèles Web personnalisés.
Chaque autorisation est:
- Vérifié par les API qui les nécessitent.
- Détection automatique dans le code JavaScript de bac à sable, en fonction des API utilisées. Cela se produit lorsque des modifications sont apportées dans l'éditeur de modèles personnalisés (pour une boucle de rétroaction rapide) et lorsque le code est compilé (pour vérifier que les autorisations appropriées sont appliquées).
- Modifiables dans l'éditeur de modèles personnalisés, pour rendre l'autorisation plus spécifique.
- interrogeable en JavaScript en bac à sable via l'API
queryPermission
.
access_globals
Display name (Nom à afficher) : permet d'accéder aux variables globales
Description:autorise l'accès à une variable globale (susceptible d'inclure des API sensibles).
Configuration:liste des clés accessibles. Chaque clé est un chemin d'accès séparé par un point. Par exemple: foo.bar
. Le premier jeton de chaque chemin ne doit pas être une clé prédéfinie dans le champ d'application global du navigateur ni un mot clé JavaScript. Dispose de cases à cocher de lecture, d'écriture et d'exécution qui régissent l'accès.
Requis par: setInWindow
, copyFromWindow
, callInWindow
, createQueue
, createArgumentsQueue
Signature de la requête: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>)
ou queryPermission('access_globals', 'execute', <key of function to execute>)
Remarque:Détermine si un modèle personnalisé peut lire et/ou écrire sur des valeurs globales.
Exemple de code
const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
const dataLayerPush = createQueue('dataLayer');
}
access_local_storage
Display name (Nom à afficher) : accède à l'espace de stockage local
Description:autorise l'accès aux clés spécifiées dans l'espace de stockage local.
Configuration:liste des clés de stockage local accessibles. Il s'agit d'un simple tableau de clés, sans caractère générique. Dispose de cases à cocher de lecture et d'écriture qui régissent l'accès.
Requis par: localStorage
Signature de requête:queryPermission('access_local_storage', 'read', <key to
read from>)
, queryPermission('access_local_storage', 'write', <key to write
to>)
ou queryPermission('access_local_storage', 'readwrite', <key to read and
write>)
Exemple de code
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
Display name (Nom à afficher) : accède au stockage de modèles
Description:autorise l'accès à un espace de stockage temporaire pour les modèles qui peuvent être conservés pendant toute la durée de vie de la page.
Configuration:aucune
Requis par: templateStorage
Signature de la requête:queryPermission('access_template_storage')
Exemple de code
const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
const value = templateStorage.getItem(key);
}
get_cookies
Nom à afficher:lit la ou les valeurs des cookies
Description:lit les valeurs des cookies portant le nom spécifié.
Configuration:liste des noms des cookies autorisés pour la lecture.
Requis par: getCookieValues
Signature de la requête:queryPermission('get_cookies', <name>)
Remarque:Détermine si un cookie peut être lu, en fonction de son nom.
Exemple de code
const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
cookieValues = getCookieValues(cookieName);
}
get_referrer
Nom à afficher:lit l'URL de provenance
Description:autorise l'accès en lecture aux parties restreintes de l'URL de provenance.
Configuration:les valeurs booléennes suivantes déterminent quelle partie de l'URL de provenance peut être lue. Une partie donnée de l'URL de provenance ne peut être lue que si la partie correspondante est true
. L'appelant peut appeler getReferrerUrl
sans composant spécifié pour obtenir l'URL de provenance complète si toutes ces valeurs booléennes sont définies sur true
. Si aucune valeur n'est définie, la valeur par défaut est all
. Si une valeur est définie, celle-ci doit être un tableau de composants où un composant correspond à l'un des éléments suivants: protocol
, host
, port
, path
, query
ou extension
.
queryKeys
:si la requête est sélectionnée, l'auteur du modèle peut limiter davantage l'ensemble de clés de requête à partir desquelles il peut lire. Il s'agit d'un simple tableau de clés, sans caractère générique.
Requis par: getReferrerUrl
, getReferrerQueryParameters
Signature de la requête:queryPermission('get_referrer', <url_component>)
Exemple de code
const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
referrer = getReferrerUrl('queryParams');
}
get_url
Nom à afficher:lit l'URL
Description:affiche une partie ou la totalité de l'URL de la page actuelle.
Configuration:les valeurs booléennes suivantes régissent la partie de l'URL pouvant être lue. Une partie donnée de l'URL ne peut être lue que si la partie correspondante est vraie. L'appelant peut appeler getUrl
sans composant spécifié pour obtenir l'URL complète si et seulement si toutes ces valeurs booléennes sont définies sur true
. Si aucune valeur n'est définie, la valeur par défaut est all
. Si une valeur est définie, celle-ci doit être un tableau de composants dont un composant correspond à l'un des éléments suivants: protocol
, host
, port
, path
, query
, extension
ou fragment
.
queryKeys
:si la requête est sélectionnée, l'auteur du modèle peut limiter davantage l'ensemble de clés de requête à partir desquelles il peut lire. Il s'agit d'un simple tableau de clés, sans caractère générique.
Requis par: getUrl
Signature de la requête:queryPermission('get_url', <optional url component>,
<optional query key>)
S'il est fourni, le composant d'URL doit être 'protocol'
, 'host'
, 'port'
, 'path'
, 'query'
, 'extension'
ou 'fragment'
. En cas d'omission, la requête d'autorisation est une demande d'accès à l'URL complète.
Si elle est fournie, la clé de requête doit être l'argument de chaîne de requête que le code de modèle souhaite lire.
Remarque:Détermine si un modèle personnalisé peut lire à partir de l'emplacement actuel. Permet de se limiter à une partie spécifique de l'établissement.
Exemple de code
const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
const gclid = getUrl('query', false, null, 'gclid');
}
inject_hidden_iframe
Nom à afficher:injecte des iFrames masqués
Description:injecte un iFrame invisible avec l'URL donnée.
Configuration:liste des formats d'URL
Requis par: injectHiddenIframe
Signature de la requête:queryPermission('inject_hidden_iframe', <url>)
Remarque:Détermine si un modèle personnalisé peut injecter un iFrame invisible, et à partir de quelle origine il peut le faire.
Exemple de code
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
Nom à afficher:permet d'injecter des scripts
Description:injecte un script dans la page.
Configuration:liste des formats d'URL
Requis par: injectScript
Signature de la requête:queryPermission('inject_script', <url>)
Remarque:Détermine si un modèle personnalisé peut injecter du code JavaScript, et à partir de quelle origine il peut le faire.
Exemple de code
const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
injectScript(url);
}
journalisation
Nom à afficher:permet de se connecter à la console
Description:permet d'accéder à la Play Console et au mode Aperçu de Google Tag Manager.
Configuration:option permettant d'activer la journalisation en production. La valeur par défaut n'active que la journalisation en mode débogage/preview. Si l'autorisation est refusée, logToConsole
ne génère pas d'erreur, mais supprime le message de journal.
Requis par: logToConsole
Signature de la requête:queryPermission('logging')
Remarque:Détermine si un modèle personnalisé peut être consigné dans la console pour les développeurs.
Exemple de code
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
Nom à afficher:lit la couche de données
Description:lit les données de la couche de données.
Configuration:ensemble d'expressions de correspondance, où une correspondance de clé peut être une série initiale de références en pointillés, suivies d'un caractère générique. Les expressions de correspondance de clés régissent les propriétés qui peuvent être lues à partir de la couche de données.
Requis par: copyFromDataLayer
Signature de la requête:queryPermission('read_data_layer', <data layer key to read
from>)
Remarque:Détermine si un modèle personnalisé peut lire les données de la couche de données.
Exemple de code
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
Nom à afficher:lit le jeu de caractères du document
Description:lit document.characterSet
.
Configuration:aucune
Requis par: readCharacterSet
Signature de la requête:queryPermission('read_character_set')
Remarques:Détermine si un modèle personnalisé peut lire document.characterSet
.
Exemple de code
const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
const characterSet = readCharacterSet();
}
read_container_data
Nom à afficher:lit les données du conteneur
Description:lit les données sur le conteneur.
Configuration:aucune
Requis par: getContainerVersion
Signature de la requête:queryPermission('read_container_data')
Remarque:Détermine si un modèle personnalisé peut lire des données concernant le conteneur.
Exemple de code
const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
version = getContainerVersion();
}
read_event_metadata
Nom à afficher:lit les métadonnées d'événement
Description:lit les métadonnées d'événement dans les rappels d'événements
Configuration:aucune
Requis par: addEventCallback
Signature de la requête:queryPermission('read_event_metadata')
Remarque:Détermine si un modèle personnalisé peut lire les métadonnées d'événements dans les rappels.
Exemple de code
const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
addEventCallback((containerId, eventMetadata) => {
// Read event metadata.
});
}
read_title
Nom à afficher:lit le titre du document
Description:lit document.title
.
Configuration:aucune
Requis par: readTitle
Signature de la requête:queryPermission('read_title')
Remarques:Détermine si un modèle personnalisé peut lire l'document.title
.
Exemple de code
const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
const title = readTitle();
}
send_pixel
Nom à afficher:envoie des pixels
Description:envoie une requête GET à une URL spécifiée. La réponse n'est pas traitée.
Configuration:liste des formats d'URL autorisés.
Requis par: sendPixel
Signature de la requête:queryPermission('send_pixel', <url>)
Remarque:Ce paramètre détermine si un modèle personnalisé peut envoyer une requête GET et à quelle origine il peut le faire.
Exemple de code
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
Nom à afficher:définit un cookie
Description:définit un cookie avec le nom et les paramètres spécifiés.
Configuration:table des noms de cookies autorisés, chacun avec des restrictions facultatives sur le nom, le domaine, le chemin, l'attribut secure
et la date d'expiration.
Requis par: setCookie
Signature de la requête:queryPermission('set_cookies', <name>, <options>)
Remarque:Détermine si un cookie peut être écrit, en fonction du nom, du domaine, du chemin d'accès, de l'attribut secure
et de la date d'expiration du cookie.
Exemple de code
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
Nom à afficher:écrit la couche de données
Description:écrit des données dans la couche de données.
Configuration:ensemble d'expressions de correspondance, où une correspondance de clé peut être une série initiale de références en pointillés, suivies d'un caractère générique. Les expressions de correspondance de clés régissent les propriétés autorisées à écrire dans la couche de données.
Requis par: gtagSet
Signature de la requête:queryPermission('write_data_layer', <data layer key to
write from>)
Remarque:Détermine si un modèle personnalisé peut écrire dans la couche de données.
Exemple de code
const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
gtagSet({dlKey: 'baz'});
}