Ce document décrit les autorisations des modèles personnalisés Web.
Chaque autorisation est:
- Vérifié par les API qui en ont besoin.
- Détection automatique dans le code JavaScript de bac à sable, en fonction des API utilisées. Cela se produit lorsque des modifications sont effectuées dans l'éditeur de modèle personnalisé boucle de rétroaction) et quand le code est compilé (pour vérifier que les bonnes si des autorisations sont appliquées).
- Modifiable dans l'éditeur de modèles personnalisés pour rendre l'autorisation plus spécifique.
- Interrogable dans le code JavaScript de bac à sable via l'API
queryPermission
.
access_globals
Display name (Nom à afficher) : accède aux variables globales
Description:autorise l'accès à une variable globale (comprenant éventuellement des API sensibles).
Configuration:liste des clés accessibles. Chaque clé est un point
un chemin d'accès séparé. Par exemple: foo.bar
. Le premier jeton de chaque chemin d'accès ne doit pas être
une clé prédéfinie sur le champ d'application global du navigateur ni un mot clé JavaScript. A lu,
des cases d’écriture et d’exécution
qui régissent l’accès.
Requis par:setInWindow
, copyFromWindow
, callInWindow
,
createQueue
et createArgumentsQueue
Signature de requête:queryPermission('access_globals', 'read', <key to read
from>)
ou queryPermission('access_globals', 'write', <key to write to>)
ou
queryPermission('access_globals', 'readwrite', <key to read and write>)
ou
queryPermission('access_globals', 'execute', <key of function to execute>)
Remarques:Détermine si un modèle personnalisé peut lire et/ou écrire dans des valeurs.
Exemple de code
const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
const dataLayerPush = createQueue('dataLayer');
}
access_local_storage
Nom à afficher:accède au stockage local
Description:autorise l'accès aux clés spécifiées dans le stockage local.
Configuration:liste des clés de stockage locales accessibles. Il s'agit d'un simple tableau de clés, sans caractères génériques. Contient des cases à cocher en lecture et en écriture qui 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 à l'espace de stockage des modèles
Description:permet d'accéder à l'espace de stockage temporaire pour les modèles sont conservées pendant toute la durée de vie de la page.
Configuration:aucune
Requis par: templateStorage
Signature de 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 de cookies pouvant être lus.
Requis par: getCookieValues
Signature de requête:queryPermission('get_cookies', <name>)
Remarques : 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 lues. 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 qu'un composant soit spécifié pour
obtenir l'URL de provenance complète si toutes ces valeurs booléennes sont définies sur true
. Si aucune valeur
est défini, la valeur par défaut est all
. Si une valeur est définie, elle doit être une
tableau de composants, avec 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 des
clés de requête qu'ils peuvent lire. Il s'agit d'un simple tableau de clés, sans
et utiliser des caractères génériques.
Requis par: getReferrerUrl
, getReferrerQueryParameters
Signature de 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:renvoie une partie ou la totalité de l'URL de la page active.
Configuration:les valeurs booléennes suivantes déterminent quelle partie de l'URL peut être
lire. Une partie donnée de l'URL ne peut être lue que si la partie correspondante est
"true". L'appelant peut appeler getUrl
sans spécifier de composant pour obtenir la
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, elle doit être un tableau
des composants dont l'un des composants est l'un des 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 des
clés de requête qu'ils peuvent lire. Il s'agit d'un simple tableau de clés, sans
et utiliser des caractères génériques.
Requis par: getUrl
Signature de requête:queryPermission('get_url', <optional url component>,
<optional query key>)
S'il est fourni, le composant d'URL doit être l'un des éléments suivants : 'protocol'
, 'host'
, 'port'
,
'path'
, 'query'
, 'extension'
et 'fragment'
. Si cette valeur est omise, l'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 modèle code veut lire.
Remarques:Détermine si un modèle personnalisé peut lire les données l'emplacement. Permet de se limiter à une partie spécifique du lieu.
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 les iFrames masqués.
Description:injecte un iFrame invisible avec une URL donnée.
Configuration:liste des formats d'URL
Requis par: injectHiddenIframe
Signature de requête:queryPermission('inject_hidden_iframe', <url>)
Remarque:détermine si un modèle personnalisé peut injecter un iFrame invisible ou non. à 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:injecte des scripts
Description:injecte un script dans la page.
Configuration:liste des formats d'URL
Requis par: injectScript
Signature de requête:queryPermission('inject_script', <url>)
Remarque:Détermine si un modèle personnalisé peut injecter du code JavaScript son origine.
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:se connecte à la console
Description:connecte la Play Console et le mode Aperçu de GTM.
Configuration:option permettant d'activer la journalisation en production. La valeur par défaut est uniquement
activer la journalisation dans la version "debug/preview". Si l'autorisation est refusée, logToConsole
ne génèrent pas d'erreur, mais
supprime le message de journal.
Requis par: logToConsole
Signature de requête:queryPermission('logging')
Remarques:Détermine si un modèle personnalisé peut se connecter à la Play Console.
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 peut être série de début de référence en pointillés, suivie d'un caractère générique. Correspondance des clés Les expressions déterminent quelles propriétés peuvent être lues à partir de la couche de données.
Requis par: copyFromDataLayer
Signature de requête:queryPermission('read_data_layer', <data layer key to read
from>)
Remarques:Détermine si un modèle personnalisé peut lire à partir 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 requête:queryPermission('read_character_set')
Remarque:Détermine si un modèle personnalisé peut lire les 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 concernant le conteneur.
Configuration:aucune
Requis par: getContainerVersion
Signature de requête:queryPermission('read_container_data')
Remarques: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 requête:queryPermission('read_event_metadata')
Remarque:Détermine si un modèle personnalisé peut lire les métadonnées d'événement dans .
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 requête:queryPermission('read_title')
Remarque:Détermine si un modèle personnalisé peut lire les 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 requête:queryPermission('send_pixel', <url>)
Remarque:détermine si un modèle personnalisé peut envoyer une demande GET et si son origine.
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:tableau des noms de cookies autorisés, chacun avec des noms de cookies
des restrictions sur le nom, le domaine, le chemin d'accès, l'attribut secure
et l'expiration.
Requis par: setCookie
Signature de requête:queryPermission('set_cookies', <name>, <options>)
Remarque:Détermine si un cookie peut être écrit, en fonction du cookie.
le nom, le domaine, le chemin d'accès, l'attribut secure
et le délai d'expiration.
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 peut être série de début de référence en pointillés, suivie d'un caractère générique. Correspondance des clés Les expressions déterminent quelles propriétés peuvent écrire dans la couche de données.
Requis par: gtagSet
Signature de requête:queryPermission('write_data_layer', <data layer key to
write from>)
Remarques: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'});
}