Чем мы можем помочь?

Интеграция Windows SDK для разработчиков

  • Обновлено

Краткий обзор: добавьте AppsFlyer в приложения и игры для Windows, чтобы измерять установки приложения, события в приложении, медиаисточники и многое другое. 

Текущая версия: 3.1.0 (17/12/2023)

SDK AppsFlyer предоставляет функциональность регистрации установок приложения и записи событий. 

SDK_Integration.jpg

Вы можете регистрировать установки, обновления и сессии (выполнив обязательные шаги ниже), а также дополнительные события в приложении помимо установок приложения (включая покупки в приложении, уровни игры и т. д.) для оценки ROI и уровня вовлеченности пользователей.

 Важно!

SDK AppsFlyer для Windows совместим со всеми устройствами Universal Windows Platform (UWP), включая мобильные телефоны Windows, ПК, HoloLens и Surface Hub.

1. Этапы интеграции

Универсальный SDK для Windows устанавливается через диспетчер пакетов NuGet. Чтобы установить SDK AppsFlyer для Windows через NuGet:

  1. Щелкните правой кнопкой мыши файл проекта.
  2. Нажмите Manage NuGet Packages.
  3. Нажмите Browse и выполните поиск AppsFlyerLib.
  4. Нажмите AppsFlyerLib.
  5. Нажмите кнопку Install.

Если вы решили не использовать пакет NuGet, вы можете встроить SDK AppsFlyer в приложение вручную:

  1. Загрузите SDK приложения Universal Windows Platform отсюда.
  2. Скопируйте AppsFlyerLib.winmd в свой проект.
  3. В 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);
 });