Настройка изолированной политики JavaScript

Вы можете настроить сценарий политики, который ограничивает разрешения серверного контейнера. На этой странице показано, как настроить файл политики для вашего контейнера. В этих инструкциях предполагается, что вы уже знакомы с политиками пользовательских шаблонов для Диспетчера тегов.

Файл политики на стороне сервера – это файл JavaScript, который использует синтаксис gtag.js для определения и регистрации одной или нескольких политик.

  1. Создайте файл JavaScript, который создает и регистрирует одну или несколько политик. Каждая функция политики регистрируется для определенного разрешения или для всех разрешений. Функция политики отклоняет запрос разрешения, если он возвращает false или генерирует исключение. Например:

    gtag('policy', 'all', function(container, policy, data) {
      // This function will run for every permission check. Return true to
      // allow the permission check. Return false or throw an exception to
      // deny the permission check.
    
      // container is the container id (e.g. GTM-ABC123)
      // policy is the permission type (e.g. get_cookies)
      // data is an object containing data about the permission request
    
      // This policy applies to only one container. This check allows the
      // same policy file to apply to more than one Tag Manager server
      // container.
      if (container !== 'GTM-ABC123') return true;
    
      // Since this code runs on all permission checks, conditionally check
      // the permission type and decide to permit or deny the permission.
      switch (policy) {
    
        // Container GTM-ABC123 can send HTTP requests. Everything else is
        // prohibited.
        case 'send_http':
          return true;
    
        // All other permission requests are denied.
        default:
          return false;
      }
    });
    
    gtag('policy', 'get_cookies', function(container, policy, data) {
      // This function will run for checks on the get_cookies permission.
    
      // Deny all permission checks to read cookies except for the 'user_id'
      // cookie. This check applies to all containers that load this policy
      // file.
      return data.name === 'user_id';
    });
    
  2. Разместите файл JavaScript по общедоступному URL-адресу HTTPS. Файл может быть размещен на любом веб-сервере, но ниже описано, как разместить его в сегменте облачного хранилища Google.

    1. Перейдите на console.cloud.google.com и выберите свой проект вверху страницы.
    2. Выберите «Хранилище» -> «Браузер» в левой части навигации.
    3. Нажмите Создать сегмент .
    4. Следуйте инструкциям по созданию сегмента. Для контроля доступа выберите «Детальный» .
    5. Нажмите Загрузить файлы и загрузите файл JavaScript вашей политики.
    6. После загрузки файла нажмите на имя файла, затем выберите «Изменить разрешения» .
    7. Нажмите Добавить запись с помощью:
      • Объект: Публичный
      • Имя: allUsers
      • Доступ: Читатель
    8. Нажмите Сохранить .
    9. Нажмите стрелка назад для возврата на предыдущую страницу.
    10. В строке файла политики нажмите «Копировать URL» .
  3. Следуйте инструкциям в разделе «Создание или перенастройка сервера тегов», чтобы изменить конфигурацию сервера тегов. При появлении запроса на URL-адрес политики введите URL-адрес из шага 2.