Атрибуция через SKAN
By Sergey DudkoВ сегодняшней статье мы с вами разберем на первый взгяд достаточно сложную тему мобильного маркетинга последних лет – SKAdNetwork. Мы простыми словами поговорим о том, как работает система, в чем отличие последней версии SKAN 4.0 от предыдущих, рассмотрим кейсы из индустрии, в том числе расскажу про свои кейсы для рекламных и для подписочных приложений.

Давайте быстро пройдемся по определению из справки Appsflyer.
SKAd Network это сокращение StoreKit Ad Network. Это фреймворк атрибуции установок от Apple, позволяющий измерять эффективность рекламы на iOS при соблюдении конфиденциальности пользователей
Давайте сразу разберем основные термины, которыми будем оперировать в дальнейшем.
Постбек (postback) – специальное уведомление, которое отправляется от имени Apple рекламной сети и рекламодателю с информацией об атрибуции установки. Проще говоря, после конверсии (установки приложения) Apple отправляет зашифрованный “пакет” данных – постбек – содержащий основные сведения о скачивании (ID приложения, ID рекламной сети, номер кампании, Conversion Value и пр.). Никаких индивидуальных параметром при этом не отправляется: нет ни IP-адреса, ни IDFA.
Окно активности - период измерения, в течение которого SKAN наблюдает поведение пользователя и позволяет вашему приложению обновлять Conversion Value. После установки приложения SKAdNetwork запускает таймер не менее чем на 24 часа перед отправкой постбека. Подробнее о работе этого механизма позже.
Conversion Value (конверсионное значение) – числовой код, который приложение присваивает пользователю на основе его активности во время «окна активности».
Порог конфиденциальности (privacy threshold) – механизм SKAdNetwork, гарантирующий, что данные будут переданы только если набралось достаточное количество событий, чтобы их нельзя было отнести к конкретному пользователю. Если кампания имеет мало установок, Apple может не прислать Conversion Value вовсе (CV = “null”) для части или всех постбеков
Conversion Value - схема — если просто, то это заранее спроектированные правила, по которым будем отслеживать действия пользователя. Своего рода ограниченный 6 битами MMP для настройки ивентов. Ниже разберем возможности и кейсы.
Давайте теперь шаг за шагом разберем атрибуцию с использованием SKAN.
- После клика на рекламу SKAdNetwork зафиксирует клик и переход пользователя в стор.
- Если приложение было установлено в пределах атрибуционного окна, система засчитает установку соответствующей рекламе и соответствующему сорсу.
- На устройстве при этом будет запущен таймер (24 часа) и будет зафиксировано начальное значение Conversion Value = 0. У пользователя начинается «окно активности».
- Если пользователь продолжает активность в приложении, совершая действия, которые были заложены в CV-схеме, тогда таймер в 24ч сбрасывается и «окно активности» продлевается. Система дальше будет ждать, пока либо не истечёт 24 часа без новых событий, либо не пройдёт максимальный период отслеживания для отправки постбека.
- После завершения окна активности существует задержка 0-24 часа перед тем, как постбек будет отправлен. То есть, если у нас есть пользователь, который совершил только установку приложения, то мы об этом узнаем через 24-48 часов.
Графически это выглядит вот так:

Как видим, данная модель атрибуции не похожа на предыдущие существующие модели в мобильном маркетинге. Самый важный нюанс, атрибуция через SKAN вовсе не когортная, что сильно усложняет аналитику рекламных кампаний.
Как правило, для аналитики компании пробуют подстраивать результаты под когортную логику, сдвигая полученный результат из SKAN на 3 дня назад.
Настраиваем CV схему для аналитики того минимально возможного поведения, которое позволяет Apple.
Как уже успел отметить, Apple не дает нам сильно развернуться при отслеживании действий от аудитории, которую мы закупили. Что же у нас есть?
Conversion Value (CV) – это число от 0 до 63 (в 6 битном формате), которое приложение назначает установке, чтобы отразить достигнутые пользователем действия за окно активности. В самом начале CV будет равняться нулю (CV = 0), что означает простую установку. Разработчики могут настроить логику: при наступлении определённых событий обновлять CV с новым более высоким значением. SKAdNetwork запомнит наибольшее полученное значение и включит его в постбек.
Технически CV представляет собой 6 бит (двойное значение от 000000₂ до 111111₂). Это означает, что у нас 64 возможных кодов для обозначения различных комбинаций событий. Например, 000001₂ = 1, 000010₂ = 2, ..., 111111₂ = 63. Разработчик сам решает, что будет означать каждая комбинация битов. Схемы можно условно разделить на две категории: флаговые (побитовые) и метрические (диапазоны), а также гибридные.
Давайте еще упростим. В постбеке нам может прийти только одно вот такое число, ниже примеры:
000000
010010
000010
И тд.
Исходя из понимания, что мы получаем только одно подобное число, мы можем засетапить CV схему со следующими подходами:
Флаговая схема
Если упрощенно, то при таком подходе мы просто к каждому биту можем подвязать определенное событие. И при совершении события будем присваивать биту единицу, а при несовершении события – ноль. Получается, что через данный подход можно отслеживать до 6 ивентов, которые могут быть абсолютно несвязанными между собой.
Данный формат отлично подходит для подписочных приложений. Мы знаем, что в первый день приходит около 80% триалов, которые конвертируются в подписки на 7-й день. Значит мы можем в CV схему забить следующие события:
- Start trial (активация триала)
- Subscription Started (Начало подписки)
- Subscription Canceled (отмена подписки до момента окончания триала)
Таким образом, на момент прихода постбека мы будем знать, сколько у нас случилось первых триалов, подписок и отмененных триалов. А далее на основании исторических данных мы можем сделать прогноз, какой будет LTV и ROAS, соответственно.
На своих проектам с подписочной моделью мы использовали именно такой подход. Для предикта брали исторические данные. И активно смотрели на CPE (цена за старт триала) в SKAN отчете, тк было четкое понимание, какая цена должна быть у триала на конкретном источнике, чтобы это было в плюс для нас.
Метрическая схема
Если вернемся еще раз к числу 000001, то можно заметить, что мы можем составить здесь 63 различные комбинации из нулей и единиц. С учетом этого мы можем каждой такой комбинации задать свой собственный ивент, который будет отправляться с постбеком. Важный нюанс, мы можем отправить всего одно значение числа. Поэтому на практике обычно забивают ивенты от менее приоритетного к более приоритетному по мере роста значений битов.
Давайте перейдем к примерам. Обычно данный подход используется у мобильных приложений, у которых основной доход за счет рекламы. Компании разбивают полученный доход от пользователя за окно активности и присваивают диапазону свой CV. Например, CV=0 – пользователь не принёс дохода, CV=1 – доход от $0.01 до $0.99, CV=2 – от $1 до $1.99, ..., CV=10 – свыше $9.99. Таких диапазонов можно задать до 63 штук. Альтернативно, можно отслеживать количество просмотренных реклам, количество открытых уровней, очки и любой другой числовой показатель, который позволит примерно прикинуть, какое у пользователя качество, и какой доход он мог принести за примерно 24 часа.
Далее на основании исторических данных можно сделать прогноз, какой может быть доход на ключевой день.
На своих проектах с рекламной монетизацией мы следовали именно этому подходу. Для предикта использовали исторические данные проекта. И при сравнении предиктивных LTV видели, что значения достаточно схожие с Probabilictic атрибуцией.
Также оба обозначенных выше подхода можно комбинировать, если у вас есть идеи, как можно более точно получить информацию о поведении и сделать предикт. Если используете MMP Appslyer или Adjust, то там есть примеры сетапов подобных схем. А также можно всегда обратиться к менеджерам, которые помогут подобрать схему для вашего проекта. В частности, у меня есть опыт сотрудничества с командой Adjust, которые помогли собрать схему и даже сделать предикты на более далекий ключевой день на основании исторических данных.
Как вы уже успели заметить, оба подхода используют исторические данные проекта для прогнозирования. Причем, прогноз делается на данных, который мы получили за окно активности пользователя, которое длится 24-72 часа, что достаточно короткий срок.
Поэтому, если мы работаем с новым проектом, то у нас есть проблемы с аналитикой. Не представляю, о чем именно думали Apple, когда решили практически полностью убрать нормальную аналитику в мобильном маркетинге.
У SKAN есть также версия 4.0, которая отличается от предыдущих версий существенно. Об этом мы поговорим в другой статье, если будет такой запрос.
Другие полезные статьи про User Acquisition у меня на канале