Атрибуция API - Affise MMP без интеграции SDK
Daria Mamchenkova avatar
Автор: Daria Mamchenkova
Обновлено больше недели назад

Если интеграция с SDK невозможна, вы можете использовать API Attribution. В этом случае необходимо сделать следующее:

  1. На странице Application добавьте приложение и укажите его секретный ключ SDK и App ID.

  2. Настройте запрос в соответствии с руководством в этой статье.

  3. Интегрировать библиотеку рефералов Google Play.

Настройки

Минимальный постбек для установки не органической метрики

curl --request POST \

--data '[

{

"uuid": "1a7adcca-f786-4c62-a770-5b3e687d0ee3",

"created_time": 1668605535000,

"affise_app_id": "3",

"affise_pkg_app_name": "com.test.app",

"affise_app_token": "ee8ebe706e0359e3ac5c45666a681f4c228d97f20012dac186ae3902eb479955",

"affise_device_id": "bf62b34b-5750-4e95-a132-4185cedbee00",

"random_user_id": "92f254db-d70d-47ce-8597-baccab852300",

"first_open_time": 1685452724264,

"referrer": "gclid=CjwKCAjwvdajBhBEEiwAeMh1UwCsBajGUaMGwuqg6-nhQQe54jA4hR3l5wUQK5OB_GH_OxlAizBIQRoCRGAQAvD_BwE"

}

]'

Если параметр referrer пуст или недействителен, установка будет организована, если не используется другое определение.

Постбэк для сессий и/или проверка активного пользователя

curl --request POST \

--data '[

{

"uuid": "1a7adcca-f786-4c62-a770-5b3e687d0ee3",

"created_time": 1668605535000,

"affise_app_id": "3",

"affise_pkg_app_name": "com.test.app",

"affise_app_token": "ee8ebe706e0359e3ac5c45666a681f4c228d97f20012dac186ae3902eb479955",

"affise_device_id": "bf62b34b-5750-4e95-a132-4185cedbee00",

"random_user_id": "92f254db-d70d-47ce-8597-baccab852300",

"first_open_time": 1685452724264,

"last_session_time": 1685452756000,

"last_time_session": 1685452756000,

"время_сессии": 56783,

"affise_session_count": 5,

"lifetime_session_count": 4556891

}

]'

где:

Имя

Тип

Требуется

Информация

uuid

uuidv4 (строка)

Каждый

Идентификатор постбека, уникальное значение для каждого постбека.

созданное_время

временная метка (int)

Каждый

Время отправки постбэка в миллисекундах.

affise_app_id

строка

Каждый

Идентификатор приложения в Affise.

affise_pkg_app_name

строка

Каждый

Название пакета в магазине.

affise_app_token

строка

Каждый

Подпись постбэка.

affise_device_id

uuidv1 (строка)

Каждый

Уникальный идентификатор устройства пользователя.

случайный_идентификатор_пользователя

uuidv4 (строка)

Каждый

Уникальный идентификатор устройства пользователя.

первое_открытое_время

временная метка (int)

Первый постбэк

Время первого запуска приложения в миллисекундах.

Уникально для устройства.

Должно быть представлено не менее 1 раза.

Может не присутствовать в следующих постбэках.

referrer

строка

Не или первый постбэк, для неорганического чека

Информация о реферере из магазина.

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

время_последней_сессии

временная метка (int)

Для сессий

Текущее время в миллисекундах, если сессия активна, иначе 0.

последнее_время_сессии

временная метка (int)

Для сессий,

если last_session_time = 0

Текущее время в миллисекундах, если сессия активна, иначе

последнее время в миллисекундах, когда сессия была активна, иначе

first_open_time.

время_сессии

int

Для сессий с кальцифицированной длительностью

Последняя продолжительность сеанса в миллисекундах.

счетчик_сеансов

int

Для сессий

Количество немошеннических сессий на устройстве.

Affise рекомендует увеличивать этот счетчик через 30 секунд после начала сеанса.

Значение не должно уменьшаться.

lifetime_session_count

int

Для сессий с длительностью калька

Сумма длительностей активности приложения в миллисекундах.

Посмотрите пример полного постбэка:

