Если интеграция с SDK невозможна, вы можете использовать API Attribution. В этом случае необходимо сделать следующее:
На странице Application добавьте приложение и укажите его секретный ключ SDK и App ID.
Настройте запрос в соответствии с руководством в этой статье.
Интегрировать библиотеку рефералов 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].