Autorisations pour les modèles personnalisés

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