Подключение и инициализация

AppMetrica Unity — это плагин для игровой платформы Unity3d, включающий поддержку AppMetrica SDK версии 3.0.0 и выше для платформ Android и iOS.

Интеграция AppMetrica Unity плагина

Шаг 1. Загрузите плагин.

Шаг 2. Добавьте плагин в проект — откройте проект в Unity Editor, импортируйте плагин AppMetrica.unitypackage (Assets → Import Package → Custom Package).

Шаг 3. Откройте папку Assets/AppMetrica и перетащите префаб AppMetrica с помощью мыши на главную сцену проекта.

Если плагин интегрирован данным образом, скрипт AppMetrica на добавленном префабе автоматически инициализирует AppMetrica SDK, настроит отслеживание сессий и ошибок.

Добавленный префаб AppMetrica является синглтоном. Он не удаляется при переходе в новую сцену Unity и удаляет другие объекты, на которых будет установлен скрипт AppMetrica.

Настройка плагина

В панели Inspector, вы можете указать настройки добавленного на сцену префаба:

  • Api Key — уникальный идентификатор приложения, который выдается при добавлении приложения в веб-интерфейсе AppMetrica.
  • Exceptions Reporting — включить / отключить отправку ошибок.
  • Session Timeout Sec — тайм-аут, по истечению которого прекращается сессия, при условии отсутствия активности приложения.
  • Location Tracking — включить / отключить передачу данных о местоположении.
  • Logs — включить / отключить логирование работы библиотеки.
  • Handle First Activation As Update — включить / отключить возможность сообщать о том, что первый запуск приложения с AppMetrica Plugin это первый запуск обновленной версии приложения, а не его установка.
Примечание. В каталоге AppMetrica/ExampleUI находятся примеры использования AppMetrica в приложении.

Для запуска iOS-версии в Unity 4 необходимо скопировать файл Other/Unity.iOS.Extensions.Xcode.dll в каталог Assets/AppMetrica/Editor.

Если вы не хотите собирать данные о местоположении устройства, в интерфейсе Unity 3d (Settings → Other Settings → Scripting Define Symbols) добавьте директиву APP_METRICA_TRACK_LOCATION_DISABLED.

Методы API

В коде для обращения к AppMetrica используйте AppMetrica.Instance.

Активация плагина
void ActivateWithConfiguration(YandexAppMetricaConfig config);
event ConfigUpdateHandler OnActivation;
YandexAppMetricaConfig? ActivationConfig { get; }
Отслеживание событий
void ReportEvent(string message);
void ReportEvent(string message, Dictionary<string, object> parameters);
void ReportError(string condition, string stackTrace);
Отслеживание сессий
void ResumeSession();
void PauseSession();
Настройки AppMetrica
void SetLocationTracking(bool enabled);
void SetLocation(YandexAppMetricaConfig.Coordinates? coordinates);
void SetUserProfileID(string userProfileID);
Отправка Revenue
void ReportRevenue(YandexAppMetricaRevenue revenue);
Отправка пользовательских профилей
void ReportUserProfile(YandexAppMetricaUserProfile userProfile);
Информация об используемой версии AppMetrica
int LibraryApiLevel { get; }
string LibraryVersion { get; }
Класс YandexAppMetricaConfig
YandexAppMetricaConfig(string apiKey);

string ApiKey { get; private set; }
string AppVersion { get; set; }
Coordinates? Location { get; set; }
int? SessionTimeout { get; set; }
bool? CrashReporting { get; set; }
bool? LocationTracking { get; set; }
bool? Logs { get; set; }
bool? InstalledAppCollecting { get; set; }
bool? HandleFirstActivationAsUpdate { get; set; }
YandexAppMetricaPreloadInfo? PreloadInfo { get; set; }
Класс YandexAppMetricaConfig.Coordinates
double Latitude { get; set; }
double Longitude { get; set; }
Класс YandexAppMetricaPreloadInfo
YandexAppMetricaPreloadInfo(string trackingId);
            
tring TrackingId { get; private set; }
Dictionary<string, string> AdditionalInfo { get; private set; }
Класс YandexAppMetricaRevenue
YandexAppMetricaRevenue(double price, string currency);

double Price { get; private set; }
int? Quantity { get; set; }
string Currency { get; private set; }
string ProductID { get; set; }
YandexAppMetricaReceipt? Receipt { get; set; }
string Payload { get; set; }
Класс YandexAppMetricaReceipt
string Data { get; set; }
string Signature { get; set; }
string TransactionID { get; set; }
Класс YandexAppMetricaUserProfile
List<YandexAppMetricaUserProfileUpdate> GetUserProfileUpdates();
YandexAppMetricaUserProfile Apply(YandexAppMetricaUserProfileUpdate update);
YandexAppMetricaUserProfile ApplyFromArray(List<YandexAppMetricaUserProfileUpdate> updates);
Класс YandexAppMetricaAttribute
static YandexAppMetricaBirthDateAttribute BirthDate();
static YandexAppMetricaGenderAttribute Gender();
static YandexAppMetricaNameAttribute Name();
static YandexAppMetricaNotificationsEnabledAttribute NotificationsEnabled();
static YandexAppMetricaBooleanAttribute CustomBoolean(string key);
static YandexAppMetricaCounterAttribute CustomCounter(string key);
static YandexAppMetricaNumberAttribute CustomNumber(string key);
static YandexAppMetricaStringAttribute CustomString(string key);
Класс YandexAppMetricaBirthDateAttribute
YandexAppMetricaUserProfileUpdate WithAge(int age);
YandexAppMetricaUserProfileUpdate WithBirthDate(DateTime date);
YandexAppMetricaUserProfileUpdate WithBirthDate(int year);
YandexAppMetricaUserProfileUpdate WithBirthDate(int year, int month);
YandexAppMetricaUserProfileUpdate WithBirthDate(int year, int month, int day);
YandexAppMetricaUserProfileUpdate WithValueReset();
Класс YandexAppMetricaBooleanAttribute
YandexAppMetricaUserProfileUpdate WithValue(bool value);
YandexAppMetricaUserProfileUpdate WithValueIfUndefined(bool value);
YandexAppMetricaUserProfileUpdate WithValueReset();
Класс YandexAppMetricaCounterAttribute
YandexAppMetricaUserProfileUpdate WithDelta(double value);
Класс YandexAppMetricaGenderAttribute
YandexAppMetricaUserProfileUpdate WithValue(Gender value);
YandexAppMetricaUserProfileUpdate WithValueReset();
Класс YandexAppMetricaNameAttribute
YandexAppMetricaUserProfileUpdate WithValue(string value);
YandexAppMetricaUserProfileUpdate WithValueReset();
Класс YandexAppMetricaNotificationsEnabledAttribute
YandexAppMetricaUserProfileUpdate WithValue(bool value);
YandexAppMetricaUserProfileUpdate WithValueReset();
Класс YandexAppMetricaNumberAttribute
YandexAppMetricaUserProfileUpdate WithValue(double value);
YandexAppMetricaUserProfileUpdate WithValueIfUndefined(double value);
YandexAppMetricaUserProfileUpdate WithValueReset();
Класс YandexAppMetricaStringAttribute
YandexAppMetricaUserProfileUpdate WithValue(string value);
YandexAppMetricaUserProfileUpdate WithValueIfUndefined(string value);
YandexAppMetricaUserProfileUpdate WithValueReset();

Подробно о методах и интеграции AppMetrica в приложение смотрите в разделах документации для Android и iOS.