Проблема
На нескольких сайтах есть расхождения, это вообще проблема?
Когда мы начали расследование расхождений, у нас было ~10 интегрированных издателей. Было несколько из них (2-3), где у нас было расхождение выше 5%, но остальные были в порядке.
Мы потратили несколько месяцев на то, чтобы исправить несоответствие для конкретного веб-мастера, и за это время клиент подумал, что система полностью нефункциональна, и мы недостаточно компетентны, чтобы исправить это.
Решение
В AdTech часто встречаются расхождения, отслеживайте их влияние на бизнес, а не их абсолютные значения.
Фактически, с точки зрения бизнеса, наша система дала общее расхождение менее 5%, и 7 из 10 веб-сайтов работали должным образом. Это соответствует отраслевым стандартам для систем AdTech и считается хорошим.
Изначально заказчик настаивал на расследовании конкретных случаев с проблемными веб-сайтами, но, увидев общую перспективу, понял, что влияние на бизнес незначительно. Они смогут получать доход от системы и платить издателям, имея разницу в отчетах < 5%. Это разблокировало запуск проекта.
Проблема
Вроде все работает нормально, но мы видим несоответствие, что дальше?
Первоначальная оценка трекера показала, что в процессе отслеживания показов ошибок не бывает, а преобразованные данные отчетов соответствуют сырым данным о показах.
Было неясно, что можно сделать, если ничего не выходит из строя, поэтому было весьма заманчиво проигнорировать проблему.
Решение
Ежедневно отслеживайте данные и систематически оценивайте гипотезы.
Прежде всего, мы создали электронную таблицу для отслеживания расхождений, в которую ежедневно собирали данные о расхождениях.
Это был основной инструмент, который позволил нам оценивать все последующие эксперименты.
Системный подход
1. Выдвинуть гипотезу, которая могла бы объяснить причину проблемы
2. Создать простой тест, который мог бы подтвердить/опровергнуть гипотезу
3. Провести эксперимент, чтобы проверить гипотезу
4. Если эксперимент прошел успешно, внедрить полное исправление, требуемое гипотезой
Это позволило нам ежедневно перебирать гипотезы и быстро отказываться от сложных идей. Кроме того, это дало клиенту полное понимание ситуации и уверенность в том, что мы достаточно компетентны, чтобы справиться с ней.
О гипотезе
Говоря о гипотезе, мы рассмотрели три основные области процесса отслеживания, где мы можем потерять показы:
AdServer: выбирает победивший креатив и показывает его
Клиент: отображает рекламу и запускает уведомление о показе
Трекер: хранит и обрабатывает показы
Проблема
жедневно требуется час для сбора данных о расхождениях.
Первоначально мы собирали данные о расхождениях вручную, отфильтровывая необработанные отчеты по электронной почте от партнерских интеграций для конкретных сайтов, которые нам нужны.
Это работало, когда мы мониторили 2-3 интеграции и 3-4 сайта. Когда мы начали масштабировать платформу, мы ежедневно тратили около 1 часа на сбор необходимой статистики.
Решение
Автоматизировать мониторинг расхождений
Мы создали процесс, который автоматически извлекает отчеты
из почтового ящика по мере их поступления, обрабатывает
их и сохраняет сводную статистику в базе данных SQL.
Позже данные можно было легко визуализировать в Grafana
или проанализировать в любом редакторе SQL.
Это позволило нам сделать данные доступными в одном централизованном месте с другими бизнес-метриками платформы и масштабировать мониторинг до 150+ веб-сайтов.
Проблема
Простой вопрос о данных требует часов программирования электронных таблиц.
Поскольку мы полагались либо на электронные таблицы, либо на автоматизированные скрипты, нам было сложно ответить на такие вопросы, как «какова разбивка показов по устройствам за последние 30 дней».
Нам приходилось либо создавать огромные электронные таблицы, либо изменять код, чтобы получить такие результаты, и на это уходили часы работы.
Решение
Сделали необработанные данные доступными для специальных запросов через Athena.
Мы изменили процедуру сбора расхождений, чтобы поместить
в S3 необработанные неагрегированные отчеты, полученные
в результате интеграции с файлами CSV. Затем мы настроили Athena для создания таблиц из этих файлов и сделали данные доступными для запросов. Это позволило нам быстро оценить гипотезы, связанные с данными, и объединить несколько источников данных, чтобы ответить на сложные вопросы (например, какие запросы от вспомогательного трекера также были захвачены нашим трекером, если мы знаем, что креатив был отображен).