Управление постбеками конверсий SKAdNetwork🔗
Общая информация🔗
Начиная с выхода iOS 14.5 Apple внедряет новую политику использования IDFA (ATT), теперь приложение должно явно запросить у пользователя доступ к данному идентификатору, оценка на пользователей, которые позволят его использовать колеблется около 10-20%. В связи с этим для существенной доли аудитории теряется возможность следить за атрибуцией отдельных пользователей по старым схемам.
На замену Apple предложила свое решение - SKAdNetwork, позволяющее "связать" установки на устройстве пользователя без необходимости отправлять рекламный идентификатор на сервера. Apple с помощью SKAdNetwork сам осуществляет атрибуцию и позволяет получить рекламной сети обезличенный постбек после установки. Сеть может понять что конверсия (постбек) осуществилась по какой-то кампании, но не будет знать по какому пользователю. Подробнее про систему SKAdNetwork можно почитать на официальном сайте.
Схема работы данной системы приведена ниже:

Для оценки пользователя приложение может выставить системе conversionValue - 6-битное число (0-63) представляющее собой оценку конверсии. После чего системой будет запущен 24-часовой таймер, по истечении которого на сервер рекламной сети будет отправлен постбек о произошедшей конверсии с выставленным ранее conversionValue. Приложение может обновлять значение conversionValue (новое значение должно быть больше предыдущего), пока упомянутый выше таймер не сработал (то есть не прошло 24 часа с момента последнего обновления conversionValue), при чем после обновления значения, таймер будет запущен снова.
Возможности MRGS🔗
MRGS позволяет проектам:
- гибко настроить правила расчета и установки conversionValue, при чем настройка, включение происходит удаленно на сервере, без обновления клиента;
- выставить conversionValue;
- собрать статистику.
Схема работы MRGS с SKAdNetwork:

Для настройки работы с SKAdNetwork необходимо в настройках приложения на сайте MRGS зайти в раздел "Дополнительные возможности", и найти раздел "СКАД"

