Роман Гарбар
19 августа 2020 года
За месяц до выпуск iOS 14Но до сих пор существует множество предположений о том, что будет дальше. MMPs. Насколько изменится их роль? Будут ли рекламодатели по-прежнему платить 1-5 центов за каждую платную установку на iOS, даже несмотря на то, что она больше не имеет детализации на уровне пользователя? Позволит ли Apple MMP проверять значения конверсии, хотя об этом не было сказано ни в одной документации Apple? Пока эти вопросы остаются неясными, мы решили заняться тем, что разработчики могут делать уже сегодня, без участия MMP.
Мы побеседовали с сооснователем агентства мобильного роста 2ndPotion, Кевин Бравочтобы рассказать о том, что разработчики могут использовать прямо сейчас и что уже задокументировано Apple. Кевин создал первое решение с открытым исходным кодом, которое взаимодействует с SKAdNetwork от Apple, под названием ЭликсирТак что мы знаем, что он идеально подходит для такого рода разговоров.
Вот о чем мы сегодня поговорим с Кевином.
1) Для разработчиков и дизайнеров игрВо всплывающем окне iOS запрашивается согласие на передачу IDFA пользователя. AppTrackingTransparency метод.
2) Для разработчиковОбзор новой системы атрибуции от Apple. SKAdNetwork.
2.1) Для разработчиков, атрибуция установок - интегрировать registerAppForAdNetworkAttribution()метод
2.2) Для разработчиков, атрибутировать события после установки - интегрировать updateConversionValue(_:)метод
2.3) Для менеджеров UAПонимание того, как Apple сообщает рекламной сети об установках и событиях после установки - Постбэки и таймеры
3) Чтобы вся команда провела мозговой штурмЧто может быть лучше - Лучшие практики и актуальные болевые точки
1) Просить пользователей поделиться своими IDFA - Интеграция ApptrackingTransparency
Кевин: AppTrackingTransparency - это фреймворк, доступный для iOS 14, который позволяет разработчикам приложений запрашивать разрешение на отслеживание пользователя. Это разрешение необходимо для получения доступа к IDFA пользователя в целях атрибуции.
Для его интеграции и использования вам потребуется предложить пользователю получить доступ к его IDFA с помощью этого всплывающего окна:
Если пользователь согласится на отслеживание, у вас будет возможность запросить его IDFA. В противном случае IDFA будет 0000-0000-0000-0000.
Имейте в виду, что вы не сможете спросить разрешения, если у пользователя включена функция LAT (Limited Ad Tracking).
В: Сколько раз я могу показать родное всплывающее окно?
Кевин: Вы можете показать его только один раз на одном устройстве.
В: Можно ли повторно запросить согласие пользователя, если оно было отклонено в первый раз?
Кевин: Если пользователь уже видел это всплывающее окно, вы не сможете отобразить его снова.
В: Можно ли показывать пользовательское всплывающее окно перед родным?
Кевин: Вы можете решить, когда вы будете показывать это всплывающее окно, то есть вы можете разместить дополнительное всплывающее окно раньше.
Таким образом, вы можете решить показывать всплывающее окно с разрешением только в том случае, если пользователь ответил "да" на ваш пользовательский запрос..
Эта стратегия уже используется многими компаниями для отправки запросов на уведомления и позволит вам получить вторую возможность попросить разрешения.
В: Что произойдет, если разработчик приложения не интегрирует AppTrackingTransparency?
Кевин: Если вы не хотите/не хотите запрашивать IDFA, вы можете решить не показывать это всплывающее окно.
Это означает, что у вас не будет доступа к их IDFA (он будет отображаться как 0000-0000-0000-0000) и что рекламные сети также не будут иметь к нему доступа.
2) Обзор новой системы атрибуции от Apple -. SKAdNetwork
Кевин: Apple предлагает решение для анонимной атрибуции под названием SKADNetworkЭто позволяет приложениям отслеживать установки из разных рекламных сетей, не нарушая анонимности пользователей.
При использовании SKADNetwork к каждому рекламному клику прикрепляется подпись. Когда пользователь впервые откроет ваше приложение, Apple сможет проверить, что он пришел с конкретной рекламы, используя эту подпись.
Затем в рекламную сеть отправляется обратный запрос, чтобы приписать новую установку.
Подпись не содержит никаких идентификационных данных, что обеспечивает максимальную конфиденциальность и делает невозможным привязку установки к конкретному пользователю.
Чтобы интегрировать SKADNetwork, необходимо вызвать два метода:
- registerAppForAdNetworkAttribution(): Этот метод должен вызываться при первом запуске и регистрировать пользователя для атрибуции. Если пользователь пришел по подписанному объявлению, в последующие часы будет запущен постбэк, уведомляющий рекламную сеть об установке этого приложения.
- updateConversionValue(_:) Этот метод следует вызывать каждый раз, когда вы хотите обновить значение конверсии, привязанное к конкретному пользователю. Вы можете вызывать этот метод столько раз, сколько захотите, но значение конверсии будет обновлено только в том случае, если оно выше предыдущего.
Для монетизации рекламы разработчикам необходимо заранее определить рекламные сети, которые они собираются использовать для монетизации, и указать их в своем приложении через plist, как это сделано в данная документация.
2.1) Установка атрибутов - интеграция registerAppForAdNetworkAttribution
Кевин: Вызывая registerAppForAdNetworkAttribution при первом запуске приложения, вы делаете все необходимое для включения атрибуции установки приложений с помощью SKADNetwork.
Однако атрибуция установки будет возможна только в том случае, если рекламная сеть подписывает свои объявления в SKADNetwork.
Для рекламы разработчикам необходимо убедиться, что рекламные сети интегрировали SKADNetwork на своей стороне, чтобы обеспечить атрибуцию и постбэк.
Чтобы упростить работу, можно получить список всех доступных идентификаторов рекламных сетей здесь.
2.2) Атрибутирование событий после установки - Интеграция updateConversionValue(_:)
Кевин: Вы можете назначить значение преобразования для конкретной установки. Это числовое значение от 0 до 63.
Это "сигнал", который поможет вам понять, насколько ценен данный конкретный пользователь, не давая вам возможности идентифицировать его.
Рекламные сети могут использовать эту информацию, чтобы понять, насколько ценна каждая установка для вашего бизнеса. Этот сигнал может помочь рекламным сетям определить лучшую аудиторию для подачи объявлений и улучшить показатели ваших кампаний.
Вопрос: Когда следует использовать updateConversionValue(_:)?
Кевин: Значение конверсии может быть обновлено несколько раз для одного и того же пользователя, но есть некоторые ограничения:
- Вы можете обновить значение конверсии только на более высокое значение, чем предыдущий вызов (1->2, но не 3->2).
- Ограниченное значение в диапазоне 0-63
Вы хотите использовать значения конверсии, потому что они подают ценные сигналы рекламным сетям. Это также позволит вам
- Анализируйте поведение пользователей в приложении после установки из определенной кампании/канала/страны.
- Предложите рекламной сети дополнительные данные, которые можно использовать для определения ценных когорт для вашей игры и оптимизации эффективности кампаний.
Вы должны продумать, как вы будете определять каждое значение конверсии, чтобы получить максимальную отдачу от SKADNetwork.
Существуют различные подходы к управлению конверсионными ценностями:
- Отслеживайте доходы
- Например, значение конвертации 1 равно .1 EUR, 50 равно 5.0 EUR.
- Соревнования по бегу
- Например, level1_completed = значение преобразования 1
- Отслеживайте доходы и ход событий
- Например, значение преобразования 10 = lvl5_completed и потратить 1EUR
- И т.д.
Для событий "Доход + прогресс" я создал таблицу конверсии, которая позволяет вам определить каждое событие, которое вы будете отслеживать, и понять значение конверсии, которое вы будете отправлять.
Как вы увидите в электронной таблице, мы используем двоичные файлы для преобразования событий в значения преобразования:
- Каждое значение преобразования преобразуется в набор из 6 двоичных значений.
- Первые 3 двоичных значения представляют собой доход для данного конкретного пользователя (например, purchase > 10$ = "101")
- Последние 3 двоичных значения отражают прогресс (например, 10 пройденных уровней = "011").
- Объединив два набора двоичных значений, мы получим значение преобразования (например, "101001" преобразуется в значение преобразования 43)
Вы можете найти электронную таблицу здесь:
В: Что такое Elixir и как он помогает?
Кевин: Значения конверсии могут быть отправлены только из приложения, что усложняет настройку способа отслеживания конверсии без его обновления.
Эликсир - это SDK с открытым исходным кодом что позволяет определять и обновлять значения конверсии, не обновляя приложение после каждого изменения.
Как это работает:
- Вы определяете таблицу конверсии, используя один из доступных подходов (доход / смешанный / прогресс).
- Вы храните его на своем сервере в формате JSON
- Вы интегрируете Elixir SDK, отслеживая все события, доступные в приложении.
- При первом запуске Elixir SDK запросит JSON и сопоставит значения конверсии с действиями, выполняемыми пользователем в режиме реального времени.
- Elixir SDK обновит значение conversionValue на основе созданной вами таблицы
Вы можете увидеть пример таблица преобразования JSON. Это документ, который Elixir считывает для создания значения конверсии, чтобы отслеживать его после каждого действия пользователя.
В настоящее время доступен только один тип таблиц (ссылка на таблицу) для Elixir. По мере того как разработчики будут сотрудничать над проектом, каждая модель будет легко охвачена (бинарный доход от рекламы, временная метка, гео и т.д.).
2.3) Понять, как Apple сообщает рекламной сети об установках и событиях после установки - постбэки и таймеры
Вопрос: Можете ли вы объяснить, как работает таймер постбэков в updateConversionValue(_:)?
Кевин: Существует дополнительная сложность в планировании постбэков.
Два таймера происходят следующим образом:
- 24-часовой таймер: может быть сброшен несколько раз и имеет определенную продолжительность 24 часа
- Случайный таймер: после запуска он не может быть сброшен. Продолжительность случайная, от 0 до 24 часов.
Когда вы запускаете registerAppForAdNetworkAttribution(), запускается 24-часовой таймер. Если вы решите выполнить updateConversionValue(_:)Таймер 1 обнуляется и запускается снова.
Каждый раз, когда вы стреляете updateConversionValue(_:)24-часовой таймер будет сброшен.
Предположим, вы не уволите updateConversionValue(_:) до истечения 24-часового таймера запустится случайный таймер. После запуска случайного таймера вы больше не сможете обновлять значение конверсии.
По истечении случайного таймера в рекламную сеть отправляется постбэк. Этот постбэк может включать (или не включать) значение конверсии (это будет последнее значение, которое вы установили для данного конкретного пользователя)
В документации Apple не указано ограничение на время или количество повторений для updateConversionValue. Это означает, что при условии, что пользователь заходит каждые 24 часа, вы можете отправить новое значение конверсии до 63 раз (с учетом ограничений, описанных в вопросе "Когда следует использовать updateConversionValue(_:)?").
В: Какие данные рекламные сети получают от SKADNetwork?
Кевин: Рекламные сети будут получать постбэк за каждую установку, который выглядит следующим образом:
Некоторые значения являются необязательными (например, значение конверсии) и могут не включаться в постбэк.
Более подробная информация об этом постбэке и о том, как рекламные сети могут проверять подлинность каждой установки, приведена ниже. здесь.
3) Лучшие практики и существующие болевые точки
Вопрос: Каковы ваши рекомендации по использованию updateConversionValue(_:)?
Кевин: Вам необходимо определить наиболее ценные действия, которые пользователи могут совершить во время первой сессии и в последующие 1-3 дня.
Ценное событие дает вам хороший показатель вовлеченности пользователей в ваше приложение. Покупка - это самый высокий сигнал, который вы можете получить.
Затем следует упорядочить события от самого низкого сигнала к самому высокому. Этот список событий поможет вам определить таблицу преобразования.
В: С какими еще болевыми точками могут столкнуться разработчики при работе с SKAdNetwork?
Кевин: При работе с SKADNetwork вы столкнетесь с различными трудностями:
- Управление временной меткой установки: SKADNetwork рандомизирует время отправки постбэка в рекламную сеть, и в нем нет временной метки установки. Это усложняет определение момента установки. Еще сложнее, если вы решите отправлять значения конверсии после первых 24 часов.
Чем дольше вы ждете остановки для обновления значений преобразования, тем больше становится окно времени установки.
Одним из решений может быть использование некоторых битов значения конверсии для определения дня установки и ограничение количества дней, когда вы будете обновлять значение конверсии (например, три дня).
- Получение данных обратно / проверка подписей: В настоящее время доступ к установке постбеков будет только у рекламных сетей. Пока неясно, какие рекламные сети позволят рекламодателям получить доступ к данным SKADNetwork. Запрос этих данных будет крайне важен, поскольку вы сможете проверка подлинности установки с помощью подписи.
- Управление атрибуцией IDFA + SKADNetwork: Как работать со SKADNetwork и продолжать измерять атрибуцию на уровне пользователей, выбранных для отслеживания IDFA? Эта смешанная модель будет сложной и потребует отличного рабочего процесса, чтобы избежать дедупирования журналов установки.


