Пользовательские политики шаблонов

Политики реализуются на веб-странице. Когда контейнер запускается на странице, к определениям пользовательских шаблонов Диспетчера тегов применяются политики, позволяющие контролировать использование определенных функций и возможностей. Политики реализуются с помощью API gtag('policy', ...) .

Для API gtag('policy', ...) требуются определения dataLayer и gtag() . Убедитесь, что dataLayer и gtag() определены в вашем коде, прежде чем gtag('policy', ...) будет вызываться позже в скрипте:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

Используйте API gtag('policy', ...) на веб-странице, чтобы установить политики для разрешений настраиваемых шаблонов :

gtag('policy', <permissionId>, <function>)

Аргумент <permissionId> — это любой из поддерживаемых типов разрешений, например inject_script . Политика будет вызываться всякий раз, когда контейнер захочет проверить, разрешено ли это разрешение.

gtag('policy', 'inject_script', function(containerId, permissionId, data) {
 
// Specific inject_script check goes here.
});

Укажите 'all' , чтобы взаимодействовать со всеми проверками политики.

gtag('policy', 'all', function(containerId, permissionId, data) {
 
// System-wide check goes here.
});

Третий аргумент — <function> — это функция, реализующая указанную политику с такой сигнатурой:

function(containerId, permissionId, data) {...}
  • containerId — идентификатор контейнера Диспетчера тегов, например 'GTM-1234' .
  • permissionId — это строка, указывающая тип проверяемой политики.
  • data — это объект, который содержит любую информацию, соответствующую указанному типу разрешения, например, 'url' для разрешения 'send_pixel' .

Функция политики отклоняет запрос разрешения, если он возвращает false или генерирует исключение. Любые исключения с типом string или Error будут отображаться в разделе «Ошибки» на панели отладки, когда включен режим предварительного просмотра . Если зарегистрировано несколько проверок политики, вызывается каждая проверка, и каждая проверка имеет возможность отклонить запрос политики.

В этом примере создается политика, которая проверяет разрешение 'inject_script' :

gtag('policy', 'inject_script', function(containerId, permissionId, data) {

 
// reference the url of the script to be injected
  let url
= data.url || '';

 
// if the url of the injected script exactly matches, allow it.
 
// otherwise throw an error
 
if (url === 'https://scripts.example.com/analytics.js') {
   
return true;
 
} else {
   
throw 'Only permitted to inject https://scripts.example.com/analytics.js';
 
}
});

В этом примере ключевое слово 'all' используется для проверки нескольких сценариев политики:

gtag('policy', 'all', function(containerId, permissionId, data) {

 
// Only set policy for 1 specific container.
 
// This enables other containers loaded on the page to
 
// operate without restrictions on permissions.
 
if (container != 'GTM-4321') return true;

 
// Since the policy is 'all', adjust permissions conditionally.
 
switch (permissionId) {

   
case 'send_pixel':
     
return true;

   
case 'write_globals':
     
return data.key && data.key == '_gaq';

   
case 'inject_script':
      let url
= data.url || '';
     
if (url.indexOf('https://example.com') != 0)
       
throw 'Only example.com scripts are permitted';

   
default:
     
// IT staff decides that all unknown permissions
     
// are rejected.
     
return false;
 
}
});
,

Политики реализуются на веб-странице. Когда контейнер запускается на странице, к определениям пользовательских шаблонов Диспетчера тегов применяются политики, позволяющие контролировать использование определенных функций и возможностей. Политики реализуются с помощью API gtag('policy', ...) .

Для API gtag('policy', ...) требуются определения dataLayer и gtag() . Убедитесь, что dataLayer и gtag() определены в вашем коде, прежде чем gtag('policy', ...) будет вызываться позже в скрипте:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

Используйте API gtag('policy', ...) на веб-странице, чтобы установить политики для разрешений настраиваемых шаблонов :

gtag('policy', <permissionId>, <function>)

Аргумент <permissionId> — это любой из поддерживаемых типов разрешений, например inject_script . Политика будет вызываться всякий раз, когда контейнер захочет проверить, разрешено ли это разрешение.

gtag('policy', 'inject_script', function(containerId, permissionId, data) {
 
// Specific inject_script check goes here.
});

Укажите 'all' , чтобы взаимодействовать со всеми проверками политики.