Для включения работы с SKAdNetwork включите тумблер "Отправлять конфиг", после этого на клиент будет приходить правила и выставляться конверсии. Если вы хотите включить работу в тестовом режиме (мы будем рассчитывать конверсии и отправлять статистику на сервер, но в систему ничего выставлять не будем), то также включите тумблер "Тест".
Для настройки окна атрибуции (время, прошедшее с момента установки приложения, в течение которого MRGS будет обновлять conversionValue), выставите время в часах в поле "Cutoff time".
Затем, необходимо выбрать и настроить одно из правил для расчёта и выставления conversionValue (описаны ниже), после чего нажать "Сохранить", после чего изменения вступят в силу.
Правила расчёта и выставления conversionValue🔗
MRGS позволяет Вам настроить правила расчёта выставления conversionValue одним из нескольких способов:
- Общая прибыль от пользователя - настройка шага прибыли
- Общая прибыль от пользователя - загрузка рассчитанных шагов прибыли
- Собственный маппинг (универсальная система задания правил)
Ниже приведено описание привил:
1. Общая прибыль от пользователя - настройка шага прибыли🔗
Данное правило позволяет задать некоторый шаг в долларах, по которому будет рассчитано 63 значения промежутков, каждому из которого будет соответствовать conversionValue.
Например, если вы поставите шаг в 2 доллара, то будут сформированы следующие правила:
| Revenue | conversionValue |
|---|---|
| (0;2] | 1 |
| (2;4] | 2 |
| (4;6] | 3 |
| ... | ... |
| (122;124] | 62 |
| (124;+inf] | 63 |
То есть если пользователь потратил от 0 до 2 долларов, то будет выставлен conversionValue = 1, если от 2 до 4 долларов, то будет выставлен conversionValue = 2, и тд.
Для настройки данного правила выберите пункт "Ввести зничение", и введите необходимый шаг (может быть дробным)
Учет интервала от 0 до X1
По умолчанию интервал от 0 до X1 соответствует conversionValue = 1 (как в примере выше - если пользователь потратил от 0 до 2 долларов, то будет выставлен conversionValue = 1), эта же логика используется в AppsFlyer при их работе с conversionValue.
MRGS позволяет исключить первый интервал из расчета conversionValue, то есть интеграл от 0 до X1 соответствует conversionValue = 0, это также позволяет увеличить последний интервал для conversionValue = 63 (в примере ниже 126 вместо 124 в примере выше):
| Revenue | conversionValue |
|---|---|
| (0;2] | 0 |
| (2;4] | 1 |
| (4;6] | 2 |
| ... | ... |
| (124;126] | 62 |
| (126;+inf] | 63 |
То есть если пользователь потратил от 0 до 2 долларов, то ничего выставлено не будет, если от 2 до 4 долларов, то будет выставлен conversionValue = 1, и тд.
Для настройки данного исключения установите чекбокс "интервал (0;X1] должен отправлять Conversion Value = 0".
Данная настройка доступна только с версии SDK MRGS iOS 4.9.0, на версиях ниже данный подход является дефолтным
2. Общая прибыль от пользователя - загрузка рассчитанных шагов прибыли🔗
Данное правило аналогично предыдущему, только в данном случае мы принимаем от вас файл csv с указанными промежутками прибыли. Шаблон файла можно найти рядом с кнопкой загрузки файла.
В файле Вам необходимо указать 63 значения границ, по которым будут сформированы промежутки:
| Revenue | conversionValue |
|---|---|
| (0;X1] | 0 |
| (X1;X2] | 1 |
| (X2;X3] | 2 |
| (X3;X4] | 3 |
| ... | ... |
| (X62;X63] | 62 |
| (X63;+inf] | 63 |
Важно отметить:
- значения границ могут быть дробными числами
- если вы выставите значение границы = 0, то промежутки, в которых она входит будут исключены из правила. (например, если вы установите X3 = 0, то промежутки
(X2;X3]и(X3;X4]с conversionValue равными 2 и 3 соответственно не будут учтены, и conversionValue в системе выставлен не будет)
Для настройки данного правила выберите пункт "Загрузить список", и загрузите файл csv.
3. Собственный маппинг (универсальная система задания правил)🔗
Данная система позволит вам создать практически любое собственное правило, на основе событий, прибыли, времени, количества и др. Вам необходимо создать файл csv описанием правил, и загрузить его на сайт. Шаблон файла можно найти рядом с кнопкой загрузки файла.
Файл представляет собой таблицу вида:
| conversion_value | event_name | event_value_min | event_value | event_revenue_usd_min | event_revenue_usd | event_counter | hours_from_install | is_alternative |
|---|---|---|---|---|---|---|---|---|
| int (>0) | string | float or null | float or null | float or null | float or null | int (>=1) | float (>0) or null | bool (0 or 1) or null |
Где:
| Field name | Field description |
|---|---|
| conversion_value | значение конверсии, которое нужно установить в систему, если правило сработало Обязательный параметр |
| event_name | название события, необходимого для выполнения правила. MRGS обрабатывает события, отправленные через метрики MRGS (как цифровые, так и строковые. В случае, если вы используете цифровые метрики, можно указать в event_name число), а также отправленные в сторонние системы, подключенные через MRGS - AppsFlyer, MyTracker, Firebase (в таком случае event_name нужно указать в формате <network lowercase(appsflyer/mytracker/firebase)>_<event name in network>. Например, если вы отсылаете в AppsFlyer событие level_gained, то в event_name необходимо указать appsflyer_level_gained) Также, есть стандартные названия событий MRGS: mrgs_total_session - общее время, которое пользователь провел в игре. mrgs_total_revenue - общая сумма денег, которую пользователь потратил в игре. mrgs_purchase - событие покупки Обязательный параметр |
| event_value | значение, которое должно быть у события, чтоб оно считалось выполненным. Например, если вы отправляете событие достижения уровня level_gained и передаете в него номер достигнутого уровня, то выставление event_value=5 будет означать, что правило сработает, если игрок достиг 5 уровня. Если вы не выставите event_value, то для level_gained правило сработает если игрок достиг любого уровня. Значение value берется из отправляемых событий: Для метрик MRGS - поле value в методе отправки метрики Firebase - поле value внутри передаваемого словаря параметров события. Mytracker и AppsFlyer - не поддерживается, при необходимости будет добавлена поддержка. Для стандартных событий value является: mrgs_total_session - количество секунд. mrgs_total_revenue - сумма потраченных денег в локальной валюте. mrgs_purchase - сумма покупки в локальной валюте Необязательный параметр |
| event_value_min | минимальное значение события. Необходимо для задания промежутка значений, в которых правило будет считаться выполненным. Например, если вы отправляете событие достижения уровня level_gained и передаете в него номер достигнутого уровня, и хотите сделать так, чтоб правило считалось выполненным, если игрок достиг любого уровня с 3 по 6, в таком случае вы можете указать event_value_min=2, а eventValue=6 event_value данном случае будет являться максимальной границей, а event_value_min - минимальной, не входящей в промежуток, то есть - (event_value_min; eventValue] (в примере выше - (2; 6]) Необязательный параметр |
| event_revenue_usd | данное поле является альтернативой полю event_value и работает по таким же принципам, необходимо для стандартных событий mrgs_total_revenue и mrgs_purchase для задания необходимого значения в долларах (т.к. для этих событий event_value представляет собой значение в локальной валюте), например, если вы указали event_name="mrgs_total_revenue" и event_revenue_usd=5 - это значит, что правило сработает, когда общая сумма покупок будет равна 5 долларам Необязательный параметр |
| event_revenue_usd_min | данное поле является альтернативой полю event_value_min и работает по таким же принципам, необходимо для стандартных событий mrgs_total_revenue и mrgs_purchase для задания необходимого значения в долларах, например, если вы указали event_name="mrgs_purchase", event_revenue_usd_min=2.5 и event_revenue_usd=5 - это значит, что правило сработает, когда будет совершена единоразовая покупка на сумму от 2.5 до 5 долларов Необязательный параметр |
| event_counter | количество раз, сколько событие должно произойти, чтобы правило считалось выполненным Например, если вы указали event_name="mrgs_purchase" и event_counter=3, то это значит, чтобы правило сработало, должна быть совершена любая покупка 3 раза. Необязательный параметр (по умолчанию 1) |
| hours_from_install | Количество часов, в течении которого данное правило может быть выполнено. Например, если вы указали event_name="mrgs_purchase" и hours_from_install=4.5, то это значит, что правило сработает только если пользователь совершил покупку в течении первых 4.5 часов после установки. (не связано и не влияет на окно атрибуции) Необязательный параметр |
| is_alternative | данное поле позволяет объединять правила логическим ИЛИ. Примеры и описания объединения правил логическим И/ИЛИ ниже. Необязательный параметр |
Все описанные выше поля можно комбинировать между собой, приведем пример задания правил:
| conversion_value | event_name | event_value_min | event_value | event_revenue_usd_min | event_revenue_usd | event_counter | hours_from_install | is_alternative |
|---|---|---|---|---|---|---|---|---|
| 1 | mrgs_total_session | 100 | 500 | 1 | 0 | |||
| 2 | event_a | 5 | 0 | |||||
| 3 | event_b | 5 | 1 | 0 | ||||
| 4 | event_c | 3.4 | 5.7 | 3 | 2.5 | 0 | ||
| 7 | mrgs_total_revenue | 20 | 25 | 1 | 10 | 0 | ||
| 16 | mrgs_purchase | 1 | 5.5 | 2 | 0 |
В данном примере определяются следующие правила:
- Выставить conversionValue=1, если: пользователь провел в игре от 100 до 500 секунд
- Выставить conversionValue=2, если: произошло событие event_a 5 раз
- Выставить conversionValue=3, если: произошло событие event_b со значением 5 хотя бы раз
- Выставить conversionValue=4, если: произошло событие event_c со значением от 3.4 до 5.7 три раза в течение первых 2.5 часов после установки
- Выставить conversionValue=7, если: пользователь в сумме потратил от 20 до 25 долларов в первые 10 часов после установки
- Выставить conversionValue=16, если: произошла покупка на сумму от 1 до 5.5 долларов 2 раза
Важно отметить, что правила можно объединять логическим И/ИЛИ. Для того, чтобы правила были объединены логическим И, достаточно, чтобы две строки содержали одинаковый conversionValue. Чтобы правила были объединены логическим ИЛИ, нужно, чтобы строка содержала такой же conversionValue и поле is_alternative было равно 1. Пример:
| conversion_value | event_name | event_value_min | event_value | event_revenue_usd_min | event_revenue_usd | event_counter | hours_from_install | is_alternative |
|---|---|---|---|---|---|---|---|---|
| 15 | mrgs_purchase | 1 | 5.5 | 1 | 0 | |||
| 15 | event_a | 2 | 0 | |||||
| 15 | mrgs_total_revenue | 20 | 25 | 1 | 1 |
В данном примере conversionValue равный 15 будет выставлен если: (сделали покупку на сумму от 1 до 5.5 долларов И произошло событие event_a два раза) ИЛИ (общая сумма покупок находится в диапазоне от 20 до 25 долларов).
С помощью данной системы можно задать предыдущие два способа формирования правил, и практически любое другое правило.
Для настройки данного правила выберите пункт "Загрузить таблицу", и загрузите созданный файл csv с описанием правил.
Дата создания: 2021-05-12