Руководство по миграции на версию 6.0.0
Одновременное использование двух версий AppMetrica SDK
В одном приложении могут использоваться сразу две версии AppMetrica SDK. Такая ситуация нежелательна. Статистика должна собираться нормально, хотя допустимы небольшие отклонения. В этом случае возможно некоторое увеличение размера приложения, так как в составе приложения будут присутствовать два SDK, вместо одного.
Внимание
Категорически не рекомендуется одновременная работа в коде приложения двух версий SDK с одним API_KEY
. То есть нельзя одновременно активировать AppMetrica
и использовать префаб с одним API_KEY
. Это не приведет к сбоям и крэшам в приложении, но вызовет искажение и нарушение статистики. При миграции на новую версию плагина проверьте, что у вас нет папки Assets/AppMetrica
, новая версия плагина поставляется через UPM и будет располагаться в Library/PackageCache/io.appmetrica.analytics@hash
.
Руководство по миграции
Руководство содержит примеры, демонстрирующие различия между версиями плагина 5.2.0
и 6.0.0
. В разделе рассматриваются только те методы, в которых нарушена обратная совместимость.
Для миграции на новую версию выполните следующие шаги:
- Удалите старую версию плагина.
- Добавьте новую версию плагина используя UPM. Подробнее смотрите в разделе про подключение плагина.
- Замените префаб на активацию через RuntimeInitializeOnLoadMethodAttribute. Подробнее смотрите в разделе про замену префаба.
- В коде проекта замените те классы и методы, которые были переименованы или поменяли только пакет. Подробнее смотрите в разделе про переименования.
Подключение AppMetrica Unity Plugin 6.0.0
Для подключения плагина используется Unity Package Manager.
Добавьте зависимости в Packages/manifest.json:
{
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"com.google.external-dependency-manager",
"io.appmetrica.analytics"
]
}
],
"dependencies": {
"com.google.external-dependency-manager": "1.2.183",
"io.appmetrica.analytics": "6.3.0"
}
}
-
Подключите External Dependency Manager согласно документации.
-
Добавьте AppMetrica Unity Plugin в зависимости в Packages/manifest.json:
{
"dependencies": {
"io.appmetrica.analytics": "https://github.com/appmetrica/appmetrica-unity-plugin.git#v6.3.0"
}
}
Замена префаба
- Создайте static метод с атрибутом
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
и произведите активацию AppMetrica с помощью методаAppMetrica.Activate()
.
Пример:
using Io.AppMetrica;
using UnityEngine;
public static class AppMetricaActivator {
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void Activate() {
AppMetrica.Activate(new AppMetricaConfig("APIKey") {
// copy settings from prefab
CrashReporting = true, // prefab field 'Exceptions Reporting'
SessionTimeout = 10, // prefab field 'Session Timeout Sec'
LocationTracking = false, // prefab field 'Location Tracking'
Logs = false, // prefab field 'Logs'
FirstActivationAsUpdate = !IsFirstLaunch(), // prefab field 'Handle First Activation As Update'
DataSendingEnabled = true, // prefab field 'Statistics Sending'
});
}
private static bool IsFirstLaunch() {
// Implement logic to detect whether the app is opening for the first time.
// For example, you can check for files (settings, databases, and so on),
// which the app creates on its first launch.
return true;
}
}
- Удалите
AppMetrica
префаб с ваших сцен.
Переименование
Примечание
Для работы с AppMetrica используйте static методы из класса AppMetrica
. Для этого замените AppMetrica.Instance
на AppMetrica
и добавьте импорт Io.AppMetrica
.
- Интерфейс
IYandexAppMetrica
удален, методы перенесены в классAppMetrica
.- Свойство
LibraryVersion
удалено, используйте методGetLibraryVersion()
. - Свойство
LibraryApiLevel
удалено. - Метод
ActivateWithConfiguration
переименован вActivate
. - Метод
ReportEvent(string, IDictionary<string, object>)
удален, используйте методReportEvent(string, string)
. - Метод
ReportError(string, string)
удален. - Метод
ReportError(string, string, string)
удален. - Метод
ReportError(string, string, YandexAppMetricaErrorDetails)
удален, используйте методReportError(string, string, Exception)
. - Метод
ReportError(string, string, YandexAppMetricaErrorDetails)
удалён, используйте методReportError(string, string, Exception)
. - Метод
ReportError(Exception, string)
удален, используйте методReportError(string, Exception)
. - Метод
ReportError(YandexAppMetricaErrorDetails, string)
удалён, используйте методReportError(string, Exception)
. - Метод
ReportUnhandledException(YandexAppMetricaErrorDetails)
удален, используйте методReportUnhandledException(Exception)
. - Метод
ReportErrorFromLogCallback
удален. - Метод
SetStatisticsSending
переименован вSetDataSendingEnabled
. - Метод
RequestAppMetricaDeviceID
удален, используйте методRequestStartupParams
. - Метод
ReportReferralUrl
удален. - Метод
RequestTrackingAuthorization
удален.
- Свойство
- Класс
YandexAppMetricaConfig
переименован вAppMetricaConfig
и перенесен в пространство именIo.AppMetrica
.- Свойство
StatisticsSending
переименовано вDataSendingEnabled
. - Свойство
HandleFirstActivationAsUpdate
переименовано вFirstActivationAsUpdate
. - Свойство
AppForKids
удалено.
- Свойство
- Класс
YandexAppMetricaConfig.Coordinates
переименован вLocation
и перенесен в пространство именIo.AppMetrica
. - Класс
YandexAppMetricaPreloadInfo
переименован вPreloadInfo
и перенесен в пространство именIo.AppMetrica
. - Перечисление
YandexAppMetricaRequestDeviceIDError
удалено. - Перечисление
YandexAppMetricaRequestTrackingStatus
удалено.
AdRevenue
- Класс
YandexAppMetricaAdRevenue
переименован вAdRevenue
и перенесен в пространство именIo.AppMetrica
.- Свойство
AdRevenue
переименовано вAdRevenueValue
.
- Свойство
Revenue
- Класс
YandexAppMetricaRevenue
переименован вRevenue
и перенесен в пространство именIo.AppMetrica
.- Конструктор
(double, string)
удален, используйте(long, string)
. - Свойство
Price
удалено, используйтеPriceMicros
. - Свойство
Receipt
переименовано вReceiptValue
.
- Конструктор
- Класс
YandexAppMetricaReceipt
переименован вRevenue.Receipt
и перенесен в пространство именIo.AppMetrica
.
Атрибуты пользователя
- Класс
YandexAppMetricaAttribute
переименован вAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaBirthDateAttribute
переименован вBirthDateAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaBooleanAttribute
переименован вBooleanAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaCounterAttribute
переименован вCounterAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaGenderAttribute
переименован вGenderAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaGenderAttribute.Gender
переименован вGenderAttribute.Gender
и перенесен в пространство именIo.AppMetrica.Profile
.- Значение
FEMALE
переименовано вFemale
. - Значение
MALE
переименовано вMale
. - Значение
OTHER
переименовано вOther
.
- Значение
- Класс
YandexAppMetricaNameAttribute
переименован вNameAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaNotificationsEnabledAttribute
переименован вNotificationsEnabledAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaNumberAttribute
переименован вNumberAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaStringAttribute
переименован вStringAttribute
и перенесен в пространство именIo.AppMetrica.Profile
. - Класс
YandexAppMetricaUserProfile
переименован вUserProfile
и перенесен в пространство именIo.AppMetrica.Profile
.- Метод
ApplyFromArray(List<YandexAppMetricaUserProfileUpdate>)
удален.
- Метод
- Класс
YandexAppMetricaUserProfileUpdate
переименован вUserProfileUpdate
и перенесен в пространство именIo.AppMetrica.Profile
.