gtag('policy', 'all', function(containerId, permissionId, data) {
 
// System-wide check goes here.
});

Третий аргумент — <function> — это функция, реализующая указанную политику с такой сигнатурой:

function(containerId, permissionId, data) {...}
  • containerId — идентификатор контейнера Диспетчера тегов, например 'GTM-1234' .
  • permissionId — это строка, указывающая тип проверяемой политики.
  • data — это объект, который содержит любую соответствующую информацию для указанного типа разрешения, например 'url' для разрешения 'send_pixel' .

Функция политики отклоняет запрос разрешения, если он возвращает false или генерирует исключение. Любые исключения с типом string или Error будут отображаться в разделе «Ошибки» на панели отладки, когда включен режим предварительного просмотра . Если зарегистрировано несколько проверок политики, вызывается каждая проверка, и каждая проверка имеет возможность отклонить запрос политики.

В этом примере создается политика, которая проверяет разрешение 'inject_script' :

gtag('policy', 'inject_script', function(containerId, permissionId, data) {

 
// reference the url of the script to be injected
  let url
= data.url || '';

 
// if the url of the injected script exactly matches, allow it.
 
// otherwise throw an error
 
if (url === 'https://scripts.example.com/analytics.js') {
   
return true;
 
} else {
   
throw 'Only permitted to inject https://scripts.example.com/analytics.js';
 
}
});

В этом примере ключевое слово 'all' используется для проверки нескольких сценариев политики:

gtag('policy', 'all', function(containerId, permissionId, data) {

 
// Only set policy for 1 specific container.
 
// This enables other containers loaded on the page to
 
// operate without restrictions on permissions.
 
if (container != 'GTM-4321') return true;

 
// Since the policy is 'all', adjust permissions conditionally.
 
switch (permissionId) {

   
case 'send_pixel':
     
return true;

   
case 'write_globals':
     
return data.key && data.key == '_gaq';

   
case 'inject_script':
      let url
= data.url || '';
     
if (url.indexOf('https://example.com') != 0)
       
throw 'Only example.com scripts are permitted';

   
default:
     
// IT staff decides that all unknown permissions
     
// are rejected.
     
return false;
 
}
});
,

Политики реализуются на веб-странице. Когда контейнер запускается на странице, к определениям пользовательских шаблонов Диспетчера тегов применяются политики, позволяющие контролировать использование определенных функций и возможностей. Политики реализуются с помощью API gtag('policy', ...) .

Для API gtag('policy', ...) требуются определения dataLayer и gtag() . Убедитесь, что dataLayer и gtag() определены в вашем коде, прежде чем gtag('policy', ...) будет вызываться позже в скрипте:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

Используйте API gtag('policy', ...) на веб-странице, чтобы установить политики для разрешений настраиваемых шаблонов :

gtag('policy', <permissionId>, <function>)

Аргумент <permissionId> — это любой из поддерживаемых типов разрешений, например inject_script . Политика будет вызываться всякий раз, когда контейнер захочет проверить, разрешено ли это разрешение.

gtag('policy', 'inject_script', function(containerId, permissionId, data) {
 
// Specific inject_script check goes here.
});

Укажите 'all' , чтобы взаимодействовать со всеми проверками политики.

gtag('policy', 'all', function(containerId, permissionId, data) {
 
// System-wide check goes here.
});

Третий аргумент — <function> — это функция, реализующая указанную политику с такой сигнатурой:

function(containerId, permissionId, data) {...}
  • containerId — идентификатор контейнера Диспетчера тегов, например 'GTM-1234' .
  • permissionId — это строка, указывающая тип проверяемой политики.
  • data — это объект, который содержит любую информацию, соответствующую указанному типу разрешения, например, 'url' для разрешения 'send_pixel' .

Функция политики отклоняет запрос разрешения, если он возвращает false или генерирует исключение. Любые исключения с типом string или Error будут отображаться в разделе «Ошибки» на панели отладки, когда включен режим предварительного просмотра . Если зарегистрировано несколько проверок политики, вызывается каждая проверка, и каждая проверка имеет возможность отклонить запрос политики.

В этом примере создается политика, которая проверяет разрешение 'inject_script' :

