Руководство по миграции на версию 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.7.0"
}
}
-
Подключите External Dependency Manager согласно документации.
-
Добавьте AppMetrica Unity Plugin в зависимости в Packages/manifest.json:
{
"dependencies": {
"io.appmetrica.analytics": "https://github.com/appmetrica/appmetrica-unity-plugin.git#v6.7.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.