Краткий обзор: добавьте AppsFlyer в приложения и игры для Windows, чтобы измерять установки приложения, события в приложении, медиаисточники и многое другое.
Текущая версия: 3.1.0 (17/12/2023)
SDK AppsFlyer предоставляет функциональность регистрации установок приложения и записи событий.
Вы можете регистрировать установки, обновления и сессии (выполнив обязательные шаги ниже), а также дополнительные события в приложении помимо установок приложения (включая покупки в приложении, уровни игры и т. д.) для оценки ROI и уровня вовлеченности пользователей.
Важно!
SDK AppsFlyer для Windows совместим со всеми устройствами Universal Windows Platform (UWP), включая мобильные телефоны Windows, ПК, HoloLens и Surface Hub.
1. Этапы интеграции
Универсальный SDK для Windows устанавливается через диспетчер пакетов NuGet. Чтобы установить SDK AppsFlyer для Windows через NuGet:
- Щелкните правой кнопкой мыши файл проекта.
- Нажмите Manage NuGet Packages.
- Нажмите Browse и выполните поиск AppsFlyerLib.
- Нажмите AppsFlyerLib.
- Нажмите кнопку Install.
Если вы решили не использовать пакет NuGet, вы можете встроить SDK AppsFlyer в приложение вручную:
- Загрузите SDK приложения Universal Windows Platform отсюда.
- Скопируйте AppsFlyerLib.winmd в свой проект.
- В Visual Studio в проекте Universal Windows Platform нажмите Add Reference.
- Найдите AppsFlyerLib.winmd и добавьте его.
Важно!
AppsFlyer использует пакет Newtonsoft.json. Это стандартная библиотека для парсинга Json в Windows. Вы можете добавить этот пакет через NuGet в Visual Studio. Это устраняет исключение File Not Found в DLL.
- В Visual Studio щелкните правой кнопкой мыши References, выберите NuGet-пакет Newtonsoft.json и добавьте его.
- Разрешите доступ к интернету в манифесте приложения или используйте вкладку Capabilities в Visual Studio.
2. Инициализация SDK & событие установки (минимальное требование для атрибуции)
- Добавьте следующий код в метод запуска приложения.
- Укажите свои appId и DevKey:
- Заполните tracker.appId и tracker.devKey своими значениями.
- DevKey AppsFlyer можно найти на нашем дэшборде в разделе интеграции SDK.
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
this .InitializeComponent();
this .Suspending += this .OnSuspending;
AppsFlyerLib. AppsFlyerTracker tracker =
AppsFlyerLib. AppsFlyerTracker .GetAppsFlyerTracker();
tracker.appId = "YOUR_APP_ID_HERE" ;
tracker.devKey = "YOUR_DEV_KEY_HERE" ;
tracker.trackAppLaunch();
}Асинхронная запись запуска приложения
Вы можете записывать запуск приложения асинхронно. Это полезно в случаях, когда сеть недоступна или не отвечает. Такие случаи можно обрабатывать в функции callback, которую вы передаете методу TrackAppLaunchAsync.
tracker.TrackAppLaunchAsync(Callback);
public void Callback(AppsFlyerLib.ServerStatusCode code)
{
if(code == AppsFlyerLib.ServerStatusCode.SUCCESS) {
//success scenario
} else if(code == AppsFlyerLib.ServerStatusCode.FAIL) {
//failure scenario
}
}
3. 3. API для записи событий в приложении (необязательно)
Этот API позволяет AppsFlyer записывать события после установки. Эти события определяет рекламодатель; помимо имени события они могут включать необязательные значения события. Добавьте следующий код, чтобы записывать события после установки:
public void TrackEvent(string eventName, IDictionary<string, Object> eventValues)- eventName — это любая строка, определяющая имя события. Список рекомендованных имен событий можно найти здесь.
- eventValues — это словарь параметров события, которые составляют событие. Список рекомендуемых параметров можно найти здесь.
- При учете дохода в событиях в приложении используйте имя константного параметра InAppEventParameterName.REVENUE («af_revenue»), чтобы учитывать доход как часть события в приложении. Этому параметру можно назначить любое числовое значение — положительное или отрицательное.
Например
AppsFlyerLib.AppsFlyerTracker tracker = AppsFlyerLib.AppsFlyerTracker.GetAppsFlyerTracker();
IDictionary<string, object> eventValues = new Dictionary<string, object>();
eventValues.Add(AppsFlyerLib.AFInAppEventParameterName.CONTENT_ID, "id123");
eventValues.Add(AppsFlyerLib.AFInAppEventParameterName.REVENUE, "10");
eventValues.Add(AppsFlyerLib.AFInAppEventParameterName.CURRENCY, "USD");
tracker.TrackEvent(AppsFlyerLib.AFInAppEventType.ADD_TO_CART, eventValues);
Асинхронная запись событий
Вы можете записывать события асинхронно. Это полезно в кейсах, когда сеть недоступна или не отвечает. Такие кейсы можно обрабатывать в функции Callback, которую вы передаете методу TrackEventAsync.
tracker.TrackEventAsync(AppsFlyerLib.AFInAppEventType.PURCHASE, events, Callback);
public void Callback(AppsFlyerLib.ServerStatusCode code)
{
if(code == AppsFlyerLib.ServerStatusCode.SUCCESS) {
//success scenario
} else if(code == AppsFlyerLib.ServerStatusCode.FAIL) {
//failure scenario
}
}
Полный список расширенных событий AppsFlyer в приложении доступен здесь.
4. Расширенная интеграция
Следующие API являются необязательными и относятся к расширенной интеграции с AppsFlyer SDK.
4.1 Установка кода валюты (необязательно)
Можно установить коды конкретных валют, используемых в каждом внутреннем событии приложения, которые передаются в AppsFlyer. Еще можно установить код глобальной валюты.
USD — значение по умолчанию. Допустимые коды валют ISO можно найти здесь.
Чтобы установить код валюты, используйте этот API:
tracker.currencyCode = "GBP";4.2 getAppsFlyeruid (необязательно)
Для каждой новой установки приложения AppsFlyer создает уникальный идентификатор ID.
Чтобы получить этот идентификатор ID, используйте следующий API:
public string getAppsFlyerUID()4.3 Идентификатор пользователя клиента (необязательно)
Установка собственного идентификатора клиента позволяет сопоставить ваш уникальный идентификатор с идентификатором пользователя AppsFlyer и всеми остальными идентификаторами устройств. Этот идентификатор ID доступен в CSV-отчетах AppsFlyer, а также через API postback для сопоставления с вашими внутренними идентификаторами.
Для установки своего Customer User ID используйте такой код:
tracker.customerUserId = "YOUR_CUSTOMER_USER_ID";4.4 GetConversionDataAsync (необязательно)
С помощью этого API вы можете получать данные конверсии по каждой установке через SDK. Добавьте следующий код, чтобы записывать события после установки:
Task.Run(async () =>
{
AppsFlyerLib.AppsFlyerTracker tracker = AppsFlyerLib.AppsFlyerTracker.GetAppsFlyerTracker();
string conversionData = await tracker.GetConversionDataAsync();
});
4.5 Пример интеграции C++ / CX
AppsFlyerLib::AppsFlyerTracker^ tracker = AppsFlyerLib::AppsFlyerTracker::GetAppsFlyerTracker();
tracker->appId = ref new Platform::String(L"APP_KEY");
tracker->devKey = ref new Platform::String(L"APPSFLYER_KEY");
tracker->TrackAppLaunch();
create_task(tracker->GetConversionDataAsync()).then([tracker](Platform::String^ conversionData)
{
Windows::Foundation::Collections::IMap<Platform::String^, Platform::Object^>^ eventValues
= ref new Platform::Collections::Map<Platform::String^, Platform::Object^>();
eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::CONTENT_ID, "134");
eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::CONTENT_TYPE, "Virtual Goods");
eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::CURRENCY, "USD");
eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::REVENUE, "9.99");
tracker->TrackEvent(AppsFlyerLib::AFInAppEventType::PURCHASE, eventValues);
});