Серверные теги: контроль потоков без обещаний соответствия

Кратко

Перенос обработки тегов на сервер меняет архитектуру. Он не делает данные автоматически полными, анонимными или законными и не заменяет выбор людей.

Пустой разведывательный архив с досье и картами
В этой статье

Описать поток до переноса

Сбор может оставаться в браузере, затем идти на сервер и получателям. Consent Mode передаёт состояния и адаптирует поведение; сам он не даёт баннер выбора или юридическую проверку.

ЭтапКонтрольНужное свидетельство
Браузер или приложениеСобранные поля и выбор.Реально отправленные запросы.
Сервер сбораПроверка, фильтрация и доступ.Допущенные и отклонённые события.
ПолучательРеально переданные данные.Содержимое и правила согласия.
ЭксплуатацияХранение, права и восстановление.Проверки удаления, сбоя и доступа.

Проверять реальную передачу

  • Определите разрешённые поля и получателей по целям. Проверьте URL, параметры, идентификаторы и журналы до отправки; не предполагайте фильтрацию по умолчанию.
  • Проверьте согласие, отказ и изменение выбора по всей цепочке. Изучите браузер, серверный контейнер и каждое назначение.
  • Сверьте принятые, допущенные и пересланные события. Проверьте дубли, потери, сбой и восстановление, затем стоимость и нагрузку сервера.

Оценивать пользу и обязанности отдельно

Проверяйте скорость на сопоставимых путях; исходный сбор в браузере может остаться необходимым. Собственный домен не даёт исключения. Во Франции освобождение некоторых средств измерения аудитории условно и не охватывает автоматически рекламные теги.

Первоисточники

Серверная разметка тегов по-прежнему требует тестирования потока.

Перемещение тегов на сервер не делает автоматически измерения соответствующими требованиям или минимальными. Проверяйте отправленные запросы, получателей, идентификаторы и поведение после отказа в реальном развертывании.

  • Сопоставление браузера, сервера сбора данных, поставщиков и передаваемых полей.
  • Тестирование до выбора, после отказа и после отзыва согласия.
  • Сравнение настроек с заявленными целями и соответствующими условиями CNIL.

Первичный источник: CNIL — Outils de mesure d’audience et traceurs. Связанный метод: прочитать практическое руководство.

Квоты и ограничения API

Ограничения влияют на ёмкость, повторы и распределение между клиентами.

  • Запишите, относится ли квота к аккаунту, ключу или ресурсу, и сколько параллельных операций допускает клиент. Безграничная очередь может перегрузить сервис при невысокой средней частоте.
  • При 429 учитывайте Retry-After, если он есть, и подождите перед следующим запросом. Совмещайте растущую задержку и рассредоточение клиентов с пределом попыток и общим сроком.
  • После потери ответа на запись проверьте состояние до повтора. В имитации сочетайте квоты, поздние ответы и отмену: очередь должна завершиться без повторных эффектов.

Воспроизводимый приёмочный случай

Вымышленный пример: данные не описывают клиента или наблюдаемый результат.

Посмотреть данные случая
{
    "http_status": 429,
    "retry_after_seconds": 30,
    "workers": 20,
    "retry_budget": 3,
    "retry_budget_scope": "per_worker_retries_excluding_initial_request",
    "scheduling_example": {
        "response_received_at_seconds": 0,
        "illustrative_retry_seconds": [
            30,
            31,
            32,
            33,
            34
        ],
        "workers_per_second": 4,
        "alternative_deadline_seconds": 25,
        "total_attempts_if_all_retries_used": 80
    }
}

Ожидаемое решение

Выдержите 30 секунд, распределите повторы 20 обработчиков и ограничьте их количество.

Двадцать клиентов: распределить и посчитать повторы

Вымышленный пример: 20 обработчиков в момент +0 s получают 429 с Retry-After: 30. Расписание показывает один вариант распределения, не гарантируя мощности сервера. У каждого есть 3 повтора помимо исходного запроса.