[

{

"affise_app_id": "3",

"affise_pkg_app_name": "com.test.app",

"app_version": "1.0",

"app_version_raw": "2",

"store": "Apk",

"installed_time": 1685445035570,

"first_open_time": 1685445103532,

"installed_hour": 1685444400000,

"первый_открытый_час": 1685444400000,

"install_first_event": true,

"install_begin_time": 0,

"install_finish_time": 1685445103532,

"referrer_install_version": "",

"referral_time": 0,

"referrer_click_time": 0,

"referrer_click_time_server": 0,

"referrer_google_play_instant": false,

"created_time": 1685445103000,

"created_time_milli": 1685445103908,

"created_time_hour": 1685444400000,

"last_session_time": 1685445103908,

"connection_type": "WIFI",

"cpu_type": "arm64-v8a, armeabi-v7a, armeabi",

"hardware_name": "coral",

"network_type": "WIFI",

"device_manufacturer": "Google",

"proxy_ip_address": "",

"deeplink_click": false,

"device_atlas_id": "",

"affise_device_id": "6c5b4fbb-0188-1000-a2a8-a425dfc3a5d1",

"affise_alt_device_id": "6c5b4fd6-0188-1000-8d42-38592460a3c0",

"adid": "",

"android_id": "50da7b69cab425a1",

"android_id_md5": "f2e24f12834014cf69623fd9a7c77f12",

"mac_sha1": "",

"mac_md5": "",

"gaid_adid": "",

"gaid_adid_md5": "",

"oaid": "",

"oaid_md5": "",

"altstr_adid": "",

"fireos_adid": "",

"coloros_adid": "",

"reftoken": "6c5b51...ac5631",

"reftokens": "6c5b5...59c94f0a",

"referrer": "referrer=018…a43e29&clickid=6475e…e37f55&pid=9",

"user_agent": "Dalvik/2.1.0 (Linux; U; Android 13; Pixel 4 XL Build/TP1A.221005.002.B2)",

"mccode": "272",

"mncode": "2",

"isp": "3",

"region": "IE",

"страна": "IE",

"language": "en-IE",

"device_name": "Pixel 4 XL",

"device_type": "смартфон",

"os_name": "",

"platform": "android",

"sdk_platform": "android",

"api_level_os": "33",

"affise_sdk_version": "-",

"os_version": "13",

"random_user_id": "6c5b4fea-0188-1000-90fb-29759c0aadba",

"affise_sdk_pos": "Production",

"timezone_dev": "UTC+0100",

"affise_event_token": "",

"affise_event_name": "",

"last_time_session": 1685445104000,

"time_session": 295,

"affise_session_count": 1,

"lifetime_session_count": 295,

"affise_deeplink": "",

"affise_part_param_name": "",

"affise_part_param_name_token": "",

"affise_app_token": "9d1af455f1…66611d7e72e9",

"label": "",

"uuid": "6c5b5181-0188-1000-ab71-0cbd7e8a63e2",

"pushtoken": "",

"affise_events_count": 2,

"events": [

{

"affise_event_id": "4fc7d613-af35-4298-92a8-04838e03a40c",

"affise_event_name": "CustomId01",

"affise_event_category": "native",

"affise_event_timestamp": 1685449930539,

"affise_event_first_for_user": false,

"affise_event_user_data": "",

"affise_event_data": {

"affise_event_custom_id_01": "AiChatClickEvent",

"affise_event_custom_id_{01}_timestamp": 1685449930539

},

"affise_parameters": {}

},

{

"affise_event_id": "b1e1aa62-652e-48d5-a9b0-4f9a0b9448e0",

"affise_event_name": "CustomId10",

"affise_event_category": "native",

"affise_event_timestamp": 1685449935544,

"affise_event_first_for_user": false,

"affise_event_user_data": "about:blank",

"affise_event_data": {

"affise_event_custom_id_10": "PageFinishedLoading",

"affise_event_custom_id_{10}_timestamp": 1685449935544

},

"affise_parameters": {}

}

],

"affise_internal_events_count": 0,

"internal_events": [],

"affise_sdk_events_count": 0,

"sdk_events": [],

"affise_metrics_events_count": 0,

"metrics_events": []

}

]

Провайдер affise_app_token

affise_app_token = SHA256(affiseAppId + createdTime + secretId)

где:

  • affiseAppId - идентификатор приложения Affise.

  • createdTime - время запроса.

  • secretId - секретный ключ SDK.

fun sha256(value: String) : String {

return MessageDigest.getInstance("SHA-256")

.digest(value.toByteArray())

.joinToString("") {

"%02x".format(it)

}

}

Пример:

affiseAppId

AffiseDemoApp

createdTime

1685463568000

secretId

be07d122-3f3c-11ec-9bbc-0242ac130002

SHA256

00c1c31859fcfecc7be3a4505d27bc189e6deebd544025ddd1017b770407974e

Интеграция библиотеки рефералов Google Play

Чтобы правильно получать рефералов, необходимо интегрироваться с библиотекой Google. Как это сделать, читайте здесь.


По всем возникающим вопросам обращайтесь в службу поддержки клиентов Affise по электронной почте: [email protected].

Нашли ответ на свой вопрос?