Интеграция
Вы можете инициализировать плагин с помощью префаба AppsFlyerObject или вручную.
- Использование AppsFlyerObject.prefab
- Ручная интеграция
- Сбор IDFA с помощью ATTrackingManager
- Отправка постбэков SKAN в AppsFlyer
- Инициализация MacOS
- Слушатели запросов (необязательно)
Использование AppsFlyerObject.prefab
- Перейдите в раздел Assets (Активы) > AppsFlyer и перетащите AppsFlyerObject.prefab в вашу сцену.
- Обновите следующие поля:
Параметр | Описание |
---|---|
Dev Key | Ключ разработчика AppsFlyer, который доступен на дэшборде AppsFlyer. |
ID приложения | Идентификатор вашего приложения в iTunes. (Если ваше приложение не для iOS, оставьте поле пустым) |
Get Conversion Data | Установите значение true, если ваше приложение использует AppsFlyer для диплинкинга. |
isDebug | Установите значение true для просмотра журналов отладки. (только для разработки!) |
- Обновите код в разделе Assets (Активы) > AppsFlyer > AppsFlyerObjectScript.cs с помощью других доступных API.
Ручная интеграция
Создайте игровой объект и добавьте следующий код инициализации:
using AppsFlyerSDK;
public class AppsFlyerObjectScript : MonoBehaviour
{
void Start()
{
AppsFlyer.initSDK("devkey", "appID");
AppsFlyer.startSDK();
}
}
Внимание:
- Убедитесь, что вы не вызвали уничтожение игрового объекта.
- Use
DontDestroyOnLoad
, чтобы сохранить объект при загрузке новой сцены.
Сбор IDFA с помощью ATTrackingManager
-
Добавьте
AppTrackingTransparency
в свой проект в Xcode. -
В
Info.plist
:- Добавьте в список запись: нажмите + рядом с
Information Property List
. - Прокрутите вниз и выберите
Privacy - Tracking Usage Description
. - В качестве значения добавьте текст, который вы хотите показать пользователю, когда запрашиваете разрешение на сбор данных IDFA.
- Добавьте в список запись: нажмите + рядом с
-
Вызовите api
waitForATTUserAuthorizationWithTimeoutInterval
до вызоваstartSDK()
#if UNITY_IOS && !UNITY_EDITOR AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60); #endif
-
Запросите разрешение на отслеживание там, где вы хотите отобразить подсказку:
Вы можете использовать этот пакет или любой другой пакет, позволяющий запросить разрешение на отслеживание.using Unity.Advertisement.IosSupport; /* ... */ if (ATTrackingStatusBinding.GetAuthorizationTrackingStatus() == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED) { ATTrackingStatusBinding.RequestAuthorizationTracking(); } /* ... */
Отправка постбэков SKAN в AppsFlyer
Чтобы зарегистрировать конечную точку AppsFlyer, добавьте ключ NSAdvertisingAttributionReportEndpoint
в ваш info.plist и установите значение https://appsflyer-skadnetwork.com/
.
Подробнее о том, как обновить info.plist, см. здесь.
Инициализация MacOS
- Используйте префаб
AppsFlyerObject
- Добавьте идентификатор приложения для MacOS
- Создайте для платформы
PC, Mac & Linux Standelone
и выберитеMacOS
в качестве целевой платформы.
Слушатели запросов (необязательно)
- Прикрепите скрипт AppsFlyer.cs к игровому объекту при помощи кода инициализации AppsFlyer. (AppsFlyerObject, ect)
- Добавьте следующий код до startSDK()
Пример ответа для сессии:
void Start()
{
AppsFlyer.OnRequestResponse += AppsFlyerOnRequestResponse;
AppsFlyer.initSDK(devKey, appID, this);
AppsFlyer.startSDK();
}
void AppsFlyerOnRequestResponse(object sender, EventArgs e)
{
var args = e as AppsFlyerRequestEventArgs;
AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + args.statusCode);
}
Пример ответа для внутреннего события приложения:
void Start()
{
AppsFlyer.OnInAppResponse += (sender, args) =>
{
var af_args = args as AppsFlyerRequestEventArgs;
AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + af_args.statusCode);
};
AppsFlyer.initSDK(devKey, appID, this);
AppsFlyer.startSDK();
}
код статуса | описание ошибки |
---|---|
200 | null |
10 | "Event timeout. Check 'minTimeBetweenSessions' param" («Время события истекло. Проверьте параметр minTimeBetweenSessions») |
11 | "Skipping event because 'isStopTracking' enabled" («Событие пропущено, т. к. включен параметр isStopTracking») |
40 | Ошибка сети: описание ошибки предоставляет Android |
41 | "No dev key" («Нет ключа разработчика») |
50 | "Status code failure" («Ошибка кода статуса») + фактический код ответа от сервера |
Изменения сохранены 4 месяца назад