ПравилоРасчёт или расписаниеРезультат
Одновременный повтор20 × 1 = 20 @ +30 sОжидание 30 секунд соблюдает задержку, но все 20 запросов возвращаются вместе. Всплеск нагрузки может повториться.
Распределённый повтор4 × 5 = 20 @ +30…+34 sЧетыре запроса в секунду в течение пяти секунд распределяют 20 повторов, не уменьшая их число. Пример расписания не заменяет политику нарастающих задержек со случайным разбросом.
Срок 25 секунд25 s < 30 s → 0Если оставшееся время меньше требуемых 30 секунд, остановитесь или отложите запрос согласно контракту. Не сокращайте ожидание ради срока.
Максимальный бюджет20 × (1 + 3) = 80Все попытки дают 20 исходных запросов и 60 повторов: всего 80. Ограничение не гарантирует успеха или безопасного повторения.

Процедура проверки

  1. Запишите область квоты и бюджет повторов.
  2. Исчерпайте квоту только в разрешённом тесте.
  3. Сохраните 429, Retry-After и ограниченную последовательность. Различайте техническое ограничение и результат операции: исчерпанную квоту нельзя превращать в сообщение о нулевом наличии.
  4. Симулируйте без внешней нагрузки четыре слоя по три общих вызова и посчитайте попытки.
  5. Просрочьте вымышленную задачу в очереди и проверьте отсутствие новой операции.
  6. Восстановите разрешённую работу постепенно после симулированного сбоя и сохраните вызовы, сроки и уникальные результаты.

AWS — Timeouts, retries, and backoff with jitter

Доказывает ли 429, что предыдущая запись не выполнилась?

Нет. Операция без ответа требует отдельной сверки; ответ на другую попытку не подтверждает её состояние.

Первичный источник: IETF — RFC 6585, HTTP 429. Связанный метод: прочитать практическое руководство.

Границы измерения углерода

Сравнение требует общих границ и функциональной единицы.

  • Перечислите компоненты, регион, период и функциональную единицу, например завершённую операцию. Сравнивайте сценарии с одинаковой предоставленной услугой.
  • Запишите энергию, коэффициент выбросов и выделенную долю оборудования. Различайте измерение и оценку; исключённый компонент не означает нулевой след.
  • Вымышленный пример: (12 + 3) gCO2e / 5 операций = 3 gCO2e на операцию. Меняйте неопределённые допущения и сравнивайте суммарные выбросы.

Воспроизводимый приёмочный случай

Вымышленный пример: данные не описывают клиента или наблюдаемый результат.

Посмотреть данные случая
{
    "functional_unit": "accepted_task",
    "energy_kWh": 2,
    "intensity_gCO2e_per_kWh": 100,
    "embodied_gCO2e": 50,
    "accepted_tasks": 100,
    "SCI_gCO2e_per_task": 2.5
}

Ожидаемое решение

(2 × 100 + 50)/100 = 2,5 г CO2e на задачу, только в заявленных границах.

Процедура проверки

  1. Определите границы, функциональную единицу и коэффициенты.
  2. Разделите энергию, воплощённые выбросы и результаты.
  3. Сохраните происхождение и расчёт без скрытых компенсаций.

Green Software Foundation — Software Carbon Intensity

Первичный источник: Green Software Foundation — Software Carbon Intensity. Связанный метод: прочитать практическое руководство.

API: не допускать умножения попыток между слоями

Приложение, SDK, прокси и сервис могут повторять один вызов. Четыре вымышленных слоя с тремя общими попытками каждый дают до 81 вызова неисправной зависимости. Добавьте общий бюджет и полезный срок к контролю квот.

  • Опишите автоматические попытки приложения, SDK, прокси и зависимостей. Выберите ответственный слой и отключите или согласуйте дополнительные повторы. Считайте начальную попытку в бюджете. Сохраняйте ID операции и проверяйте неопределённые эффекты до неидемпотентного повтора.
  • Задайте общий срок ожидания, соединения и обработки с реальными ограничениями клиента. Отклоните просроченные задачи до очереди. Локальная отмена не доказывает остановку сервера: сверяйте состояние. Восстанавливайте трафик постепенно без запуска всех очередей сразу.

Три попытки на слой означают три всего?

Нет. Четыре вымышленных слоя по три общие попытки дают до 3⁴ = 81 последнего вызова.

Истечение срока отменяет удалённый эффект?

Не обязательно. Оно предотвращает новую устаревшую работу; начатая операция требует проверки состояния и возможной компенсации.

Первичный источник: AWS — Timeouts, retries, and backoff with jitter. Связанный метод: прочитать практическое руководство.