gtag('policy', 'inject_script', function(containerId, permissionId, data) {

 
// reference the url of the script to be injected
  let url
= data.url || '';

 
// if the url of the injected script exactly matches, allow it.
 
// otherwise throw an error
 
if (url === 'https://scripts.example.com/analytics.js') {
   
return true;
 
} else {
   
throw 'Only permitted to inject https://scripts.example.com/analytics.js';
 
}
});

В этом примере ключевое слово 'all' используется для проверки нескольких сценариев политики:

gtag('policy', 'all', function(containerId, permissionId, data) {

 
// Only set policy for 1 specific container.
 
// This enables other containers loaded on the page to
 
// operate without restrictions on permissions.
 
if (container != 'GTM-4321') return true;

 
// Since the policy is 'all', adjust permissions conditionally.
 
switch (permissionId) {

   
case 'send_pixel':
     
return true;

   
case 'write_globals':
     
return data.key && data.key == '_gaq';

   
case 'inject_script':
      let url
= data.url || '';
     
if (url.indexOf('https://example.com') != 0)
       
throw 'Only example.com scripts are permitted';

   
default:
     
// IT staff decides that all unknown permissions
     
// are rejected.
     
return false;
 
}
});
,

Политики реализуются на веб-странице. Когда контейнер запускается на странице, к определениям пользовательских шаблонов Диспетчера тегов применяются политики, позволяющие контролировать использование определенных функций и возможностей. Политики реализуются с помощью API gtag('policy', ...) .

Для API gtag('policy', ...) требуются определения dataLayer и gtag() . Убедитесь, что dataLayer и gtag() определены в вашем коде, прежде чем gtag('policy', ...) будет вызываться позже в скрипте:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

Используйте API gtag('policy', ...) на веб-странице, чтобы установить политики для разрешений настраиваемых шаблонов :

gtag('policy', <permissionId>, <function>)

Аргумент <permissionId> — это любой из поддерживаемых типов разрешений, например inject_script . Политика будет вызываться всякий раз, когда контейнер захочет проверить, разрешено ли это разрешение.

gtag('policy', 'inject_script', function(containerId, permissionId, data) {
 
// Specific inject_script check goes here.
});

Укажите 'all' , чтобы взаимодействовать со всеми проверками политики.

gtag('policy', 'all', function(containerId, permissionId, data) {
 
// System-wide check goes here.
});

Третий аргумент — <function> — это функция, реализующая указанную политику с такой сигнатурой:

function(containerId, permissionId, data) {...}
  • containerId — идентификатор контейнера Диспетчера тегов, например 'GTM-1234' .
  • permissionId — это строка, указывающая тип проверяемой политики.
  • data — это объект, который содержит любую информацию, соответствующую указанному типу разрешения, например, 'url' для разрешения 'send_pixel' .

Функция политики отклоняет запрос разрешения, если он возвращает false или генерирует исключение. Любые исключения с типом string или Error будут отображаться в разделе «Ошибки» на панели отладки, когда включен режим предварительного просмотра . Если зарегистрировано несколько проверок политики, вызывается каждая проверка, и каждая проверка имеет возможность отклонить запрос политики.

В этом примере создается политика, которая проверяет разрешение 'inject_script' :

gtag('policy', 'inject_script', function(containerId, permissionId, data) {

 
// reference the url of the script to be injected
  let url
= data.url || '';

 
// if the url of the injected script exactly matches, allow it.
 
// otherwise throw an error
 
if (url === 'https://scripts.example.com/analytics.js') {
   
return true;
 
} else {
   
throw 'Only permitted to inject https://scripts.example.com/analytics.js';
 
}
});

В этом примере ключевое слово 'all' используется для проверки нескольких сценариев политики:

gtag('policy', 'all', function(containerId, permissionId, data) {

 
// Only set policy for 1 specific container.
 
// This enables other containers loaded on the page to
 
// operate without restrictions on permissions.
 
if (container != 'GTM-4321') return true;

 
// Since the policy is 'all', adjust permissions conditionally.
 
switch (permissionId) {

   
case 'send_pixel':
     
return true;

   
case 'write_globals':
     
return data.key && data.key == '_gaq';

   
case 'inject_script':
      let url
= data.url || '';
     
if (url.indexOf('https://example.com') != 0)
       
throw 'Only example.com scripts are permitted';

   
default:
     
// IT staff decides that all unknown permissions
     
// are rejected.
     
return false;
 
}
});