Перейти к содержанию

Что нового в версии библиотеки для Android🔗

v6.19.0 Release (17-01-2025)🔗

В данной версии:

Модуль MRGService:

  • Улучшена работа SDK во Вьетнаме.
  • Добавлены логи для параметров MRGSTracker#trackEvent(String name, Map params).

Модуль Advertising:

  • Улучшена загрузка рекламы для URL не содержащих расширения файла

Модуль Appsflyer:

  • Исправлена ошибка, когда некорректная сумма платежа могла быть отправлена в AppsFlyer для Huawei платежей.

Модуль Authentication:

  • Исправлена ошибка java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern для MyGames авторизации.

Модуль Billing-catappult:

  • Добавлена поддержка Catappult.

Модуль Bank:

  • Исправлена возможная потеря deviceId в http запросах валидации платежа.

Модуль Notifications:

  • Исправлен сбой при нажатии на уведомление, если developerPayload содержит лишние кавычки

Подробнее о новых функциях и их использовании читайте в документации.


v6.18.0 Release (15-11-2024)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый класс MRGSProductInfo для отправки информации о продукте нового формата
  • Обновлен androidx.core:core:1.9.0 до androidx.core:core-ktx:1.13.1
  • Обновлен com.google.android.gms:play-services-ads-identifier с 18.0.1 до 18.1.0.
  • Обновлен com.google.android.gms:play-services-appset с 16.0.2 до 16.1.0.
  • Обновлен androidx.appcompat:appcompat с 1.6.1 до 1.7.0
  • Обновлен kotlin с 1.8.22 до 1.9.23
  • Улучшена работа очереди потоков, исправлена ошибка Thread pool blocking queue is full

Модуль Authentication:

  • Добавлена возможность открывать другой браузер с CustomTabs, если браузер использующийся по умолчанию не поддерживает CustomTabs. Если на устройстве нет браузера с CustomTabs, то будет открываться обычный браузер.
  • Удалена зависимость androidx.localbroadcastmanager:localbroadcastmanager.
  • Обновлен com.google.android.gms:play-services-games-v2 с 20.1.0 до 20.1.2

Модуль Advertising:

  • Удалена зависимость androidx.localbroadcastmanager:localbroadcastmanager.
  • Обновлен androidx.recyclerview:recyclerview c 1.2.1 до 1.3.2.
  • Обновлен androidx.vectordrawable:vectordrawable с 1.1.0 до 1.2.0
  • Исправлено получение имени видео файла из значения creative_video_file в MRGSAdvertisingCampaign.

Модуль Bank:

  • Обновлен com.android.billingclient:billing c 6.0.1 до 7.1.1.
  • Обновлен com.facebook.android:facebook-gamingservices с 16.0.1 до 17.0.2

Модуль GDPR:

  • Обновлен com.bigossp:bigo-ads c 4.7.0 до 5.0.2.
  • Обновлен com.moloco.sdk.adapters:moloco:2.1.1.0 до com.moloco.sdk:moloco-sdk:3.2.0
  • Обновлен com.tappx.sdk.android:tappx-sdk c 4.0.6 до 4.1.6
  • Обновлен com.unity3d.ads:unity-ads c 4.4.1 до 4.12.3
  • Обновлен com.tapjoy:tapjoy-android-sdk c 12.11.0 до 14.1.0
  • Обновлен com.my.target:mytarget-sdk c 5.16.2 до 5.22.1
  • Обновлен com.vungle:publisher-sdk-android:6.12.0 до com.vungle:vungle-ads:7.4.1
  • Обновлен com.fyber:fairbid-sdk c 3.33.1 до 3.55.0
  • Обновлен com.facebook.android:facebook-core c 15.1.0 до 17.0.2
  • Обновлен com.chartboost:chartboost-sdk c 9.1.1 до 9.7.0
  • Обновлен com.applovin:applovin-sdk c 11.6.0 до 13.0.0
  • Исправлена утечка Activity в CCPA.

Модуль Notifications:

  • Обновлен com.google.firebase:firebase-messaging с 24.0.0 до 24.0.3.
  • Добавлены intent-фильтры для broadcast receivers.

Модуль Recommendations:

  • Добавлен новый тип события для Recsys - geo pricing.

Модуль Showcase:

  • Удалена зависимость androidx.localbroadcastmanager:localbroadcastmanager.
  • Обновлен androidx.browser:browser c 1.5.0 до 1.8.0.
  • Обновлен androidx.recyclerview:recyclerview c 1.2.1 до 1.3.2.

Подробнее о новых функциях и их использовании читайте в документации.


v6.17.4 Release (25-10-2024)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка, когда терялись события MRGSMetrics если события были добавлены до инициализации MRGService и это был самый первый запуск приложения (при этом на последующих запусках приложения события не терялись)
  • Исправлен сброс счетчика общего времени, проведенного в игре (allSession) при смене дня во время игры

Модуль Advertising:

  • Исправлены некоторые ошибки ANR

Модуль Didomi:

  • Исправлены ошибки ANR

Модуль GDPR:

  • Обновлены зависимости CCPA Mintegral

Модуль Notifications:

  • Добавлена проверка данных на null в PostPermissionActivity.

Подробнее о новых функциях и их использовании читайте в документации.


v6.17.3 Release (05-10-2024)🔗

В данной версии:

Модуль MRGService:

  • Метод MRGSDevice#getSendDictionary(Callback<Object) помечен как Deprecated и будет удален в ближайшем будущем.
  • Добавлен сбор GAID, ASID, OA ID, ODID и Amazon advertising id и отправка их на сервер в виде отдельных параметров.
  • Добавлена обработка всех ошибок в методе MRGSReflection.isClassExists().

Модуль Bank:

  • Изменен максимальный размер developerPayload в OnestoreBilling - уменьшен до 200 символов.
  • Исправлено исчезновение developerPayload при возобновлении работы приложения после onPause.
  • Исправлена ошибка когда transactionId от Samsung Galaxy Store мог быть не отправлен в Appsflyer.
  • Исправлен thread race condition, которое могло приводить к потере developerPayload при валидации платежа.

Модуль Didomi:

  • Обновлен io.didomi.sdk:android c 2.10.1 до 2.13.0

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 22.1.0 до 22.1.2

Модуль MyTracker:

  • Обновлен com.my.tracker:mytracker-sdk c 3.0.12 до 3.3.2
  • Изменена minSdkVersion с 19 to 21.

Модуль Notifications:

  • Добавлены блоки try/catch в методах создания уведомлений и добавлено отправка логов на сервер.

Модуль Support:

  • Добавлена проверка доступности сети при отображении окна поддержки.

Подробнее о новых функциях и их использовании читайте в документации.


v6.17.2 Release (12-09-2024)🔗

В данной версии:

  • Исправлена ошибка с версии 6.17.0, из-за которой нельзя было ставить другие приложения в которых используется MRGS SDK из-за ошибки INSTALL_FAILED_DUPLICATE_PERMISSION: Package to redeclare permission games.my.mrgs.permission.OPEN_UDID already owned

Подробнее о новых функциях и их использовании читайте в документации.


v6.17.1 Release (06-09-2024)🔗

В данной версии:

Модуль Analytics:

  • Добавлено новое значение waitForTCF для события mrgs_dma_start.

Подробнее о новых функциях и их использовании читайте в документации.


v6.17.0 Release (29-08-2024)🔗

В данной версии:

Модуль MRGService:

  • Добавлена возможность делиться OpenUDID между приложениями.
  • Добавлен новый способ для генерации устойчивого OpenUDID
  • Добавлен новый ключ MRGSTrackerMediationNetwork.ToponPte для кастомных логов.
  • Исправлена ошибка дублирования значения при использовании MRGService#setHost, что приводило к поломке сетевых запросов.

Модуль Analytics:

  • Удалена зависимость com.appsflyer:adrevenue.
  • Обновлен com.appsflyer:af-android-sdk с 6.14.2 до 6.15.0.

Модуль Bank:

  • Исправлена работа восстановления подписок в Amazon - теперь отмененные и неактивные подписки не будут приходить в делегат

Модуль Didomi:

  • Обновлен io.didomi.sdk:android c 2.7.0 до 2.10.1

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 22.0.1 до 22.1.0

Подробнее о новых функциях и их использовании читайте в документации.


v6.16.1 Release (02-07-2024)🔗

В данной версии:

Модуль MRGService:

  • Добавлена внутренняя поддержка переключения хостов, на случай если некоторые страны блокируют доступы к MRGS ресурсам.
  • Отключена проверка безопасности SSL соединения для всех сетевых запросов к MRGS серверу для Android 7.0 и ниже.

Модуль Authentication:

  • Изменена минимальная требуемая версия Android c 4.4 (19 api) до 5.0 (21 api) для модуля MRGSGoogleSignIn
  • Обновлен com.google.android.gms:play-services-games с 23.1.0 до 23.2.0.
  • Обновлен com.google.android.gms:play-services-auth с 20.6.0 до 21.2.0.
  • Изменена минимальная требуемая версия Android c 4.4 (19 api) до 5.0 (21 api) для модуля MRGSGooglePlay
  • Обновлен com.google.android.gms:play-services-games-v2 с 17.0.0 до 20.1.0

Модуль Appsflyer:

  • Обновлен com.appsflyer:af-android-sdk с 6.14.0 до 6.14.2.

Модуль Bank:

  • Исправлена ошибка когда MRGSBillingDelegate#onReceiveFailedPurchase возвращал результат без ошибки для новой приватной реализации Google платежей.

Модуль Didomi:

  • Обновлен io.didomi.sdk:android c 2.5.1 до 2.7.0.

Подробнее о новых функциях и их использовании читайте в документации.


v6.16.0 Release (13-06-2024)🔗

В данной версии:

Модуль Authentication:

  • Добавлен асинхронный метод isLoggedIn для более точной проверки состояния.

Подробнее о новых функциях и их использовании читайте в документации.


v6.15.1 Release (11-06-2024)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка java.util.ConcurrentModificationException в MRGSTracker.

Модуль Bank:

  • Добавлено автоматическое закрытие TopUp (WebView) при успешной покупке

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 22.0.0 до 22.0.1

Модуль GDPR:

  • Добавлена поддержка новых библиотек для CCPA - Moloco и BigoAds

Модуль Advertising:

  • Некоторые улучшения для отправки DSP ссылок.

Подробнее о новых функциях и их использовании читайте в документации.


v6.15.0 Release (28-05-2024)🔗

В данной версии:

Модуль MRGService:

  • Исправлено подключение к google сервисам для автотрекинга, добавлен таймер обратного отсчета для ограничения автоматического количества попыток подключения.
  • Исправлена ошибка ANR. Вызов getHwMemoryUse() был перенесен в фоновый поток внутри метода updateHwMemoryUse().

Модуль Authentication (Facebook):

  • Используемая версия Graph Api поднята до 19

Модуль Analytics:

  • Исправлена ошибка, когда терялись события отправленные во время активного waitForCustomerUserId режима.
  • Исправлена ошибка, когда AppsFlyer начинал отправку аналитики после снятия waitForCustomerUserId режима, но при этом еще не было получено соглашение от пользователя (DMA). Проблема возникала только при использовании waitForCustomerUserId режима.

Модуль Bank:

  • Добавлены новые поля isSandbox (сделан ли платеж в тестовом окружении) и usd (сумма платежа в долларах)
  • Исправлена ошибка java.lang.NoClassDefFoundError: Failed resolution of: Lcom/amazon/device/drm/LicensingListener. Данная ошибка больше не будет приводить к падению приложения.

Модуль GDPR:

  • Исправлен показ окна PIPA на маленьких экранах

Подробнее о новых функциях и их использовании читайте в документации.


v6.14.3 Release (16-05-2024)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ANR ошибка при вызове MRGSTracker#flush().

Подробнее о новых функциях и их использовании читайте в документации.


v6.14.2 Release (07-05-2024)🔗

В данной версии:

Модуль Analytics:

  • Обновлен com.appsflyer:af-android-sdk с 6.13.0 до 6.14.0.

Модуль Didomi:

  • Обновлен io.didomi.sdk:android c 2.4.0 до 2.5.1.

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 21.6.2 до 22.0.0.
  • Изменена минимальная требуемая версия Android c 4.4 (19 api) до 5.0 (21 api).

Модуль Notification:

  • Обновлен com.google.firebase:firebase-messaging с 23.1.2 до 24.0.0.
  • Изменена минимальная требуемая версия Android c 4.4 (19 api) до 5.0 (21 api).

Подробнее о новых функциях и их использовании читайте в документации.


v6.14.1 Release (27-04-2024)🔗

В данной версии:

Модуль MRGService:

  • Добавлена отправка firebaseInstanceId в события MRGS
  • Добавлен флаг для отключения автоматического трекинга платежей из удаленного конфига.
  • Изменен способ генерации sessionId c MD5 на UUID v4 для уменьшения коллизий.

Модуль Bank:

  • Изменено поведение метода restoreTransaction для Amazon. Теперь поведение метода будет похоже на поведение Google платежей, метод больше не будет пытаться грузить недостающие продукты, а будет обращаться к локальному кэшу с продуктами, который формируется при вызове requestProducts, и будет возвращаться ошибку в onReceiveFailedPurchase если не удалось найти продукт в локальном кэше.
  • Исправлена ошибка, когда не проводилось восстановление транзакций если на устройстве отсутствовал кеш, что данный платеж проводился именно на этом устройстве. Теперь платеж будет восстанавливаться в не зависимости на каком устройстве пользователь делает восстановление.
  • Исправлена ошибка, когда в редких случаях, после валидации платежа, вызывалось закрытие транзакция для всех не валидированных платежей для OneStore.

Модуль Didomi:

  • Обновлен io.didomi.sdk:android c 1.90.0 до 2.4.0.

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 21.6.1 до 21.6.2.

Подробнее о новых функциях и их использовании читайте в документации.


v6.14.0 Release (11-04-2024)🔗

В данной версии:

Модуль MRGService:

  • Исправлен возможный ANR из-за записи отладочных журналов для удаленной отладки.
  • Исправлены ошибки NullPointerException и ANR в TransferManager.
  • Исправлены некоторые ошибки которые могли приводить к падениям MRGService.
  • Исправлен сбой при подключения к Google Billing при автоматическом трекинге платежей.

Модуль Bank:

  • Исправлена ошибка ForegroundTaskPipeline: No UI visible to execute task из-за которой не запускалось платежное окно в Amazon IAP SDK в Unity сборках.

Модуль Didomi:

  • Изменено поведение для вызова FirebaseAnalytics#setAnalyticsCollectionEnabled. Теперь данный метод будет вызываться даже если пользователь не попадает под показ TCF, чтобы избежать блокировки для сбора данных Firebase.

Модуль Firebase:

  • Добавлен новый метод FirebaseAnalytics#setAnalyticsCollectionEnabled(bool)

Подробнее о новых функциях и их использовании читайте в документации.


v6.13.3 Release (02-04-2024)🔗

В данной версии:

Модуль Advertising:

  • Добавлена поддержка дополнительных трекинговых ссылок (процент просмотра ролика) для AdTech
  • Отключено кэширование сетевых запросов для AdTech.

Модуль Bank:

  • Исправлена ошибка при сборке проекта, если проект использовал обфускацию с proguard-android-optimize.txt

Модуль Didomi:

  • MRGSDidomi будет также вызывать FirebaseAnalytics#setAnalyticsCollectionEnabled с true, после каждого вызова FirebaseAnalytics#setConsent.

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 21.5.1 до 21.6.1.

Подробнее о новых функциях и их использовании читайте в документации.


v6.13.2 Release (27-03-2024)🔗

В данной версии:

  • Исправлены ошибки JVM Verifier rejected class которые приводили к проблемам на некоторых версиях Android из-за того что kotlin в MRGS SDK компилировался старым компилятором.

Модуль Analytics:

  • Исправлен краш, когда MRGSAnalytics модуль добавляли в проект но не передавали MRGSAppsFlyerParams для инициализации AppsFlyer.

Модуль Advertising:

  • Обновлены правила обфускации.

Модуль Bank:

  • Обновлены правила обфускации.
  • Исправлена работа MyGames платежей (WebView).

Подробнее о новых функциях и их использовании читайте в документации.


v6.13.1 Release (25-03-2024)🔗

В данной версии:

Модуль Bank:

  • Исправлена ошибка com.amazon.a.a.o.a.b: Executing thread must be thread: 2, was: N при попытке проинициализировать Amazon IAP не из Android main-thread.

Модуль Didomi:

  • Исправлена ошибка java.lang.ClassNotFoundException: games.my.mrgs.analytics.MRGSAnalytics.

Подробнее о новых функциях и их использовании читайте в документации.


v6.13.0 Release (21-03-2024)🔗

В данной версии:

  • Добавлена поддержка DMA для AppsFlyer и Firebase.
  • Минимальная требуемая версия kotlin 1.8.22.

Модуль MRGService:

  • Исправлена ошибка когда автоматический трекинг платежей не отключался при использовании MRSRGBank модуля, из-за чего автоматический трекинг делал лишний сетевой запрос на валидацию платежей.

Модуль Advertising:

  • Улучшена проверка hash для скачанных креативов в AdTech.

Модуль Analytics:

  • Обновлен com.appsflyer:af-android-sdk c 6.12.1 до 6.13.0.

  • Исправлена ошибка когда MRGSAnalytics не принимал и не отправлял платежи в AppsFlyer, если использовался автоматический трекинг платежей.

Модуль Bank:

  • Добавлен новый метод MRGServiceParams#setBillingVersionAtFirstRun(int) для смены версии на первом запуске приложения. Для последующих запусков будет использоваться версия из remote config.

  • Исправлена работа оплаты через СБП в MyGames (WebView)

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics c 21.3.0 до 21.5.1.

Модуль Didomi:

  • Добавлен новый метод MRGSDidomi#reset().

  • Обновлен io.didomi.sdk:android c 1.89.0 до 1.90.0.

Модуль GDPR:

  • Изменена ширина кнопки диалогового окна COPPA.

Модуль IronSource-Adapter:

  • Добавлена отправка данных о GDPR в AdTech.

Подробнее о новых функциях и их использовании читайте в документации.


v6.12.0 Release (27-02-2024)🔗

В данной версии:

Модуль MRGService:

  • Добавлен сбор версий некоторых сторонних SDK.
  • Добавлен новый метод MRGSUsers#SetEmail(String) для передачи email пользователя в MRGS.
  • Добавлена поддержка автоматического трекинга платежей для Google Play. Данный функционал включен по умолчанию, и отправит исторические данные при первом старте на сервера MRGS.

Модуль Analytics:

  • Добавлена поддержка отправки платежей в AppsFlyer с сервера MRGS.

Модуль Bank:

  • Обновлен Samsung IAP SDK c 5.0.1 до 6.1.0.
  • Обновлен Amazon IAP SDK с 2.0.76 до 3.0.4.

  • Исправлена ошибка когда MRGSBank неправильно завершал операцию по работе с пустым чеком, из-за чего могло вызываться несколько callback у клиента.

  • Исправлена долгая валидация при наличии в истории транзакций с одинаковыми user и transaction id.

Модуль Didomi:

  • Добавлен новый метода MRGSDidomi#shouldUserStatusBeCollected().
  • Добавлена поддержка Android SDK Activity для работы с Didomi для проектов которые не используют Androidx функционал.

  • Обновлен io.didomi.sdk:android c 1.87.0 до 1.89.0.

Модуль GDPR:

  • Исправлено условие для показа кнопки CCPA, теперь поведение будет таким же как на iOS.

Модуль Notifications:

  • Добавлена поддержка различных стилей расширенных уведомлений и улучшена поддержка кастомных уведомлений.

  • Исправлено поведение включения уведомлений на Android 13 (при выключенном отложенном старте).

Подробнее о новых функциях и их использовании читайте в документации.


v6.11.2 Release (29-01-2024)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка, когда в редких случаях не отправлялось событие applicationRun, из-за чего не отмечались установки в 1Link.
  • Исправлен ANR при вызове метода MRGSDevice#getHwMemoryUse().
  • Исправлена редкая ошибка IndexOutOfBoundsException при вызове метода MRGSDevice#getHwMemoryUse().

Модуль Advertising:

  • Исправлен ANR при загрузке рекламы.

Модуль Showcase:

  • Исправлен ANR при загрузке рекламы.

Подробнее о новых функциях и их использовании читайте в документации.


v6.11.1 Release (24-01-2024)🔗

В данной версии:

Модуль Advertising:

  • Улучшен алгоритм вычисления средней цены рекламы для AdTech.
  • Улучшен подход к проверке рекламы для AdTech.

Модуль Authentication:

  • Исправлена проблема с "web-авторизацией" на платформе Google Play Games on PC.

Модуль Bank:

  • Добавлена обработка ошибки RESULT_NEED_LOGIN при инициализации OneStore IAP SDK.

  • Исправлена ошибка из-за которой отправлялся пустой developerPayload на сервер MRGS для OneStore платежей.

Модуль IronSource-Adapter:

  • Улучшена загрузка рекламы для AdTech.

Подробнее о новых функциях и их использовании читайте в документации.


v6.11.0 Release (17-01-2024)🔗

В данной версии:

Модуль Bank:

  • Добавлена поддержка OneStore платежей.

Модуль GDPR:

  • Добавлена поддержка корейского закона PIPA.

Подробнее о новых функциях и их использовании читайте в документации.


v6.10.1 Release (14-12-2023)🔗

В данной версии:

Модуль Didomi:

  • Обновлен io.didomi.sdk:android c 1.85.1 до 1.87.0.

  • Исправлена ошибка с отправкой метрик для MRGSDidomi.

Подробнее о новых функциях и их использовании читайте в документации.


v6.10.0 Release (04-12-2023)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый метод MRGService#setHost(String) для смены сетевого адреса в MRGService.

Модуль Advertising:

  • Улучшено кеширование роликов для AdTech - теперь коллизий при загрузке возникать не будет.

Модуль Authentication:

  • Исправлена отправка событий socialLogin и socialUser когда используется GooglePlayGamesV2.

Модуль Didomi:

  • Добавлен новый модуль MRGSDidomi для поддержки TCF.

Модуль Firebase:

  • Изменено поведение для отправки событий mrgs_valid_inapp_N_dollars_plus. Теперь данные события будут также отсылаться и для тестовых платежей.

Модуль GameCenter:

  • Модуль MRGSGameCenter помечен как deprecated и будет удален в ближайшем будущем.

Модуль IronSource-Adapter:

  • Добавлена дополнительная статистика по принятым соглашениям и настройкам при запросах на сервер.

Модуль Showcase:

  • Изменен шрифт в заголовке витрины с gotham на open-sans.

Подробнее о новых функциях и их использовании читайте в документации.


v6.9.4 Release (20-11-2023)🔗

В данной версии:

Модуль GDPR:

  • Исправлена ошибка когда показывалось окно обновления соглашения вместо смены издателя если у пользователя была ранее принята версия 1591736400.
  • Исправлена ошибка когда callback не был вызван через MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams, BiConsumer<MRGSGDRPShowResult, MRGSError>) если показывали COPPA через MRGSGDPR и COPPA вернула ошибку.
  • Исправлена ошибка когда методы показа соглашения могли пропустить показ обновления соглашения или смене издателя до следующего перезапуска приложения.

Подробнее о новых функциях и их использовании читайте в документации.


v6.9.3 Release (14-11-2023)🔗

В данной версии:

Модуль GDPR:

  • Изменена логика работы MRGSGDPR#showDefaultAgreementAtActivity(Activity, String) метода для показа дефолтного файла при смене **издателя.

Подробнее о новых функциях и их использовании читайте в документации.


v6.9.2 Release (14-11-2023)🔗

В данной версии:

Модуль GDPR:

  • Исправлена ошибка, когда MRGSGDPR#shouldShowGDPR(Activity, String, boolean, MRGSGDPRAsyncStatus) метод считывал isEUOnly флаг из MRGSGDPR#onlyEU(boolean) вместо переданного параметра. Теперь будет считывать только переданный параметр и игнорироваться MRGSGDPR#onlyEU(boolean).
  • Исправлен ClassCastException для MRGSGDPR#getAgreementTime(Context) и MRGSGDPR#getAcceptedAgreement(Context) методов.
  • Исправлена логика с некорректным выбором файла для случаев смены издателя и для случаев обновления версии соглашения с рекламой.

Подробнее о новых функциях и их использовании читайте в документации.


v6.9.1 Release (10-11-2023)🔗

В данной версии:

Модуль GDPR:

  • Изменена логика для MRGSGDPR#setPublisherUpdateFile(String) для обработки null значений.

  • Исправлена ошибка из-за которой новый метод MRGSGDPR#ShowAgreement() не считывал значение MRGSGDPRShowParam#isAutomaticCOPPAFlowEnabled().

  • Исправлена проблема с выбором китайской локализации для GDPR на основе локализации устройства пользователя.
  • Исправлен краш в COPPA, когда не удавалось продолжить COPPA после принятия соглашения.

Подробнее о новых функциях и их использовании читайте в документации.


v6.9.0 Release (08-11-2023)🔗

В данной версии:

Модуль GDPR:

  • Добавлена поддержка показа GDPR для случаев смены издателя.
  • Улучшено определение необходимости показа соглашения - теперь оно происходит до перезапуска приложения.
  • Добавлена поддержка чтения файлов из StreamingAssets (теперь достаточно передать в методы только его имя)
  • Улучшена локализация - теперь локализация соглашения будет автоматически выбираться на основе текущего языка пользователя

  • Добавлен новый метод MRGSGDPR#setup(Activity, String, String) для инициализации MRGSGDPR и MRGSCOPPA.

  • Добавлен новый метод MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams, BiConsumer<MRGSGDPRShowResult, MRGSError>) для показа GDPR окна.
  • Добавлен новый метод MRGSGDPR#shouldShowAgreement(Activity, BiConsumer<MRGSGDPRShowReason, MRGSGDPRAgreement>) для проверки возможности показать пользователю GDPR окна.
  • Добавлен новый метод MRGSGDPR#onAgreementAccepted(Context, boolean) чтобы уведомить MRGS что пользователь принял соглашение в не MRGS GDPR окна. (Для случаев показа свои собственных окон).
  • Добавлен новый временный метод MRGSGDPR#setPublisherUpdateFile(String) для выставления пути к собственному html файлу для случаев смены издателя.
  • Добавлено новое метод MRGSGDPR#setOnShowListener(OnShowListener) для выставления слушателя событий показа MRGS GDPR окна.
  • Добавлено новое метод MRGSGDPR#getAcceptedAgreement(Context) для получения информации по последнему принятому соглашению пользователем.
  • Добавлено новое метод MRGSGDPR#getLocalizations(Context) для получения списка доступных локализаций из SDK файла mrgsgdpr_langs.json.

  • Добавлен новый класс MRGSGDPRAgreement содержащий информацию по текущей версии GDPR в MRGS консоли.

  • Добавлен новый класс MRGSGDPRAcceptedAgreement содержащий информацию по принятому соглашению пользователем.
  • Добавлен новый класс MRGSGDPRLocalization содержащий разный набор свойств для локализации html страниц в MRGSGDPR SDK.
  • Добавлен новый класс MRGSGDPRShowParams содержащий разный набор свойств для изменения поведения показа MRGS GDPR окна.
  • Добавлен новый enum MRGSGDPRShowReason определяющий причины показа MRGS GDPR окна.
  • Добавлен новый класс MRGSGDPRShowResult содержащий результат показа MRGS GDPR окна.

  • Метод MRGSGDPR#withAdvertising(boolean) помечен как устаревшим. Используйте MRGSGDPRShowParams#withAdvertising(boolean).

  • Метод MRGSGDPR#enableAutomaticCOPPAFlow(String, String) помечен как устаревшим. Используйте MRGSGDPRShowParams#setAutomaticCOPPAFlowEnabled(boolean).
  • Метод MRGSGDPR#setLocalizationLanguage(String) помечен как устаревшим. Используйте MRGSGDPRShowParams#setLocalization(MRGSGDPRLocalization).
  • Метод MRGSGDPR#setUseWebViewForExternalLinks(boolean) помечен как устаревшим. Используйте MRGSGDPRShowParams#setUseWebViewForExternalLinks(boolean).
  • Метод MRGSGDPR#getAgreementTime(Context) помечен как устаревшим. Используйте MRGSGDPR#getAcceptedAgreement(Context).
  • Метод MRGSGDPR#getAgreedVersion(Context) помечен как устаревшим. Используйте MRGSGDPR#getAcceptedAgreement(Context).
  • Метод MRGSGDPR#getSupportedLocalizations(Context) помечен как устаревшим. Используйте MRGSGDPR#getLocalizations(Context).
  • Метод MRGSGDPR#showDefaultAgreementAtActivity(Activity, String) помечен как устаревшим. Используйте MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams).
  • Метод MRGSGDPR#showAgreementAtActivity(Activity, String, String) помечен как устаревшим. Используйте MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams).
  • Метод MRGSGDPR#checkIfUserGetsUnderGDPR(Activity, String, MRGSGDPRAsyncStatus) помечен как устаревшим. Используйте MRGSGDPR##shouldShowAgreement(Activity, BiConsumer<MRGSGDPRShowReason, MRGSGDPRAgreement>).
  • Метод MRGSGDPR#shouldShowGDPR(Activity, String, boolean, MRGSGDPRAsyncStatus) помечен как устаревшим. Используйте MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams, BiConsumer<MRGSGDPRShowResult, MRGSError>).
  • Метод MRGSGDPR#setUserHasAcceptedAgreement(Context, boolean, boolean, String) помечен как устаревшим. Используйте MRGSGDPR#onAgreementAccepted(Context, boolean).
  • Интерфейс MRGSGDPR.MRGSGDPRDelegate помечен как устаревшим. Используйте MRGSGDPR.OnShowListener.

Модуль IronSource-Adapter:

  • Исправлена ошибка из-за которой, после просмотра рекламы, в редких случаях могло отправиться большое кол-во дублированных событий показа, завершения, кликов и прочих событий.

Подробнее о новых функциях и их использовании читайте в документации.


v6.8.1 Release (17-10-2023)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка когда MRGService мог некорректно отслеживать сессии в приложении. Также это могло влиять на поведение: рекламы (MRGSAdvertising), авторизации (MRGSAuthentication), уведомлений (MRGSNotifications), и платежей (MRGSBank). Обычно это приводило к невозможности отображать UI в редких случаях.

Модуль Notifications:

  • Исправлен NullPointerException при запросе разрешения на отправку уведомлений.

Подробнее о новых функциях и их использовании читайте в документации.


v6.8.0 Release (13-10-2023)🔗

В данной версии:

  • Добавлена поддержка Android 14.
  • Обновлен androidx.core:core с 1.7.0 до 1.9.0.
  • Обновлен androidx.appcompat:appcompat с 1.4.2 до 1.6.1.

Модуль MRGService:

  • Добавлен метод MRGSGeoIpInfo#getCity() для получения названия города.

  • Обновлен com.huawei.hms:ads-identifier с 3.4.58.301 до 3.4.62.300.

  • Обновлен com.huawei.hms:opendevice с 6.9.0.300 до 6.11.0.300.
  • Исправлена ошибка, когда метод MRGService#getServerTime() в некоторых случаях возвращало 0. Улучшена работа по трекингу серверного времени, теперь оно всегда будет актуальным с запуска приложения и до перезагрузки устройства.

Модуль Advertising:

  • Расширена поддержка click-ссылок для AdTech

  • Исправлена ошибка Not attached to Activity для VideoAdsFragment.

  • Исправлена ошибка когда onSaveInstanceState был вызван перед закрытием VideoAdFragment.

Модуль Authentication:

  • Обновлен com.google.android.gms:play-services-auth с 20.4.0 до 20.6.0.
  • Обновлен androidx.browser:browser с 1.3.0 до 1.5.0.

  • Исправлена ошибка когда onSaveInstanceState был вызван перед закрытием диалога MyGamesLoginFragment.

Модуль Bank:

  • Обновлен com.huawei.hms:iap с 6.1.0.300 до 6.4.0.301.

  • Исправлена ошибка Too many bind requests 999+ из-за проблем установки соединения с Google Service.

Модуль IronSource-Adapter:

  • Добавлена поддержка дополнительных параметров в запросах к серверу.

  • Исправлен NullPointerException при попытке высвободить ресурсы.

  • Исправлена ошибка когда случайно удалялся приготовленный для показа контент.
  • Исправлена ошибка когда IronSource не мог создать MRGSCustomAdapter, если использовалась старая версия IronSource SDK.

Модуль IronSource:

  • Добавлена проверка интеграции для модуля MRGSIronSource.

Модуль Notifications:

  • Обновлен com.huawei.hms:push с 6.7.0.300 до 6.11.0.300.

Подробнее о новых функциях и их использовании читайте в документации.


v6.7.2 Release (26-09-2023)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка некорректной отправки данных через метод MRGSTracker#trackEvent(String, Map<String, Object>).

Модуль Analytics:

  • Исправлен регресс, с момента выхода релиза 6.7.1, из-за которого перестали отправляться события по платежам в AppsFlyer.

Модуль Advertising:

Модуль GDPR:

  • Добавлена поддержка CCPA для новых библиотек: Tappx и Ogury.

  • Исправлена редкая ошибка NullPointerException при попытке показать GDPR при помощи FragmentDialog(WebView).

  • Исправлена ошибка ActivityNotFoundException при попытке перейти в браузер по ссылке, если на устройстве нет браузера.

Подробнее о новых функциях и их использовании читайте в документации.


v6.7.1 Release (02-09-2023)🔗

В данной версии:

Модуль MRGService:

  • Обновлены правила proguard для агрессивного obfuscation (android.enableR8.fullMode=true).

Модуль Authentication:

  • Исправлена ошибка при попытке авторизоваться в MyGames через браузер, когда система уничтожала данные нужные для авторизации.

Подробнее о новых функциях и их использовании читайте в документации.


v6.7.0 Release (16-08-2023)🔗

В данной версии:

  • Добавлен новый модуль ISMRGSCustomAdapter - адаптер кросс-промо в связке с DSP для IronSource.

Модуль MRGService:

  • Исправлена ошибка приводящая к дублированию MRGS логов в Logcat.

Модуль Bank:

  • Обновлен com.android.billingclient:billing с 4.1.0 до 6.0.1.

Модуль GDPR:

  • Добавлен новый метод MRGSGDPR#setBackgroundColor(float, float, float, float) для выставления background для WebView.

Подробнее о новых функциях и их использовании читайте в документации.


v6.6.0 Release (12-07-2023)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый MRGServiceParams#setUserAnonymizationEnabled(boolean) метод для анонимизации пользователя в сетевых запросах на сервер.

  • Исправлена ошибка когда MRGSDevice#getAdvertisingId мог вернуть null в callback.

Модуль Analytics:

  • Обновлен com.appsflyer:af-android-sdk с 6.11.1 до 6.12.1.

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 21.2.2 до 21.3.0.

Модуль GDPR:

  • Расширен список штатов для поддержи CCPA: Коннектикут(CTDPA) и Колорадо(CPA).

Модуль MyTracker:

  • Обновлен com.my.tracker:mytracker-sdk с 3.0.11 до 3.0.12.

Подробнее о новых функциях и их использовании читайте в документации.


v6.5.1 Release (26-06-2023)🔗

В данной версии:

Модуль Advertising:

  • Исправлена работа внутренних алгоритмов по оценке стоимости кросс-промо.

Модуль Analytics:

  • Обновлен com.appsflyer:af-android-sdk с 6.11.0 до 6.11.1.

Подробнее о новых функциях и их использовании читайте в документации.


v6.5.0 Release (20-06-2023)🔗

В данной версии:

Модуль MRGService:

  • Добавлена поддержка удаленной сборки логов.

  • Исправлена некорректная отправка унифицированных логов через @deprecated MRGSTracker#trackEvent(MRGSTrackerEvent) метод.

Модуль Authentication:

  • Исправлена ошибка когда callback вызывался два раз при авторизации в Facebook.

Модуль Notifications:

  • Добавлен новый MRGServiceParams#setClearNotificationTrayEnabled(boolean) метод для управления очисткой push-notifications при запуске приложения.

Подробнее о новых функциях и их использовании читайте в документации.


v6.4.0 Release (09-06-2023)🔗

В данной версии:

  • Обновлен com.facebook.android:facebook-gamingservices с 11.2.0 до 16.0.1.

Модуль MRGService:

  • Улучшено определение геопозиции по IP.
  • Теперь MRGSDevice#getReachability будет возвращать 1 (медленный интернет) для мобильного интернета. Ранее возвращалось 2 для мобильно и wifi соединения.

  • Исправлена приватная ошибка на входные параметры метода MRGSTracker#trackAdRevenue.

Модуль GDPR:

  • Исправлена ошибка с UI в MRGSCOPPA.

Модуль Analytics:

  • Добавлена отправка тестовых платежей в AppsFlyer. Такие платежи будут отправляться с revenue 0.
  • Добавлена поддержка отправки платежей Amazon в AppsFlyer.

  • Обновлен com.appsflyer:af-android-sdk с 6.10.2 до 6.11.0.

  • Исправлена потенциальная ошибка, приводящая к падению приложения.

Модуль Authentication:

  • Добавлены новые методы MRGSAuthentication#login(Activity, MRGSLoginCallback) и MRGSAuthentication#login(Activity, List<String>, MRGSLoginCallback) для стабильной авторизации. Старые методы помечены как deprecated.

Модуль Firebase:

  • Добавлена отправка тестовых платежей в Firebase. Такие платежи будут отправляться с revenue 0.

Модуль IronSource:

  • Добавлена поддержка автоматической установки сегментов в IronSource в соответствии с правилами, настроенными в консоли MRGS.

  • Исправлена ошибка приводящая к крашу при попытке привести ImpressionData.revenue к double, когда revenue отсутствовал в ImpressionData.

Подробнее о новых функциях и их использовании читайте в документации.


v6.3.1 Release (02-05-2023)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка с множественной отправкой событий applicationExit.
  • Исправлена ошибка с подсчетом сессии, если юзер продолжил играть с одного дня по другой в пределах одной игровой сессии.

Подробнее о новых функциях и их использовании читайте в документации.


v6.3.0 Release (25-04-2023)🔗

В данной версии:

  • Добавлен новый модуль MRGSIronSource для автоматического сбора и отправки impression-level данных о выручке с рекламы, а также данных о загрузке рекламы (результаты аукционов) в MRGS и в AppsFlyer.

Модуль MRGService:

  • Добавлен новый метод MRGSTracker#trackAdRevenue(String, String, double, String, Map<String, String>) для отправки impression-level данных о выручке с рекламы в MRGS.

  • Обновлен com.huawei.hms:opendevice с 6.7.0.300 до 6.9.0.300.

Модуль Analytics:

  • Добавлена поддержка отправки impression-level данных о выручке с рекламы в AppsFlyer. Включение/выключение отправки осуществляется в консоли MRGS в разделе проекта.

  • Обновлен com.appsflyer:af-android-sdk с 6.9.3 до 6.10.2.

Модуль Authentication:

  • Добавлен новый MRGSMyGames#setIgnoreCachedSession(boolean) метод для принудительного игнорирования текущей сессии в MyGames - при повторном входе пользователю не будет доступна опция продолжить как, только чистый вход.

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 21.2.0 до 21.2.2.

Модуль Notifications:

  • Обновлен com.google.firebase:firebase-messaging с 23.1.1 до 23.1.2.
  • Обновлен com.huawei.hms:push с 6.7.0.300 до 6.9.0.300.

Модуль MyTracker:

  • Обновлен com.my.tracker:mytracker-sdk с 3.0.10 до 3.0.11.

Подробнее о новых функциях и их использовании читайте в документации.


v6.2.0 Release (07-04-2023)🔗

В данной версии:

Модуль MRGService:

  • Добавлено логирование сетевых запросов для нового MRGS API.

Модуль Analytics:

  • Исправлена отправка MRGS метрик в AppsFlyer - теперь они будут доходить быстрее.

Модуль Authentication:

  • Добавлены MRGSMyGames#setPrimaryNetwork(String) и MRGSMyGames#setExcludedNetworks(List<String>) методы для смены или сокрытия основной кнопки авторизации и для сокрытия маленьких кнопок авторизации в MyGames.

  • Исправлена работа авторизации в VKPlay.

  • Исправлено падение приложения при попытке вызвать метод MRGSGooglePlayGames#isLoggedIn().
  • Убрана лишняя страница с переходом по ссылке в авторизации MRGSMyGames, если использовался Firefox.

Подробнее о новых функциях и их использовании читайте в документации.


v6.1.1 Release (04-04-2023)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка, при которой MRGService#getServerTime() возвращал 0 из-за проблемы с кэшированием между потоками.

Подробнее о новых функциях и их использовании читайте в документации.


v6.1.0 Release (27-03-2023)🔗

В данной версии:

Модуль MRGService:

  • Добавлен MRGSPurchaseEvent#customEvent(MRGSRevenue) метод для создания и отправки информации по любым платежам в MRGS - от разных платежных систем и сервисов. Данные платежи не будут валидироваться в MRGS

  • Исправлена ошибка при попытке инициализировать MRGS SDK из рабочего потока.

Модуль Analytics:

  • Добавлена возможность информирования о подписках через S2S вместо клиента (данная опция включается на сервере MRGS).

  • Исправлено дублирование событий при покупке подписки (для подписки отсылались оба события af_purchase и af_subscribe).

Модуль Firebase:

  • Добавлен новый метод MRGSFirebase#getAppInstanceId(Consumer<String>) для получения appInstanceId от Firebase SDK.

Подробнее о новых функциях и их использовании читайте в документации.


v6.0.0 Release (10-02-2023)🔗

В данной версии:

Модуль MRGService:

  • Добавлена поддержка метода для отправки нового формата унифицированных логов - принимает в себя имя события и словарь с любыми ключами и значениями
  • Добавлен метод для выставления значений по умолчанию, которыми будут обогащаться все логи, отправленные через новый метод в MRGSTracker
  • Добавлена поддержка события принятия соглашения в MRGSTracker (например, при принятии пользователем соглашения на подписку в Калифорнии)
  • Добавлена поддержка нового класса MRGSTrackerProfile для отправки профилей нового формата в унифицированные логи
  • Исправлены редкие ошибки с гонкой потоков в MRGSTracker, из-за которых события могли уходить раздельными запросами

Модуль Bank:

  • Добавлена отправка appsflyerId для платежей на Market|MyGames

Модуль GDPR:

  • Исправлено перекрытие клавиатурой для ввода email в COPPA

Модуль Notifications:

  • Исправлена ошибка запроса разрешения на пока пуш уведомлений при старте приложения на Android 13.

Модуль Support:

  • Добавлена поддержка уведомлений для виджета поддержки - теперь при нажатии на уведомление, пользователь сможет попасть сразу в виджет поддержки

Модуль Analytics:

  • Добавлена поддержка UDL (Universal Deep Linking) в AppsFlyer
  • Добавлена поддержка событий покупки подписок af_start_trial и af_subscribe в AppsFlyer
  • Исправлена отправка данных о подписках в Firebase - теперь будет учитываться стоимость со скидкой

Модуль Authentication:

  • Исправлен ошибка из-за которой не обновлялся токен авторизации для MRGSGooglePlayGames.
  • Исправлен ошибка из-за которой не удавалось восстановить токен авторизации из кеша для MRGSMyGames авторизации, из-за чего переставала работать авторизация.

Подробнее о новых функциях и их использовании читайте в документации.


v6.0.0-b02 Release (23-01-2023)🔗

В данной версии:

Модуль Showcase:

  • Исправлен ANR при попытке получить User Agent.

Подробнее о новых функциях и их использовании читайте в документации.


v6.0.0-b Release (12-01-2023)🔗

В данной версии:

Основное:

  • Добавлена поддержка нативного окна "поделиться". Подробнее здесь
  • Добавлена поддержка Android 13
  • Полностью переработан API MyGamesSupport
  • Добавлена поддержка авторизации GooglePlayGamesV2.
  • Модуль авторизации был разбит на подмодули - Facebook,Amazon,GoogleSignIn,GoogleGames
  • Параметры для модулей были вынесены в соответствующие модули
  • SDK теперь требует минимальную версию Android 4.4 (19 API).
  • Исправлены ошибки

Модуль MRGService:

  • Добавлена поддержка нативного окна "поделиться". Подробнее здесь
  • Добавлена проверка корректности bundleId в IntegrationCheck
  • MRGService SDK теперь требует минимальную версию Android 4.4 (19 API).
  • Удален deprecated функционал.
  • Добавлено сокрытие секретов в логах IntegrationCheck
  • Исправлены правила для R8/ProGuard.
  • Возвращен bankSubstitution, теперь это String. Методы MRGSBilling#useAsMainBilling() удалены.

Модуль Bank:

  • Добавлен новый метод MRGSBilling#getLoadedProducts(), который будет возвращать список загруженных продуктов.
  • Конфиг SamsungBillingParams был переименован в MRGSSamsungBillingParams и перемещен в MRGSBillingModule модуль.
  • Обновлен com.huawei.agconnect:agcp с 1.6.0.300 до 1.7.3.300
  • Обновлен com.huawei.hms:ads-identifier с 3.4.39.302 до 3.4.58.301
  • Обновлен com.huawei.hms:opendevice с 5.1.1.307 до 6.7.0.300
  • Обновлен com.huawei.hms:push с 6.1.0.300 до 6.7.0.300
  • Обновлен com.huawei.hms:iap с 6.1.0.300 до 6.4.0.301
  • Исправлена ошибка получения micros для Huawei подписок.

Модуль Notifications:

  • Добавлена поддержка Android 13 - запрос разрешения на отправку уведомлений.
  • Обновлен com.google.firebase:firebase-messaging с 23.1.0 до 23.1.1.
  • Обновлен com.google.firebase:firebase-messaging с 23.0.6 до 23.1.0.

Модуль Support:

  • Добавлен новый класс MRGSMyGamesSupport с новым полностью переработанным интерфейсом для работы с службой поддержки(добавились классы страниц, конфига, новые методы для открытия окна), старые классы помечены как Deprecated

Модуль Analytics:

  • Во все события теперь будут добавляться дополнительные значения mrgs userId и deviceId.
  • Изменено дефолтное поведение по отправке userId и deviceId - по умолчанию в CUID AppsFlyer теперь отправляется userId, а с помощью useDeviceIdAsUserId можно включить старое поведение для отправки deviceId. Подробнее здесь
  • Конфиг AppsFlyerParams был переименован в MRGSAppsFlyerParams и перемещен в MRGSAnalyticsModule модуль.
  • Обновлен com.appsflyer:af-android-sdk с 6.8.2 до 6.9.3.

Модуль Firebase:

  • Добавлен метод setUserProperties
  • Обновлен com.google.firebase:firebase-analytics с 21.1.0 до 21.2.0.

Модуль Authentication:

  • Добавлена поддержка авторизации GooglePlayGamesV2.
  • Авторизация MRGSAuthenticationFacebook была перенесена в свой собственный модуль MRGSAuthenticationFacebookModule.
  • Авторизация MRGSAuthenticationAmazon была перенесена в свой собственный модуль MRGSAuthenticationAmazonModule.
  • Авторизация MRGSGooglePlayGames была разбита на два модуля MRGSGoogleSignIn и MRGSGooglePlayGames.
  • Конфиг AmazonAuthParams был переименован в MRGSAmazonAuthParams и перемещен в MRGSAuthenticationModule модуль.
  • Конфиг FacebookParams был переименован в MRGSFacebookParams и перемещен в MRGSAuthenticationModule модуль.
  • Конфиг MRGSGooglePlayGamesParams был перемещен в MRGSAuthenticationGooglePlayGames модуль.
  • Конфиг MyGamesAuthParams был переименован в MRGSMyGamesAuthParams и перемещен в MRGSAuthenticationModule модуль.
  • Обновлен com.google.android.gms:play-services-auth с 20.3.0 до 20.4.0.
  • Обновлен com.google.android.gms:play-services-games с 22.0.1 до 23.1.0.

Модуль MyTracker:

  • Обновлен com.my.tracker:mytracker-sdk с 3.0.9 до 3.0.10.

Модуль GameCenter:

  • Конфиг GameCenterParams был переименован в MRGSGameCenterParams и перемещен в MRGSGameCenterModule модуль.

Подробнее о новых функциях и их использовании читайте в документации.


v6.0.0-a04 Release (16-12-2022)🔗

В данной версии:

Модуль GDPR:

  • Добавлена поддержка закона VCDPA Вирджинии в функционал CCPA

Модуль Bank:

  • Исправлена ошибка 60001: too many query items for Huawei billing when try to request product
  • Исправлена ошибка в работе метода #useAsMainbilling()

Модуль Analytics:

  • При проксировании метрик MRGS в AppsFlyer добавлено поле af_level

Подробнее о новых функциях и их использовании читайте в документации.


v6.0.0-a03 Release (10-11-2022)🔗

В данной версии:

Модуль MRGService:

  • Исправлены ошибки с проверкой интеграции.

Модуль Bank:

Модуль Showcase:

  • Изменен текст попапа об установке всех игр из списка.

Подробнее о новых функциях и их использовании читайте в документации.


v6.0.0-a02 Release (08-11-2022)🔗

В данной версии:

Модуль MRGService:

  • В событии запуска теперь будет уходить признак первого запуска на устройстве для отслеживания метрик реатрибуции
  • Настройки прокси для MyTracker теперь получаются только при подключении данного модуля
  • Исправлена проверка интеграции для модулей авторизации и MyTracker

Модуль Support:

  • Исправлена работа MyGames Support

Подробнее о новых функциях и их использовании читайте в документации.


v6.0.0-a Release (03-11-2022)🔗

Данная версия включает себя обратно несовместимые изменения. Для миграции на новую версию обратитесь к документации по Миграции.

В данной версии:

  • MyTracker теперь не является обязательной зависимостью. Работа с ним вынесена в отдельный модуль MRGSMyTracker. Класс MRGSMyTrackerParams перемещен в модуль MRGSMyTracker.
  • Работа с VK авторизацией вынесена в отдельный модуль MRGSAuthenticaitonVK. Класс MRGSVKontakteParams перемещен в модуль MRGSAuthenticationVK.
  • Изменены имена всех пакетов с ru.mail.mrgservice на games.my.mrgs
  • Из модулей удалены упоминания VK/MyTracker и перенесены в соответствующие новые модули

Модуль MRGService:

  • Изменен способ инициализации MRGS - параметры внешних sdk теперь передаются массивом.
  • Свойство MRGSMyGamesParams#VKPlayMode удалено. Используйте MRGSMyGamesParams#CustomHost.

Модуль Support:

  • Enum ru.mail.mrgservice.MRGSMyComSupport.Credential.SocialNetwork.VK удален.

Модуль Authentication:

  • Enum MRGSAuthenticationNetwork удален, теперь используются строковые константы в соответствующих классах

Важно

  • После обновления из сборки пропадет MyTracker SDK, VK SDK, так как они теперь являются отдельными модулями. Соответственно, атрибуция и аналитика проекта в MyTracker остановится.
  • В случае, если вам необходимо оставить данные SDK в проекте, достаточно просто подключить новые модули к проекту и перейти на новый метод инициализации.
  • Из-за смены имен пакетов некоторые локальные уведомления могут быть потеряны (доставленные с момента обновления приложения и до его первого открытия после обновления).
  • Для того чтобы продолжать пользоваться 1link и MyUA, необходимо, чтобы 1link переключил сбор данных проекта на AppsFlyer + MRGS SDK.

Подробнее о новых функциях и их использовании читайте в документации.


v5.3.3 Release (02-11-2022)🔗

В данной версии:

Модуль Analytics:

  • Изменен хост для AppsFlyer на appsflyersdk.com для обхода блокировок в России

Модуль Showcase:

  • Добавлена поддержка удаленного выставления заголовка для витрины Showcase

Модуль Bank:

  • Улучшена обработка ошибок покупок в Samsung billing

Подробнее о новых функциях и их использовании читайте в документации.


v5.3.2 Release (17-10-2022)🔗

В данной версии:

Модуль MRGService:

  • Добавлена поддержка обогащения событий MRGS параметром appsflyerId даже если не подключен модуль MRGSAnalytics, то есть AppsFlyer SDK интегрирован отдельно.

Подробнее о новых функциях и их использовании читайте в документации.


v5.3.1 Release (15-10-2022)🔗

В данной версии:

Модуль Analytics:

  • Исправлена ошибка с отправкой AppsFlyer id в событиях MRGS

Подробнее о новых функциях и их использовании читайте в документации.


v5.3.0 Release (14-10-2022)🔗

В данной версии:

Модуль MRGService:

  • BillingSubstitution.MY_GAME помечен как @Deprecated, используйте BillingSubstitution.MY_GAMES вместо него.

Модуль Analytics:

Подробнее о новых функциях и их использовании читайте в документации.


v5.2.1 Release (03-10-2022)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка из-за которой неправильно разбирался MRGService.xml конфиг, в результате чего MRGSGoogleGames возвращал серверный код вместо токена авторизации. Теперь по дефолту снова возвращается токен авторизации, если не выставили иное значение в MRGService.xml конфиг.

Подробнее о новых функциях и их использовании читайте в документации.


v5.2.0 Release (03-10-2022)🔗

В данной версии:

Модуль MRGService:

  • Методы MRGServiceParams#shouldUseMyGamesBillingOnly() и MRGServiceParams#setUseMyGamesBillingOnly(boolean) помечены как @Deprecated, используйте MRGServiceParams#setBillingSubstitution(BillingSubstitution) вместо него.

Модуль Authentication:

  • Добавлен новый метод MRGSExternalSDKParams.MyGamesAuthParams#setDevEnvironment(boolean) для включения/выключения DEV окружения для авторизации MyGames/VKPlay. Смотри DEV окружение.

  • Добавлена поддержка нового способа авторизации через VKID (superappkit SDK). Смотри VKID.

Модуль Bank:

Подробнее о новых функциях и их использовании читайте в документации.


v5.1.1 Release (05-09-2022)🔗

В данной версии:

Модуль MRGService:

  • Обновлен com.my.tracker:mytracker-sdk с 3.0.8 до 3.0.9.

Подробнее о новых функциях и их использовании читайте в документации.


v5.1.0 Release (02-09-2022)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый метод MRGSApplication#getInstallTime() для получения времени установки приложения в формате unixTime в миллисекундах. Смотри Время установки приложения.
  • Добавлен новый метод MRGSExternalSDKParams.MyTrackerParams#setTrackingLocationEnabled(boolean) для включения/отключения сбора данных местоположения девайса в MyTracker SDK. Трекинг местоположения в MyTracker SDK теперь будет выключен по умолчанию. Смотри Отслеживание местоположения.

  • Обновлен com.my.tracker:mytracker-sdk с 3.0.7 до 3.0.8.

Модуль Analytics:

  • Обновлен com.appsflyer:af-android-sdk с 6.8.0 до 6.8.2.

Модуль Authentication:

  • Добавлен новый метод MRGSMyGames#setHideBrandOccurrences(boolean) для того что бы скрыть все упоминания бренда MY.GAMES при авторизации через MRGSMyGames. Смотри Сокрытие упоминания бренда MY.GAMES
  • Добавлен новый метод MRGSExternalSDKParams.MyGamesAuthParams#setVkPlayModeEnabled(boolean) для смены способа авторизации с MyGames на VKPlay. Смотри Авторизация через VKPlay.

  • Убрали проверку на наличие приложения Play Games при попытке авторизоваться через MRGSGoogleGames.

  • Исправлено падение приложения при попытке авторизоваться через MRGSGoogleGames на некоторых устройствах Samsung.

Модуль Bank:

  • Обновлен com.android.billingclient:billing с 3.0.3 до 4.1.0.

Подробнее о новых функциях и их использовании читайте в документации.


v5.0.3 Release (02-08-2022)🔗

В данной версии:

  • Понижена версия androidx.appcompat:appcompat с 1.4.2 до 1.3.1, так как она требовала compileSdkVersion не ниже 31.

Модуль MRGService:

  • Исправлена ошибка, когда MRGSDevice#getOpenUDID(Callback) возвращал OpenUDID в виде "0000-0000".

Модуль Authentication:

  • Понижена версия com.vk:android-sdk-core с 3.5.2 до 3.4.1, так как она не совместима с android gradle plugin/gradle 4.0/6.1.1 и ниже.
  • Понижена версию androidx.browser:browser с 1.4.0 до 1.3.0, так как она требует compileSdkVersion не ниже 31.

Подробнее о новых функциях и их использовании читайте в документации.


v5.0.4 Release (05-08-2022)🔗

В данной версии:

Модуль Bank:

  • Исправлена ошибка из-за которой информация по Google платежу не отправлялась в AppsFlyer, Firebase и MyTracker с версии 5.0.0 - MRGS Android SDK.

Подробнее о новых функциях и их использовании читайте в документации.


v5.0.3 Release (02-08-2022)🔗

В данной версии:

  • Понижена версия androidx.appcompat:appcompat с 1.4.2 до 1.3.1, так как она требовала compileSdkVersion не ниже 31.

Модуль MRGService:

  • Исправлена ошибка, когда MRGSDevice#getOpenUDID(Callback) возвращал OpenUDID в виде "0000-0000".

Модуль Authentication:

  • Понижена версия com.vk:android-sdk-core с 3.5.2 до 3.4.1, так как она не совместима с android gradle plugin/gradle 4.0/6.1.1 и ниже.
  • Понижена версию androidx.browser:browser с 1.4.0 до 1.3.0, так как она требует compileSdkVersion не ниже 31.

Подробнее о новых функциях и их использовании читайте в документации.


v5.0.2 Release (27-07-2022)🔗

В данной версии:

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.4.2.

Модуль MRGService:

  • Обновлен com.my.tracker:mytracker-sdk с 3.0.4 до 3.0.7

Модуль Bank:

  • Добавлена поддержка удаленного изменения заголовка витрины Market|MyGames.

Модуль Notifications:

  • Обновлен com.google.firebase:firebase-messaging с 22.0.0 до 23.0.6.

Модуль Analytics:

  • Обновлен com.appsflyer:af-android-sdk с 6.5.2 до 6.8.0

Модуль Firebase:

  • Обновлен com.google.firebase:firebase-analytics с 19.0.2 до 21.1.0.

Модуль Authentication:

  • Добавлена отправка информации о пользователе при логине через соцсеть Vk.
  • Обновлен com.vk:android-sdk-core с 3.3.0 до 3.5.2
  • Обновлен com.google.android.gms:play-services-auth с 19.2.0 до 20.2.0.
  • Обновлен com.google.android.gms:play-services-games с 21.0.0 до 22.0.1.
  • Обновлен androidx.browser:browser с 1.3.0 до 1.4.0.

Подробнее о новых функциях и их использовании читайте в документации.


v5.0.1 Release (05-07-2022)🔗

В данной версии:

Модуль Notifications:

  • Исправлена ошибка java.lang.RuntimeException: Unable to start receiver.

Подробнее о новых функциях и их использовании читайте в документации.


v5.0.0 Release (29-06-2022)🔗

В данной версии:

Данная версия включает себя обратно несовместимые изменения. Для миграции на новую версию обратитесь к документации по Миграции.

Модуль MRGService:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Подключение Android SDK.

  • Переделан способ инициализации MRGService. Теперь он похож на способ который используется MRGS Unity SDK. Смотри Подключение Android SDK

  • Интерфейс MRGService.ActivityResultListener удален.

  • Интерфейс Printable удален.
  • Интерфейс MRGSIntegrationCheck.MRGSIntegrationCheckListener удален.
  • Класс MRGSX509ExtendedTrustManager удален.
  • Класс MRGSX509TrustManager удален.
  • Класс MRGSAirLog удален.
  • Класс MRGSExtSDK удален.

  • Метод MRGService#instance() переименован в MRGService#getInstance().

  • Метод MRGService#initialized() удален. Используйте MRGService#isInitialized().
  • Метод MRGService#checkIntegration(MRGSIntegrationCheck.MRGSIntegrationCheckListener) удален. Используйте checkIntegration(@Nullable Consumer<MRGSIntegrationCheckResult>).
  • Метод MRGService#registerResultListener(ActivityResultListener) удален.
  • Метод MRGService#unregisterResultListener(ActivityResultListener) удален.
  • Метод MRGService#onActivityRes(Activity, int, int, Intent) удален.
  • Метод MRGService#registerTransferManagerDelegate(String, MRGSTransferManagerDelegate) удален.
  • Метод MRGService#unregisterTransferManagerDelegate(MRGSTransferManagerDelegate) удален.
  • Метод MRGService#getIsRunService() удален.
  • Метод MRGService#setAppContext(Context) удален.
  • Метод MRGService#onStart(Activity) удален.
  • Метод MRGService#onStop(Activity) удален.
  • Метод MRGService#getSharedPreferences(String) удален. Используйте MRGSSharedPreferences#newInstance(String).
  • Метод MRGService#getSharedPreferences(Context, String) удален. Используйте MRGSSharedPreferences#newInstance(Context, String).
  • Метод MRGService#sendHandleException(String) удален. Используйте MRGSCrashReports#sendHandleException(String).
  • Метод MRGService#sendHandleException(String, String) удален. Используйте MRGSCrashReports#sendHandleException(String, String).

  • Метод MRGSLog#log(String) удален.

  • Метод MRGSMetrics.addPurchase(String, String, String) удален. Используйте MRGSMetrics.addPurchase(MRGSPurchaseEvent).

  • Метод MRGSUsers#instance() переименован в MRGSUsers#getInstance().

  • Метод MRGSUsers#getCurrentUser() теперь возвращает MRGSUser вместо MRGSMap.

  • Метод MRGSDevice#instance() переименован в MRGSDevice#getInstance().

  • Метод MRGSDevice#useOldUDIDMethod() удален.
  • Метод MRGSDevice#shouldUseOldUDIDMethod() удален.
  • Метод MRGSDevice#generateDeviceIdOld(Context) удален.
  • Метод MRGSDevice#getGoogleAccountPrimary() удален.
  • Метод MRGSDevice#getODIN1() удален.
  • Метод MRGSDevice#getIMEI() удален.
  • Метод MRGSDevice#openSystemSettingsOfApplication() удален. MRGSDevice#openApplicationDetailsSettings(Context).
  • Метод MRGSDevice#getOldOpenUDID() переименован в MRGSDevice#getDeviceIdOrUUID().

  • Метод MRGSApplication#instance() переименован в MRGSApplication#getInstance().

  • Метод MRGSApplication#getApplicationBundleName() больше не будет возвращать null.

  • Метод MRGSServerData#instance() переименован в MRGSServerData#getInstance().

Модуль Advertising:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс ru.mail.mrgservice.MRGSAdvertisingConsts удален.

  • Класс MRGSAdvertisingFactory перемещен из пакета ru.mail.mrgservice в ru.mail.mrgservice.advertising.
  • Константа MRGSAdvert.SHOW_FULLSCREEN помечена как @Deprecated и будет удален в ближайшее будущее.
  • Метода MRGSAdvert#showContent(int, String) помечен как @Deprecated и будет удален в ближайшее будущее.

Модуль Analytics:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс ru.mail.mrgservice.MRGSGoogleConversion удален.

  • Класс MRGSAnalytics перемещен из пакета ru.mail.mrgservice в ru.mail.mrgservice.analytics.
  • Класс MRGSAppsFlyer перемещен из пакета ru.mail.mrgservice в ru.mail.mrgservice.analytics.

  • Метод MRGSAnalytics#getGoogleConversion() удален.

  • Метод MRGSAppsFlyer#setCustomerUserId(String) удален. Используйте MRGSAppsFlyer#forceCustomerUserId(String)

Модуль Authentications

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс MRGSAmazon перемещен из ru.mail.mrgservice.amazon в ru.mail.mrgservice.authentication.amazon.

  • Класс MRGSFacebook перемещен из ru.mail.mrgservice.facebook в ru.mail.mrgservice.authentication.facebook..
  • Класс MRGSGoogleGames перемещен из ru.mail.mrgservice.googlegames в ru.mail.mrgservice.authentication.googlegames.
  • Класс MRGSMyGames перемещен из ru.mail.mrgservice.mygames в ru.mail.mrgservice.authentication.mygames.
  • Класс MRGSVK перемещен из ru.mail.mrgservice.vk в ru.mail.mrgservice.authentication.
  • Класс MRGSUser теперь является интерфейсом а так же перемещен из from ru.mail.mrgservice в ru.mail.mrgservice.authentication.amazon.
  • Класс FacebookUser удален.
  • Класс MRGSCredentials теперь является интерфейсом.
  • Класс MRGSAuthInfo помечен как @Deprecated. Используйте MRGSAccessToken.

  • Интерфейс MRGSAuthentication.ExternalLogoutCallback помечен как @Deprecated. Используйте MRGSAuthentication.OnExternalLogoutListener.

  • Интерфейс MRGSSocial перемещен из ru.mail.mrgservice.social в ru.mail.mrgservice.authentication.
  • Интерфейс MRGSScore перемещен из ru.mail.mrgservice.games в ru.mail.mrgservice.authentication.
  • Интерфейс MRGSLeaderBoards перемещен из ru.mail.mrgservice.games в ru.mail.mrgservice.authentication.
  • Интерфейс MRGSAchievements перемещен из ru.mail.mrgservice.games в ru.mail.mrgservice.authentication.
  • Интерфейс MRGSAuthInfoCallback.java удален.

  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkAmazon переименован в MRGSAuthenticationNetwork.AMAZON.

  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkFacebook переименован в MRGSAuthenticationNetwork.FACEBOOK.
  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkGoogleGames переименован в MRGSAuthenticationNetwork.GOOGLE_GAMES.
  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkMyGames переименован в MRGSAuthenticationNetwork.MY_GAMES.
  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkVKontakte переименован в MRGSAuthenticationNetwork.VKONTAKTE.
  • Enum MRGSAuthenticationNetwork.Unknown переименован в MRGSAuthenticationNetwork.UNKNOWN.

  • Метод MRGSAuthentication#loginWithScopes(List<String>, MRGSLoginCallback) помечен как @Deprecated. Используйте MRGSAuthentication#login(List<String>, MRGSLoginCallback).

  • Метод MRGSAuthentication#getAuthInfo(BiConsumer<MRGSAuthInfo, MRGSError>) помечен как @Deprecated. Используйте MRGSAuthentication#getAccessToken(BiConsumer<MRGSAuthInfo, MRGSError>).
  • Метод MRGSAuthentication#getUserAvatar(MRGSUser, MRGSAvatarCallback, int, int) помечен как @Deprecated. Используйте MRGSAuthentication#getUserAvatar(MRGSUser, int, int, MRGSAvatarCallback).
  • Метод MRGSAuthentication#setOnExternalLogoutCallback(ExternalLogoutCallback) помечен как @Deprecated. Используйте MRGSAuthentication#setOnExternalLogoutListener(OnExternalLogoutListener).

  • Метод MRGSAmazon#tryUpdateToken() удален. Используйте MRGSAmazon#getAccessToken(BiConsumer<MRGSAccessToken, MRGSError>).

  • Метод MRGSAchievement#achievementId() помечен как @Deprecated. Используйте MRGSAchievement#getAchievementId().

  • Метод MRGSAchievement#name() помечен как @Deprecated. Используйте MRGSAchievement#getName().
  • Метод MRGSAchievement#description() помечен как @Deprecated. Используйте MRGSAchievement#getDescription().
  • Метод MRGSAchievement#state() помечен как @Deprecated. Используйте MRGSAchievement#getState().
  • Метод MRGSAchievement#currentSteps() помечен как @Deprecated. Используйте MRGSAchievement#getCurrentSteps().
  • Метод MRGSAchievement#totalSteps() помечен как @Deprecated. Используйте MRGSAchievement#getTotalSteps().
  • Метод MRGSAchievement#completionPercent() помечен как @Deprecated. Используйте MRGSAchievement#getCompletionPercent().

  • Метод MRGSCredentials#setUserId(String) удален.

  • Метод MRGSCredentials#setUser(MRGSUser) удален.
  • Метод MRGSCredentials#setAuthInfo(MRGSAuthInfo) удален.
  • Метод MRGSCredentials#getAuthInfo() помечен как @Deprecated. Используйте MRGSCredentials#getAccessToken().

  • Метод MRGSLeaderboard#leaderboardId() помечен как @Deprecated. Используйте MRGSLeaderboard#getLeaderboardId().

  • Метод MRGSLeaderboard#name() помечен как @Deprecated. Используйте MRGSLeaderboard#getName().

  • Метод MRGSScore#leaderboardId() помечен как @Deprecated. Используйте MRGSScore#getLeaderboardId().

  • Метод MRGSScore#rank() помечен как @Deprecated. Используйте MRGSScore#getRank().
  • Метод MRGSScore#displayRank() помечен как @Deprecated. Используйте MRGSScore#getDisplayRank().
  • Метод MRGSScore#rawScore() помечен как @Deprecated. Используйте MRGSScore#getRawScore().
  • Метод MRGSScore#displayScore() помечен как @Deprecated. Используйте MRGSScore#getDisplayScore().
  • Метод MRGSScore#player() помечен как @Deprecated. Используйте MRGSScore#getPlayer().

  • Метод MRGSUser#userId() помечен как @Deprecated. Используйте MRGSUser#getUserId().

  • Метод MRGSUser#nick() помечен как @Deprecated. Используйте MRGSUser#getNickName().
  • Метод MRGSUser#firstName() помечен как @Deprecated. Используйте MRGSUser#getFirstName().
  • Метод MRGSUser#lastName() помечен как @Deprecated. Используйте MRGSUser#getLastName().
  • Метод MRGSUser#middleName() помечен как @Deprecated. Используйте MRGSUser#getMiddleName().
  • Метод MRGSUser#fullName() помечен как @Deprecated. Используйте MRGSUser#getFullName().
  • Метод MRGSUser#displayName() помечен как @Deprecated. Используйте MRGSUser#getDisplayName().
  • Метод MRGSUser#gender() помечен как @Deprecated. Используйте MRGSUser#getGender().
  • Метод MRGSUser#birthDate() помечен как @Deprecated. Используйте MRGSUser#getBirthDate().
  • Метод MRGSUser#location() помечен как @Deprecated. Используйте MRGSUser#getLocation().
  • Метод MRGSUser#socialId() помечен как @Deprecated. Используйте MRGSUser#getSocialId().

Модуль Billing:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс MRGSBilling перемещен из ru.mail.mrgservice в ru.mail.mrgservice.billing.

  • Класс MRGSPurchaseItem переименован в MRGSBillingProduct и перемещен из ru.mail.mrgservice в ru.mail.mrgservice.billing.
  • Класс MRGSBillingEntities перемещен из ru.mail.mrgservice в ru.mail.mrgservice.billing.
  • Класс MRGSMyGamesBilling перемещен из ru.mail.mrgservice в ru.mail.mrgservice.billing.
  • Интерфейс MRGSBillingDelegate удален.
  • Интерфейс MRGSBillingDelegateEx переименован в MRGSBillingDelegate и перемещен из ru.mail.mrgservice в ru.mail.mrgservice.billing.

  • Метод MRGSBilling#instance() переименован в MRGSBilling#getInstance().

  • Метод MRGSBilling#requestProductsInfoWithRequest(MRGSBankProductsRequest) переименован в MRGSBilling#requestProductsInfo(MRGSBankProductsRequest).
  • Метод MRGSBilling#buyItem(String sku, final String type) удален. Используйте MRGSBilling#buyItem(String sku).
  • Метод MRGSBilling#buyItem(String sku, String type, String developerPayload) удален. Используйте MRGSBilling#buyItem(String sku, String developerPayload).
  • Метод MRGSBilling#buyItem(final MRGSPurchaseItem purchase) удален. Используйте MRGSBilling#buyItem(MRGSBankPurchaseRequest).
  • Метод MRGSBilling#setDelegate(MRGSBillingDelegateEx) удален.
  • Метод MRGSBilling#changeItem(String, String, String) удален. Используйте MRGSBilling#buyItem(MRGSBankPurchaseRequest).
  • Метод MRGSBilling#changeItem(String, String, String, String) удален. Используйте MRGSBilling#buyItem(MRGSBankPurchaseRequest).
  • Метод MRGSBilling#changeItem(MRGSPurchaseItem, MRGSPurchaseItem) удален. Используйте MRGSBilling#buyItem(MRGSBankPurchaseRequest).
  • Метод MRGSBilling#getProductsInfo(ArrayList<String>) удален. Используйте MRGSBilling#requestProductsInfo(MRGSBankProductsRequest).
  • Метод MRGSBilling#getProductsInfoWithTypes(ArrayList<Pair<String, String>>) удален. Используйте MRGSBilling#requestProductsInfo(MRGSBankProductsRequest).
  • Метод MRGSBilling#getProductsInfoFromPurchaseInfo(ArrayList<MRGSBillingProduct>) удален. Используйте MRGSBilling#requestProductsInfo(MRGSBankProductsRequest).
  • Метод MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem) изменен на MRGSBilling#notifyMRGSAboutConsume(String sku, String transactionId)
  • Метод MRGSBilling#closePayment(MRGSPurchaseItem) удален. Используйте MRGSBilling#notifyMRGSAboutConsume(String sku, String transactionId)

  • Метод MRGSBillingProduct#createWithPurchaseInfo(String) удален.

  • Метод MRGSBillingProduct#createWithPurchaseInfoWithType(String, String) удален.
  • Метод MRGSBillingProduct#fromJSON(String) удален.
  • Метод MRGSBillingProduct#setSku(String) удален.
  • Метод MRGSBillingProduct#setIntroductoryPeriod(String) удален.
  • Метод MRGSBillingProduct#setType(String) удален.
  • Метод MRGSBillingProduct#getDictionary() удален.
  • Метод MRGSBillingProduct#getPurchaseToken() удален.
  • Метод MRGSBillingProduct#setPurchaseToken(String token) удален.
  • Метод MRGSBillingProduct#getTransactionId() удален. Используйте MRGSBankTransaction#getTransactionIdentifier().
  • Метод MRGSBillingProduct#getTransactionReceipt() удален.
  • Метод MRGSBillingProduct#getResultCode() удален.
  • Метод MRGSBillingProduct#getRawPurchaseInfo() удален. Используйте MRGSBankTransaction#getRawPurchaseResult().
  • Метод MRGSBillingProduct#getDeveloperPayload() удален. Используйте MRGSBankPurchaseResult#getDeveloperPayload().
  • Метод MRGSBillingProduct#setDeveloperPayload(String) удален.
  • Метод MRGSBillingProduct#getUserId() удален.

  • Метод MRGSBillingDelegate#onReceiveProductsResponce переименован в MRGSBillingDelegate#onReceiveProductsResponse.

  • Метод MRGSBillingDelegate#onReceiveSuccessfullPurchase переименован в MRGSBillingDelegate#onReceiveSuccessfulPurchase.

Модуль Firebase:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс MRGSFirebaseAnalytics перемещен из ru.mail.mrgservice в ru.mail.mrgservice.firebase.

Модуль GameCenter:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

Модуль GDPR:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс MRGSGDPR перемещен из ru.mail.mrgservice в ru.mail.mrgservice.gdpr.

  • Класс MRGSGDPR.MRGSGDPRFactory удален. Используйте MRGSGDPR#getInstance().
  • Интерфейс MRGSCOPPA.OnResponseCallback удален из публичного API, так как предназначен для внутренней работы.

  • Метод MRGSGDPR#showAgreementAtActivity(Activity, String, String, int) удален. Используйте MRGSGDPR#showAgreementAtActivity(Activity, String, String).

  • Метод MRGSGDPR#shouldShowGDPRForVersion(Activity, String, int, boolean, MRGSGDPRAsyncStatus) удален. Используйте MRGSGDPR#shouldShowGDPRForVersion(Activity, String, boolean, MRGSGDPRAsyncStatus).
  • Метод MRGSGDPR#setUserHasAcceptedAgreementWithVersion(Context, int, boolean, boolean, String) удален. Используйте MRGSGDPR#setUserHasAcceptedAgreementWithVersion(Context, boolean, boolean, String).
  • Метод MRGSCCPA#fetchCountyIfNeeded() удален из публичного API, так как предназначен для внутренней работы.
  • Метод MRGSCOPPA#isUnderUk(Consumer<Boolean>) удален из публичного API, так как предназначен для внутренней работы.
  • Метод MRGSCOPPA#shouldShowCoppa(Consumer<Boolean>) удален из публичного API, так как предназначен для внутренней работы.
  • Метод MRGSCOPPA#shouldShowCoppa(Context, Consumer<Boolean>) удален из публичного API, так как предназначен для внутренней работы.
  • Метод MRGSCOPPA#sendEmail(String, OnResponseCallback<MRGSSendEmailResult>) удален из публичного API, так как предназначен для внутренней работы.
  • Метод MRGSCOPPA#checkEmails(List<String>, OnResponseCallback<MRGSCheckEmailResult>) удален из публичного API, так как предназначен для внутренней работы.

Модуль Recommendations:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс MRGSRecommendations перемещен из ru.mail.mrgservice в ru.mail.mrgservice.recsys.

  • Метод MRGSRecommendations#offerView(String, MRGSMap) удален. Используйте MRGSRecommendations#trackEvent(MRGSRecSysEvent).

  • Метод MRGSRecommendations#offerClick(String, MRGSMap) удален. Используйте MRGSRecommendations#trackEvent(MRGSRecSysEvent).
  • Метод MRGSRecommendations#offerBuy(String, MRGSMap) удален. Используйте MRGSRecommendations#trackEvent(MRGSRecSysEvent).

Модуль MyTarget:

  • Данный модуль был полностью удален.

Модуль Notifications:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Класс MRGSGDPR перемещен из ru.mail.mrgservice в ru.mail.mrgservice.gdpr.

  • Класс MRGSPushNotifications удален. Используйте MRGSNotificationCenter.
  • Класс MRGSLocalPushService удален. Используйте MRGSNotificationCenter.
  • Класс MRGSLocalPushAutoStartReceiver удален.
  • Класс MRGSPushNotification.MRGSPushNotificationChannel удален. Используйте ru.mail.mrgservice.MRGSNotificationChannel.
  • Класс MRGSPushNotification.MRGSPushNotificationChannelsGroup удален. Используйте ru.mail.mrgservice.MRGSNotificationChannelGroup.

  • Интерфейс MRGSPushNotificationHandler.MRGSPushNotificationDelegate удален

  • Интерфейс MRGSPushNotificationHandler.MRGSPushNotificationDelegateEx переименован в MRGSPushNotificationHandler.MRGSPushNotificationDelegate.

  • Интерфейс MRGSPushNotificationHandler.MRGSPushNotificationGroupDelegate удален

  • Интерфейс MRGSPushNotificationHandler.MRGSPushNotificationExGroupDelegate переименован в MRGSPushNotificationHandler.MRGSPushNotificationGroupDelegate.

  • Метод MRGSNotificationCenterImpl.getInstance() удален. Используйте MRGSNotificationCenter.getInstance().

  • Метод MRGSPushNotification.getCutomTextStrings() переименован в MRGSPushNotification.getCustomTextStrings().
  • Метод MRGSPushNotificationHandler#setDelegate(MRGSPushNotificationDelegateEx) удален.

Модуль Showcase:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

Модуль Support:

  • Теперь данный модуль можно подключить через Maven репозиторий. Смотри Интеграция SDK.

  • Конструктор MRGSMyComSupportDialog(Activity, String) удален. Используйте MRGSMyComSupportDialog(Activity).

  • Конструктор MRGSMyComSupportDialog(Activity, String, boolean) удален. Используйте MRGSMyComSupportDialog(Activity).

Подробнее о новых функциях и их использовании читайте в документации.


v4.18.5 Release (06-06-2022)🔗

В данной версии:

Модуль MRGService:

  • Добавлена поддержка удаленного выставления proxy-сервера для запросов MyTracker
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.18.4 Release (23-05-2022)🔗

В данной версии:

Модуль Notifications:

  • Исправлен краш в предыдущем релизе, при попытке восстановить локальные пуши из кэша при перезапуске приложения.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.18.3 Release (17-05-2022)🔗

В данной версии:

Модуль Notifications:

  • Исправлен краш в предыдущем релизе при попытке создать локальный кастомный пуш, если не удалось найти ресурсы.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.18.2 Release (04-05-2022)🔗

В данной версии:

Модуль Advertising:

  • Изменен размер кнопок с 30dp до 35dp.

Модуль Notifications:

  • Исправлены ошибки при отображении уведомлений после обновления приложения из-за смены ids ресурсов после перекомпиляции.

Модуль Showcase:

  • Добавлена возможность скрыть заголовок витрины удаленно
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.18.1 Release (08-04-2022)🔗

В данной версии:

Модуль MRGService:

  • Изменено поведения MRGService#getServerTime(). Теперь serverTime не будет сбрасываться на 0 при сворачивании приложения. Подробней об изменениях.

  • Исправлена ошибка с бесконечной отправкой сетевых запросов при проблемах с сетью.

Модуль Authentication:

  • Исправлена ошибка Class not found when unmarshalling для Vk авторизации.

Модуль Bank:

  • Добавлена передача номера версии и сборки в платежах VKPay на сервер MRGS.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.18.0 Release (24-03-2022)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый метод MRGSDevice#getGeoIpInfo(BiConsumer<MRGSGeoIpInfo, MRGSError>) для определения географическое положение устройства с доступом в Интернет по его IP-адресу. Подробней смотрите Географическое положение по IP.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.17.0 Release (22-03-2022)🔗

В данной версии:

Модуль MRGService:

  • Метод MRGSApplication#instance() помечен как @Deprecated и будет удален в ближайшее время. Используйте MRGSApplication#getInstance() вместо старого метода.
  • Метод MRGSDevice#instance() помечен как @Deprecated и будет удален в ближайшее время. Используйте MRGSDevice#getInstance() вместо старого метода.
  • Метод MRGService#instance() помечен как @Deprecated и будет удален в ближайшее время. Используйте MRGService#getInstance() вместо старого метода.
  • Метод MRGSServerData#instance() помечен как @Deprecated и будет удален в ближайшее время. Используйте MRGSServerData#getInstance() вместо старого метода.
  • Метод MRGSUsers#instance() помечен как @Deprecated и будет удален в ближайшее время. Используйте MRGSUsers#getInstance() вместо старого метода.

Модуль Bank:

  • Улучшена обработка ошибок в MyGamesBank
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.16.0 Release (18-03-2022)🔗

В данной версии:

Все модули:

  • Все классы MRGS***Version помечены как @Deprecated и будут удалены в ближайшее время. Теперь версии можно найти в BuildConfig каждого модуля.

Модуль Bank:

  • Добавлена поддержка VKPay (Market|MyGames) платежей - альтернативный способ оплаты покупок при размещении вне магазинов приложений. Подробнее смотрите на странице описания системы

  • Метод MRGSBilling#instance() помечен как @Deprecated. Используйте MRGSBilling#getInstance().

Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.15.0 Release (25-02-2022)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый метод MRGSDevice#getAdvertisingId(Context, AdvertisingIdCallback) для асинхронного получения IDFA. Подробней в документации.

  • Исправлена ошибка из-за которой не отправлялись метрики из MRGSMetrics в AppsFlyer при включенном forwardMetrics.

Модуль Support:

  • Удален android.permission.READ_EXTERNAL_STORAGE из манифеста.
  • android.permission.WRITE_EXTERNAL_STORAGE теперь используется только для андроид 8 и ниже.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.14.0 Release (07-02-2022)🔗

В данной версии:

Модуль MRGService:

  • Обновлен MyTracker SDK с 3.0.2 до 3.0.4. Подробней об изменениях.
  • Теперь, в результате проверки интеграции, будет выводиться часть секретного ключа MRGS SDK.

  • Исправлена ошибка, из-за которой в лог выводилась проблема о парсинге JSONArray при включенном MRGService debug. Данная ошибка никак не влияла на функциональность SDK.

Модуль Analytics:

  • Обновлен AppsFlyer SDK с 6.5.0 до 6.5.2. Подробней об изменениях.
  • Добавлена дополнительная отправка данных по платежу таких как: af_content_id (sku товара) и af_order_id (orderId из чека).

Модуль Authentication:

  • Добавлен новый метод MRGSAuthentication#getAuthInfo(BiConsumer<MRGSAuthInfo, MRGSError>) для получения AccessToken асинхронно, это позволит всегда получать актуальный и валидный токен.

  • Метод MRGSAuthentication#getAuthInfo() был помечен как deprecated.

  • Исправлена ошибка с указанием неправильного времени срока действия токена для авторизации MRGSAuthenticationVKontakte, теперь будет возвращаться 0 вместо времени создания токен.

  • Исправлена ошибка когда разлогинивался пользователь в MRGSVK при инициализации MRGService SDK при отсутствии интернета.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.13.0 Release (24-01-2022)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый метод MRGSTracker#trackUserProfile(MRGSTrackerUserProfile) для отправки профиля пользователя в систему кастомных логов (событий). Подробней смотрите в документации.
  • Понижена версия библиотеки appcompat с 1.3.1 до 1.2.0, поскольку новая версия требует обновления проекта до targetSdkVersion 31.

Модуль Advertising:

  • Исправлен приватный метод открытия ссылки в PlayableAds в формате mraid.

Модуль Authentication:

  • Исправлена ошибка, из-за которой система могла создать другой экземпляр CustomTabActivity для Facebook или MyGames при передаче результата, и это могло привести к сбою.
  • Исправлена ошибка с неправильным сохранением состояния Activity.

Модуль GDPR:

  • Добавлен новый метод MRGSGDPR#resetModule(Context) для сброса факта принятия соглашения и всех данных в GDPR, COPPA. Также сбрасывает настройки по CCPA и выставляет их в статус разрешено отслеживание третьими лицами в случае, если ранее отслеживание было выключено. То есть полный сброс модуля GDPR к состоянию заново установленного приложения. Данный метод нужно вызывать ТОЛЬКО в случае, когда пользователь потребовал удалить свой аккаунт по закону GDPR, его удалили, и нужно сбросить факт его принятия соглашения на клиенте, чтобы снова было показано окно GDPR/COPPA для нового аккаунта пользователя.

Модуль Support:

  • Добавлена возможность создания запроса на удаление всех своих данных пользователем (GDPR). Подробней смотрите в документации.

Модуль Showcase:

  • Изменен дизайн витрины.
  • Изменено поведение для расчета уведомления. Теперь если заново придет реклама, которую юзер уже видел, то уведомления больше не будет передаваться в делегат.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.12.2 Release (16-12-2021)🔗

В данной версии:

Модуль MRGService:

  • Обновлен MyTracker SDK с 3.0.1 до 3.0.2, который включает поддержку Appset id. Подробней об изменениях.
  • Обновлен Appset SDK с 16.0.0 до 16.0.1.

Модуль Analytics:

Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.12.1 Release (13-12-2021)🔗

Модуль Bank:

  • Исправлено неправильное поведение, когда в разные методы callback'а мог возвращаться developerPayload с разной структурой. Теперь будет возвращаться только тот вариант, который изначально передавался в момент покупки.

Модуль GDPR:

  • Исправлена ошибка с долгим возвращением ответа при вызове MRGSCOPPA#showCOPPAFlowIfNeeded, если нет интернета.

Модуль Authentication:

  • Исправлен редкий краш при попытке авторизоваться через Facebook на мобильном устройстве.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.12.0 Release (07-12-2021)🔗

В данной версии:

Модуль MRGService:

  • Добавлен новый метод MRGSMyTracker#forceCustomUserId(String), который позволяет устанавливать идентификатор пользователя клиента (customUserId) перед инициализацией MRGService. Подробней смотрите в документации.
  • Добавлена поддержка App set ID.
  • Добавлен новый метод MRGSDevice#getVendorId(Context, OnVendorIdCallback) который вернет AppSet id для Google store, ODID для Huawei store или null для остальных магазинов приложений.

  • Метод MRGSDevice#openSystemSettingsOfApplication() помечен как @Deprecated, вместо него используйте MRGSDevice#openApplicationDetailsSettings(Context).

  • Метод MRGSDevice#getODIN1() помечен как @Deprecated и будет удален в конце 2021 года.
  • Метод MRGSDevice#getGoogleAccountPrimary() помечен как @Deprecated и будет удален в конце 2021 года.
  • Удалена отправка уникальных идентификаторов по сети таких как Build.SERIAL и Wi-Fi MAC address, по причине предупреждений со стороны Google.
  • Изменена работа метода MRGSDevice#getOpenUDID(CallbackOpenUDID), по причине что данный метод не мог правильно сгенерировать openUDID до инициализации MRGService. Теперь данный метод может вернуть null, если его вызвать на самом первом запуске приложения до инициализации MRGService.

Модуль Advertising:

  • Исправлена долгая загрузка рекламы, которая могла занимать от 0 до 5 секунд.
  • Исправлена ошибка, при которой могла заблокироваться кнопка "закрыть", при показе видео.
  • Исправлена рассинхронизация между счетчиком времени в кнопке и видеоплеером.

Модуль Analytics:

  • Добавлен новый статичный метод MRGSAppsFlyer#forceCustomerUserId(String), который позволяет устанавливать идентификатор пользователя клиента (customerUserId) перед инициализацией MRGService. Подробней смотрите в документации.

  • Метод MRGSAppsFlyer#setCustomerUserId(String) помечен как @Deprecated, вместо него используйте MRGSAppsFlyer#forceCustomerUserId(String).

Модуль Bank:

  • Исправлена ошибка с разбором json, когда JSONObject.optString мог вернуть "null" вместо "" для Facebook Cloud биллинга.

Модуль GDPR:

  • Добавлен метод MRGSGDPR#openLinkInWebView(Context context, String title, String url) для открытия внешних ссылок GDPR в WebView для Facebook Cloud.
  • Исправлена ошибка, когда два события об открытии и принятии GDPR имели разные хэши.

Модуль Support:

  • Улучшена проверка тикетов (MRGSMyComSupport#checkTickets(Context)) в виджете поддержки - теперь проверка будет работать быстрее и меньше нагружать сервер поддержки.
  • Удалена поддержка старого MyGames Support виджета.
  • Удален метод MRGSMyComSupport#checkTicketsOld(Context), который использовался для старого виджета.
  • Удален метод MRGSMyComSupport#saveInfo(String, String), который использовался для старого виджета.
  • Удален метод MRGSMyComSupport#getSecret(), который использовался для старого виджета.
  • Удален метод MRGSMyComSupport#setSecret(String), который использовался для старого виджета.
  • Удален метод MRGSMyComSupportDialog.Builder#setSecret(String), который использовался для старого виджета.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSDevice#getODIN1():String Больше не используется
MRGSDevice#getGoogleAccountPrimary():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.11.0 Release (03-11-2021)🔗

В данной версии:

Модуль MRGService:

  • Добавлена поддержка Android 12.
  • Добавлен новый метод MRGSError#getDomain, чтобы можно было различать ошибки произошедшие в модулях MRGS или в других библиотеках.
  • Обновлен MyTracker SDK с 3.0.0 до 3.0.1.
  • Обновлен com.google.gms:google-services с 4.3.5 до 4.3.10.
  • Обновлен com.huawei.agconnect:agcp с 1.4.1.300 до 1.6.0.300.
  • Обновлен com.huawei.hms:ads-identifier с 3.4.34.301 до 3.4.39.302.
  • Обновлен com.huawei.hms:opendevice с 5.0.4.300 до 5.1.1.307.
  • Исправлена редкая ошибка из-за которой MRGSMetrics#addPurchase терял события, которые не успели уйти во время игровой сессии, после перезапуска приложения.

Модуль Advertising

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Обновлен androidx.recyclerview:recyclerview с 1.0.0 до 1.2.1.

Модуль Analytics

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.

Модуль Authentication:

  • Увеличено количество доступных браузеров для авторизации. Раньше использовался только Chrome.
  • Удален WebView как один из способов авторизоваться в Facebook, так как данный способ больше не поддерживается. Так же в колбек будет приходить ошибка с кодом -110 и описанием Browser not found если на девайсе нет браузера.
  • Исключены возможности авторизоваться при помощи Facebook или Google в MyGames если используется WebView, так данные соцсети больше не поддерживают WebView.
  • Обновлен Facebook graph api версия с 6.0 до 11.0.
  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Обновлен androidx.browser:browser с 1.0.0 до 1.3.0.
  • Обновлен com.google.android.gms:play-services-auth с 18.0.0 до 21.0.0.
  • Обновлен com.google.android.gms:play-services-games с 19.0.0 до 19.2.0.
  • Обновлен с com.vk:androidsdk:2.7.0 до com.vk:android-sdk-core:3.3.0. ВНИМАНИЕ!!! Теперь для работы VK авторизации требуется minSdkVersion="21" (Андроид 5.0+).
  • Исправлен NullPointerException в CustomTabMainActivity при попытке авторизоваться через MyGames.

Модуль Bank:

  • Добавлена поддержка AppTouch. Данная возможность включается автоматически и не требует дополнительных настроек.
  • Добавлена проверка на размер developerPayload, если он больше 255 байт то будет возвращена ошибка при попытке совершить платеж.
  • Добавлена видимость пакета для Samsung биллинга, под андроид 11.
  • Исправлена ошибка по сбору типа валюты для платежей Samsung для модуля MRGSBilling. Раньше забирали код из "79.99$", но данный код может быть использован у разных валют из-за чего статистика была не правильной. Теперь будет отсылаться код валюты RUB, EUR, etc. Данной ошибки нет, если платежи слались через MRGSMetrics#addPurchase(MRGSPurchaseEvent).
  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Обновлен com.huawei.hms:iap с 5.1.0.300 до 6.1.0.300.

Модуль Firebase:

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Обновлен com.google.firebase:firebase-analytics с 18.0.2 до 19.0.2.

Модуль GameCenter:

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Обновлен androidx.recyclerview:recyclerview с 1.0.0 до 1.2.1.

Модуль GDPR:

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.

Модуль Notifications:

  • Теперь MRGSPushNotification#setCustomViewImage будет искать изображение не только в drawable но и в mipmap, если изображения не оказалось в drawable.
  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Обновлен com.google.firebase:firebase-messaging с 21.0.1 до 22.0.0.
  • Обновлен com.huawei.hms:push с 5.0.4.302 до 6.1.0.300.

Модуль Recommendations:

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.

Модуль Showcase:

  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Обновлен androidx.recyclerview:recyclerview с 1.0.0 до 1.2.1.
  • Исправлены потенциальные утечки памяти.

Модуль Support:

  • Добавлена поддержка авторизации VK при открытии виджета поддержки.
  • Старый виджет помечен как @Deprecated и будет удален в следующем релизе.
  • Метод MRGSMyComSupport#getSecret помечен как @Deprecated и будет удален к концу года.
  • Метод MRGSMyComSupport#setSecret помечен как @Deprecated и будет удален к концу года.
  • Метод MRGSMyComSupportDialog.Builder#setSecret помечен как @Deprecated и будет удален к концу года.
  • Обновлен androidx.appcompat:appcompat с 1.2.0 до 1.3.1.
  • Исправлены потенциальные утечки памяти.

Переход на новый виджет сапорта

В следующем релизе мы уберем поддержку старого виджета сапорта. На клиенте теперь не нужно будет выставлять секрет и идентификатор проекта - секрет хранится на сервере, а projectId будет равен mrgsAppId. Для того, чтобы подготовиться, проверьте работу нового виджета в своем проекте(обычно проблемы возникают с тестовым приложением, т.к. projectId равен mrgsAppId. Это значит, что тестового проекта в сапорте может не быть, в таком случае нужно запросить его создание)

VK авторизация

Теперь для работы VK авторизации требуется Android 5.0+ (Api level 21+)

Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class
MRGSSupport модуль Причина
MRGSMyComSupport#getSecret():String Использовался для старого Widget
MRGSMyComSupport#setSecret(String) Использовался для старого Widget
MRGSMyComSupportDialog.Builder#setSecret(String) Использовался для старого Widget

Подробнее о новых функциях и их использовании читайте в документации.


v4.10.0 Release (01-10-2021)🔗

В данной версии:

Модуль MRGService:

  • Добавлена поддержка событий отправки сообщений в чате и переписках в игре с помощью MRGSTracker (передача логов чатов по закону Яровой).
  • Добавлена возможность проверить правильно ли указали client id для MyGames авторизации, через проверку интеграции.

Модуль Authentication:

  • Теперь в авторизацию MyGames будет передаваться локаль девайса, для того чтобы сменить язык интерфейса. Локаль будет передаваться если будет выставлен флаг в MRGS remote конфиге.
  • Исправлено обновление токена в MyGames авторизации внутри одной игровой сессии (раньше токен обновлялся только на старте приложения).
  • Исправлен возможный показ окна "перейдите по ссылке" в авторизации MyGames, если использовался WebView.

Модуль Bank:

  • Исправлена ошибка INVALID_PARAMETER, errorMessage: This operation duplicates an unresolved request при множественном вызове метода isBillingAvailable для FacebookCloud.

Модуль GDPR:

  • Добавлена поддержка частных ссылок на Privacy policy в GDPR при показе дефолтного/кастомного HTML с локализацией. Достаточно прописать ссылку на policy в админке MRGS.
  • Исправлен краш java.lang.NullPointerException в COPPA.

Модуль Support:

  • Добавлена поддержка авторизации в виджете поддержки - теперь виджет стал безопаснее, и позволит связывать запросы пользователей с аккаунтами в соцсетях. При использовании модуля MRGSAuthentication авторизация подтянется автоматически.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.9.3 Release (21-09-2021)🔗

В данной версии:

Модуль MRGService:

  • Обновлен facebook-gamingservices SDK с 11.0.0 до 11.2.0.

  • Добавлено ограничение на размер отсылаемых унифицированных логов в размере 128кб.

Модуль Advertising:

  • Исправлена ошибка при проверке хеш-суммы, если от сервера пришел не валидный md5 хеш.

Модуль GDPR:

  • Исправлена поддержка андроид "челки" для COPPA диалогового окна.
  • Изменен текст в окне с показом ограничения на игру в COPPA

Модуль Notifications:

  • Исправлена ошибка с отправкой локальных пуш-уведомлений для Facebook Cloud.

Модуль Showcase:

  • Исправлена ошибка при проверке хеш-суммы, если от сервера пришел не валидный md5 хеш.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.9.2 Release (17-09-2021)🔗

В данной версии:

Модуль GDPR:

  • Исправлен краш IllegalStateException: Can not perform this action after onSaveInstanceState при попытке показать окно COPPA, если пользователь свернул приложение в момент запуска окна.

Модуль Notifications:

  • Исправлен краш при попытке отправить метрики о получении пуш-уведомления или попытке открыть приложение через пуш.
  • Исправлен краш при попытке открыть приложение по локальному пуш-уведомлению.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.9.1 Release (16-09-2021)🔗

В данной версии:

Модуль MRGService:

  • Исправлена ошибка при получении application context.
  • Исправлена ошибка при попытке получить токен для нового сетевого api.

Модуль GDPR:

  • Изменилось поведение проверки страны юзера для COPPA. Теперь если не удалось определить страну пользователя по ip адресу, то будет возвращен результат что пользователь не попадает под COPPA.
  • Изменилось поведение проверки страны юзера для COPPA. Теперь страна проверяется только по ip адресу.

Модуль Support:

  • Исправлена ошибка Class not found when unmarshalling: MyComSupportParams при попытке открыть MyGames Support на старых устройствах Samsung.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.9.0 Release (03-09-2021)🔗

В данной версии:

Модуль Authentication:

Модуль Bank:

  • Добавлена поддержка биллинга для Facebook Cloud. Подробнее смотри документацию

Модуль GDPR:

Пуш-уведомления

Была добавлена основа для будущих пуш-уведомлений в Facebook Cloud. Теперь данный MRGSNotifications модуль нельзя использовать до инициализации MRGService.

Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.8.1 Release (25-08-2021)🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена ошибка выставления дополнительных параметров для метрик в методе класса MRGSMetrics#addMetric.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.8.0 Release (24-08-2021)🔗

В данной версии:

Модуль MRGService (базовый):

  • Добавлена поддержка новой системы для сбора внутриигровых логов(событий). См. подробней документацию.
  • Изменен способ отправки метрик в MRGSMetrics#addMetric, теперь они отсылаются по новому серверному api.
  • Обновлен MyTracker SDK с 2.1.2 до 3.0.0.
  • Исправлена ошибка при попытке привести String к MRGSMap при проверке интеграции, если сервер не вернул response.

Модуль Analytics:

  • Улучшен трекинг платежей. Теперь информация по новым платежам отправляется лишь единожды, что позволяет избежать дубликатов в статистике.
  • Обновлен Appsflyer SDK с 6.2.3 до 6.3.2.

Модуль Firebase:

  • Улучшен трекинг платежей. Теперь информация по новым платежам отправляется лишь единожды, что позволяет избежать дубликатов в статистике.

Модуль Showcase:

  • Исправлена ошибка при проверке хеш-сумм баннеров, что влияло на показ баннера в витрине.

Модуль Recommendations:

  • Добавлена поддержка отправки новых типов событий для рекомендательной системы (RecSys). Подробнее смотрите в документации.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.7.0 Release (06-08-2021)🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена проблема с idfa состоящим из одних нулей для Huawei стора. Теперь для более точной статистики требуется подключить com.huawei.hms:opendevice:<version> библиотеку.
  • Добавлена новая функция MRGSDevice#retrieveGoogleAdvertisingId(AdvertisingIdCallback) для получения GAID.

Модуль Analytics:

Модуль Authentication:

  • Google

    • Исправлена ошибка логина для таргета 30+ (Android 11+) из-за отсутствия записи <package android:name="com.google.android.play.games" /> в manifest файле SDK.
    • Исправлена ошибка из-за которой, в момент логина, всегда писалась ошибка в лог MRGSGoogleGames getSignInClient no activity attached!!!
  • MyGames

    • Исправлена проблема авторизации, если у пользователя включена двухфакторная аутентификация.

Модуль Billing:

  • MRGSBilling#setDelegate(MRGSBillingDelegate) помечен как @Deprecated. Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx).
  • MRGSBilling#getProductsInfo(ArrayList) помечен как @Deprecated. Для запроса продуктов следует использовать более новые методы, например MRGSBilling#requestProductsInfoWithRequest(MRGSBillingEntities.MRGSBankProductsRequest)
  • MRGSBillingDelegate.class помечен как @Deprecated. Используйте MRGSBillingDelegateEx.class

  • Samsung

    • Исправлена ошибка выставления developerPayload при вызове функции - восстановление транзакций.

Модуль Firebase:

  • Исправлен NullPointerException если был подключен модуль но не было подключено Firebase SDK, то в некоторых случаях модуль мог бросить ошибку.

Модуль GDPR:

  • Изменено время отправки события принятие GDPR, так как для его отправки требуется знать MRGS платформу. Теперь данное событие отсылается после инициализации MRGService.
  • Исправлена проблема с обновлением версии GDPR отдельно для каждого приложения. Теперь для каждого приложения можно указать версию GDPR в конфиге на сервере MRGS

Модуль MyGamesSupport:

  • Исправлена ошибка для нового виджета, из-за которой поле extra_params передавалось в поле locale и не обрабатывался на сервере.

Модуль Showcase:

  • Удален таймер который блокировал нажатие баннеров если с сервера присылали click_time больше 0.
  • Изменено поведение отправки кол-во событий клика по баннерам за одни показ витрины. Раньше, за один показ витрины, можно было отправить не больше одного события клика по каждому баннеру, теперь данного ограничения нет.
Удаление @Deprecated классов и методов. Конец 2021 года

Мы планируем удалить методы, которые были отмечены как @Deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. В случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами:

MRGService модуль Причина
MRGService#onStart(Activity) Больше не используется
MRGService#onStop(Activity) Больше не используется
MRGSMetrics#addPurchase(String, String, String) Используйте MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Больше не используется
MRGSDevice#getOpenUDIDOld():String Больше не используется
MRGSAuthentication модуль Причина
MRGSCredentials() Используйте MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling модуль Причина
MRGSBillingDelegate.class Используйте MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Используйте MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Используйте MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Используйте MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR модуль Причина
Все методы включающие параметр 'agreementVersion' Используйте аналогичные методы без параметра 'agreementVersion'
MRGSMyTarget модуль Причина
Модуль будет полностью удален Больше не поддерживается
MRGSNotifications модуль Причина
MRGSLocalPushService.class Используйте MRGSNotificationCenter.class
MRGSPushNotifications.class Используйте MRGSNotificationCenter.class

Подробнее о новых функциях и их использовании читайте в документации.


v4.6.2 Release (28-06-2021)🔗

В данной версии:

Модуль GDPR:

  • Исправлена ошибка в тексте локализации для японского языка.
  • Исправлена ошибка с переносом текста для корейского языка в WebView.
  • Добавлена анимация "нажатия" на кнопку принятия GDPR в WebView.
  • Изменено поведение показа GDPR в WebView. Теперь по умолчанию показывается GDPR без Разрешение на рекламу.
  • Исправлена ошибка позволяющая серверу понижать версию GDPR на клиенте. Теперь версию можно лишь только повышать.

Модуль MyGamesSupport:

  • Исправлена ошибка отправки события закрытия окна саппорта, если вернуться в приложение по иконке, а в манифесте для этого события выставлен не стандартный launchMode.
  • Исправлена ошибка с запросом версии виджета. Теперь версия виджета запрашивается лишь раз во время сессии, чтобы избежать блокировки со стороны сервера.

Модуль Showcase:

  • Теперь можно выставить желаемую ориентацию экрана через manifest. Узнать больше.
  • Исправлена ошибка отправки события закрытия витрины, если вернуться в приложение по иконке, а в манифесте для этого события выставлен не стандартный launchMode. Узнать больше.
  • Исправлена ошибка с поплывшей версткой при перевороте экрана.

Удаление deprecated методов

Мы планируем удалить методы, которые были отмечены как deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. Ниже приведены примерные временные рамки, в которые мы планируем удаление (в случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами):

  • Старый API MRGSBilling (setDelegate, некоторые buyItem, MRGSBillingDelegate и др.) - конец 2021 года.
  • Старый API MRGSNotifications (класс MRGSLocalPushService, и др.) - конец 2021 года.
  • MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature) - конец 2021 года.
  • GDPR - методы, включающие в себя agreementVersion (showAgreementFromFile и др) - до осени.
  • MRGService.onStart(), MRGService.onStop() и другие отмеченные как deprecated - до осени.

Подробнее о новых функциях и их использовании читайте в документации.


v4.6.1 Release (03-06-2021)🔗

В данной версии:

  • Обновлены все правила обфускации для ProGuard/R8. Все правила обфускации поставляются .aar библиотеками.
  • Добавлена поддержка targetSdkVersion 30 (Android 11).

Модуль Authentication:

  • Исправлены некоторые ошибки с неправильным переключением потоков при возврате результата из Android.main потока в Unity.main поток.

  • Facebook

    • Исправлена ошибка при попытке пригласить друзей.

Модуль Billing:

  • Amazon
    • Обновлен In-app purchases SDK с 2.0.61 до 2.0.76.
    • Добавлена поддержка нового MRGSBilling API, которое было ранее добавлено для Google, Huawei и Samsung но не было добавлено для Amazon.

Модуль Showcase:

  • Исправлена проблема с версткой для экранов с шириной sw320dp.

Удаление deprecated методов

Мы планируем удалить методы, которые были отмечены как deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. Ниже приведены примерные временные рамки, в которые мы планируем удаление (в случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами):

  • Старый API MRGSBilling (setDelegate, некоторые buyItem, MRGSBillingDelegate и др.) - конец 2021 года.
  • Старый API MRGSNotifications (класс MRGSLocalPushService, и др.) - конец 2021 года.
  • MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature) - конец 2021 года.
  • GDPR - методы, включающие в себя agreementVersion (showAgreementFromFile и др) - до осени.
  • MRGService.onStart(), MRGService.onStop() и другие отмеченные как deprecated - до осени.

Подробнее о новых функциях и их использовании читайте в документации.


v4.6.0🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена ошибка из-за которой при проверке интеграции, теперь если не удалось определить платформу, то будет считаться что платформа Android Платформа определяется по выставленному типу биллинга см. Настройка параметров.

Модуль Billing:

  • Google
    • Добавлен новый метод MRGSBankPurchaseRequest.setObfuscatedAccountId(String) для поддержки Karaganda Fraud Prevention API. Узнать больше.
    • Добавлен новый метод MRGSBankPurchaseRequest.setObfuscatedProfileId(String) для поддержки Karaganda Fraud Prevention API. Узнать больше.
    • Исправлена редкая ошибка из-за преждевременного кэширования подписки до фактического ее закрытия(потребления): Покупка подписки на клиенте -> Валидация на сервере -> Кеширования результата на клиенте -> Закрытие подписки(потребление) на клиенте. Если в момент закрытия подписки Google Billing выбрасывал ошибку, то это могло привести к зависанию подписки, что приводило к возврату средств пользователю. Теперь подписка будет кэшироваться лишь после успешного ее закрытия(потребления): Покупка подписки -> Валидация -> Закрытие подписки(потребление) -> Кеширования результата.

Модуль Firebase:

  • Добавлены новые события о суммарном времяпровождение пользователя в приложении: 30 минут (mrgs_cumulative_session_time_30min), 1 час (mrgs_cumulative_session_time_60min), 2 часа (mrgs_cumulative_session_time_120min) и 3 часа (mrgs_cumulative_session_time_180min). События придут лишь раз, при достижении пользователем соответствующего времени. Подробней см. Отправка событий

Модуль Showcase:

  • Добавлена поддержка прямых ссылок на Google Play Store. Теперь если для баннера будет приходить прямая ссылка на Google Play Store, то переход в Google Play Store будет осуществлен без посредничества браузера.

Определение платформы

Если вы планируете использовать другой магазин (не Google play), то вы также должны указать billing, даже если вы не используете MRGSBilling модуль. Если вы не укажите billing это может привести к неправильной работе всего SDK. Как указать billing смотри в документации.

Удаление deprecated методов

Мы планируем удалить методы, которые были отмечены как deprecated. Для того, чтобы вы успели подготовиться, мы сообщаем об этом заранее. Ниже приведены примерные временные рамки, в которые мы планируем удаление (в случае, если вам нужно больше времени, или есть другие пожелания, свяжитесь с нами):

  • Старый API MRGSBilling (setDelegate, некоторые buyItem, MRGSBillingDelegate и др.) - конец 2021 года.
  • Старый API MRGSNotifications (класс MRGSLocalPushService, и др.) - конец 2021 года.
  • MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature) - конец 2021 года.
  • GDPR - методы, включающие в себя agreementVersion (showAgreementFromFile и др) - до осени.
  • MRGService.onStart(), MRGService.onStop() и другие отмеченные как deprecated - до осени.

Подробнее о новых функциях и их использовании читайте в документации.


v4.5.4🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена ошибка из-за которой при проверке интеграции, на сервер передавалась неправильная платформа для Amazon, Huawei и Samsung, что приводило к некорректным рекомендация по проверки платформы.
  • Исправлена ошибка из-за которой проверка интеграции не выводила информацию по настройкам MRGS SDK если SDK настраивалось через код вместо xml конфига.
  • Улучшена проверка интеграции. Теперь проверка интеграции будет выводить информацию по подключенным модулям.
  • Улучшена проверка интеграции. Теперь проверка интеграции будет выводить больше информации об ошибках, возникшие во время инициализации модулей.

Модуль Authentication:

  • MyGames
    • Исправлена ошибка из-за которой MRGSAuthentication.getCurrentUser() мог вернуть данные по пользователю без MRGSAuthenticationNetwork.

Модуль Billing:

  • Google
    • Обновлен Google Billing SDK с 2.0.3 до 3.0.3.

Модуль MyGamesSupport:

  • Добавлен новый метод MRGSMyComSupport.getMyComSupport().setCustomUserId(String), на случай когда нужно открыть саппорт с другим userId отличным от MRGSUsers.instance().setUserId(String).

Модуль Notifications:

  • Исправлена ошибка из-за которой не отображалась иконка уведомления которую поставили в момент инициализации MRGS SDK, если ее проставили через код вместо xml конфига.

Подробнее о новых функциях и их использовании читайте в документации.


v4.5.3🔗

В данной версии:

Модуль MRGService (базовый):

  • Удален класс MRGSLocationService - отвечающий за определение местоположения пользователя, так как этот класс давно не выполняет свой функционал.
  • Удален класс MRGSPackageRemoveReceiver - отвечающий за отслеживание удаляемых приложений с устройства, так как этот класс давно не выполняет свой функционал.
  • Удален класс MRGService.MRGServiceNotInitializedException - который использовался для исключений связанных с неправильной инициализацией SDK (Давно не используется).
  • Удален метод MRGService.instance().getContext() - этот метод давно был запрещен к использованию и приводил к утечке памяти.
  • Исправлена ошибка из-за которой могло существовать два экземпляра класса MRGSMyTracker вместо одного.

Модуль Billing:

  • Удален <uses-permission android:name="com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR" /> из манифеста, так как биллинг bazaar давно не поддерживается.

Модуль MyGamesSupport:

  • Исправлена ошибка с переводом в полноэкранный режим.
  • Исправлена ошибка позволяющая включить темную тему через настройки разработчика для нового виджета.

Модуль Showcase:

  • Исправлена ошибка с мигающей кнопкой закрытия витрины.
  • Улучшена скорость загрузки баннеров при открытии витрины.
  • Улучшено качество баннеров при рендере.

Подробнее о новых функциях и их использовании читайте в документации.


v4.5.2🔗

В данной версии:

Модуль MyGamesSupport:

  • Исправлена ошибка IllegalStateException при попытке отобразить Fragment после onSaveInstanceState.
  • Исправлена ошибка NullPointerException при попытке открыть саппорт в то время когда MyGamesSupport модуль еще не проинициализирован.

Подробнее о новых функциях и их использовании читайте в документации.


v4.5.1🔗

В данной версии:

Модуль MRGService (базовый):

  • Обновлен MyTracker SDK с 2.1.0 до 2.1.2. Подробней смотрите в документации.
  • Добавлен новый метод MRGSMyTracker.getInstanceId(Context context, Consumer<String>). Подробней смотрите в документации.

Gradle error: Failed to resolve: com.my.tracker:mytracker-sdk:2.1.2

Если вы столкнулись с данной ошибкой, то добавьте новый репозиторий в вашем gradle файле:

allprojects {
    repositories {
        // other repositories
        mavenCentral()
    }
}

Модуль Advertising:

  • Исправлено неправильное поведение. Если в момент загрузки контента происходила ошибка, то LoadDelegate.onAdvertisingLoadingError никогда не вызвался.

Модуль Billing:

  • Google
    • Исправлена проблема с кэшированием подписок. Это приводило к проблемам с синхронизацией с сервером и сервер не мог правильно автоматически продлять подписки. После обновления на новую версию SDK, все текущие/действующие подписки отправятся на сервер (если только будет сделано восстановления транзакций или у вас выставлен флаг на автоматическое восстановление транзакций). Затем действующие подписки будут синхронизироваться с сервером раз в 10 дней(если только будет сделано восстановления транзакций или у вас выставлен фланг на автоматическое восстановление транзакций).
    • Исправлена проблема с логированием ошибок от Google Billing. Так как у ошибок не всегда есть описание причины, в место причины будет отправляться код ошибок. Это должно помочь лучше понять проблемы, случающиеся во время платежей. Так же ошибки логируются в MRGS в разделе Падения.

Модуль MyGamesSupport:

  • Исправлена ошибка NetworkOnMainThreadException при попытке запросить кол-во непрочитанных сообщений из старого виджета. Из-за данной ошибки всегда возвращался false для TicketListener и 0 для TicketCallback
  • Добавлено логирование ошибок виджета в MRGSMetrics (метрика -18)

Подробнее о новых функциях и их использовании читайте в документации.


v4.5.0🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена редкая ошибка NoSuchElementException в MRGSUsers.setUserId() при одновременном вызове MRGSUsers.setUserId() и MRGSUsers.logoutCurrentUser().
  • Метод MRGSMetrics.addPurchase(skuDetails, purchaseData, dataSignature) помечен как устаревший.
  • Добавлена возможность отправлять метрики по платежам для магазинов Amazon, Huawei и Samsung через MRGSMetrics.addPurchase(MRGSPurchaseEvent). Подробней смотрите в документации.
  • Добавлен новый метод MRGSMyTracker.getInstance().setLaunchTimeout(int seconds). Подробней смотрите в документации

Модуль Advertising:

  • Исправлена редкая ошибка IllegalStateException при попытке посмотреть рекламу.
  • Исправлена редкая ошибка MissingWebViewPackageException при попытке посмотреть рекламу.
  • Удалена поддержка Карусель баннеров (роллер).

Модуль Analytics:

  • Обновлен AppsFlyer SDK с 6.1.1 до 6.2.3.
  • Добавлена возможность отключить трекинг платежей. Подробней смотрите в документации.
  • Добавлена возможность дублировать отправку событий из MRGSMetrics(отправленные через MRGSMetrics.addMetric()), в AppsFlyer. Подробней смотрите в документации.

Модуль Billing:

  • Samsung
    • Исправлена ошибка NullPointerException когда пользователь отменял совершение платежа.

Модуль MyGamesSupport:

  • Добавлена поддержка нового виджета. Подробней смотрите в документации.
  • Добавлен новый метод MRGSMyComSupport.checkTickets(Context, MRGSMyComSupport.TicketCallback) который может вернуть кол-во непрочитанных сообщений или ошибку.
  • Исправлена дефолтная локализация для диалогового окна при запросе разрешений на доступ к хранилищу.

Модуль Showcase:

Подробнее о новых функциях и их использовании читайте в документации.


v4.4.4🔗

В данной версии:

Модуль Analytics:

  • Исправлена ошибка с неправильной инициализацией Appsflyer версии 6+, что приводило к некорректной отправки событий об установках, в момент запуска приложения.
  • Передача в AppsFlyer параметра customerUserID (мы ставим в это поле IDFA устройства) теперь происходит до отправки события установки, поэтому в сырых данных и в событиях установки появится данный параметр (на iOS мы делаем так же).

Подробнее о новых функциях и их использовании читайте в документации.


v4.4.3🔗

В данной версии:

Модуль Advertising:

  • Добавлены дополнительные логи для выявления потенциальных проблем.

Модуль MyGamesSupport:

  • Исправлен NullPointerException при вызове метода checkTickets, если модуль не был проинициализирован.

Подробнее о новых функциях и их использовании читайте в документации.


v4.4.2🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлен краш java.util.ConcurrentModificationException при проверке интеграции.

Подробнее о новых функциях и их использовании читайте в документации.


v4.4.1🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена ошибка NullPointerException когда Activity приходил как null.
  • Исправлена ошибка org.json.JSONException: End of input at character 1 of.

Модуль Authentication:

  • GoogleGames
    • Исправлена проблема с показом окна всех достижений пользователя.

Модуль Analytics:

  • Обновлен Appsfalyer SDK с 5.4.1 до 6.1.1.

Модуль Billing:

  • Исправлена проблема с сохранением developerPayload. Когда совершалась покупка одного и того же товар с пейлоадом и без, вторая покупка получала пейлоад от первого товара.
  • Исправлена проблема с двойной валидацией, когда при покупке товара и затем вызов восстановления транзакций, отправляли один и тот же товар на валидацию. Это приводило к двойному вызову колбека о совершении платежа пользователем.

  • Google

    • Исправлен краш ConcurrentModificationException при восстановлении транзакций.
  • Huawei

    • Исправлен краш ConcurrentModificationException при восстановлении транзакций.
    • Исправлена проблема, когда ошибка при восстановлении транзакций уходила в колбек по получению информации о продуктах.
    • Исправлена проблема с показом окна магазина при попытке купить товар.

Модуль Firebase:

  • Обновлен FirebaseAnalytics SDK с 17.2.1 до 18.0.1.
  • Новая структура событий. Теперь будут приходить дополнительные параметры такие как: "currency_local" и "price_local" - местная сумма и валюта, в которой совершался платеж. "is_first_payment" - является ли этот платеж первым. "value" и "currency" - теперь всегда будут в USD.

Модуль GDPR:

  • Исправлена проблема с отправкой метрики показа GDPR при использовании кастомного окна GDPR.
  • Больше не проставляем автоматическое принятие GDPR, если пользователь не попадает под него.

Модуль Notifications:

  • Обновлен FirebaseMessaging SDK с 20.0.0 до 21.0.1.

Google service plugin(com.google.gms:google-services) обновлен с 3.2.1 до 4.3.4

Если у вас возникнут проблемы с google-service.json, обновите его из Firebase console, так как в нем поменялся формат.


v4.4.0🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена ошибка при инициализации MRGService, когда вместо Activity передавался null от ActivityLifecycleCallbacks.
  • Добавлена поддержка Huawei Identity Kit. Подробней.
  • Исправлена ошибка в IntegrationCheck при проверки наличия биллинга.

Модуль Authentication:

  • Facebook

    • Исправлен редкий краш Class not found when unmarshalling: LoginResultReceiver при попытке авторизоваться.
  • MyGames

    • Исправлена 403 ошибка при попытке авторизоваться через Google.
  • VK

    • Исправлена проблема когда в callback приходили данные без scopes.

Модуль Billing:

  • Добавлен новый асинхронный метод MRGSBilling.isBillingAvailable(). Данный метод будет полезен для таких биллингов как Google и Huawei, так как они не всегда позволяют узнать их состояние в синхронном запросе.

  • Google

    • Исправлено неправильное поведение при котором все ошибки, при запросе продуктов, передавались в MRGSBillingDelegateEx.onReceiveProductsResponce(). Теперь ошибки передаются в MRGSBillingDelegateEx.onReceiveProductsError().
    • Исправлена утечка памяти, когда запросы добавлялись в очередь на выполнение, если billing был недоступен, и не удалялись после их выполнения.
  • Huawei

Модуль MyGamesSupport:

  • Исправлена проблема с отсутствием дефолтного текста в диалоговом окне при запросе разрешений.

Модуль Notifications:

Huawei Store

Обратите внимание, что для модуля Аналитики также потребуется внести некоторые изменения.


v4.3.4🔗

В данной версии:

Модуль Billing:

  • Google
    • Исправлена ошибка NoSuchElementException при отмене покупки, если не был передан developerPayload.

v4.3.4🔗

В данной версии:

Модуль MRGService (базовый):

  • Обновлен MyTracker до 2.1.0.
  • Исправлена проблема со старым шифрованием.

Модуль Advertising:

  • Исправлен краш ActivityNotFoundException при попытке перейти по рекламе если на устройстве отсутствует браузер.

Модуль Authentication:

  • MyGames

    • Исправлено отображение имени приложения в окне авторизации (раньше показывался ClientID, теперь показывается видимое пользователю имя приложения).
    • Исправлена ошибка с белым экраном при ошибке с ssl. Теперь в callback будет приходить ответ с ошибкой с последующим закрытием окна авторизации.
  • Добавлен новый метод MRGSCredentials.getSocialId() который вернет тип текущей соцсети.

  • Исправлены номера возвращаемых значений MRGSAuthenticationNetwork из-за расхождения данных значений на Unity/iOS:
    • Unknown(-1) -> Unknown(0)
    • MRGSAuthenticationNetworkMyGames(13) -> MRGSAuthenticationNetworkMyGames(14)
    • MRGSAuthenticationNetworkAmazon(14) -> MRGSAuthenticationNetworkAmazon(13)

Обратите на это особое внимание если вы используете данные значения через метод getValue()

v4.3.3🔗

В данной версии:

Модуль Billing:

  • Google
    • Исправлен ANR при подключении к google billing сервису.

v4.3.2🔗

В данной версии:

Модуль Authentication:

  • Переработана работа авторизации MyGames. Теперь не используется ClientSecret и RedirectURL, что делает авторизацию более безопасной, а также позволяет получить большее количество информации о пользователе, например имя, фамилия, дата рождения, и др. Добавлена возможность создавать приложение MyGames через сайт MRGS (раньше нужно было ставить задачу на проект SWA).

Важно

Поскольку работа с MyGames авторизацией теперь происходит через MRGS, то старые настройки работать не будут, Вам необходимо заново создать приложение MyGames через MRGS, прописать на клиентах новый ClientID, а также на iOS изменить redirectURL, прописанный в Info.plist. Подробнее про новый подход к работе с MyGames авторизацией смотрите в документации по MyGames

Модуль Billing:

  • Добавлен метод getProductIdentifier() в класс MRGSBankPurchaseResult нового делегата банка. Данный метод вернет идентификатор покупаемого/купленного продукта, в то время как getPurchaseItem() может вернуть null, если продукт, например, не был загружен.

  • Google

    • Исправлена ошибка с возвратом пустого productId/sku, если пользователь отменял платеж (передумал покупать и покидал экран покупки).
    • Исправлена ошибка с переподключением платежного сервиса во время игры, что приводило к блокировке запроса продуктов и совершению платежей.

v4.3.1🔗

В данной версии:

Модуль MRGService (базовый):

  • Исправлена ошибка при вызове вспомогательных функций, связанная отсутствием Context, до инициализации MRGService.
  • Обновлена зависимость MyTracker SDK до 2.0.10 версии.
  • Улучшена проверка интеграции.

Модуль Billing:

  • Samsung
    • Исправлена проблема с вызовом MRGSBillingDelegateEx когда пользователь отменял совершение платежа.

Модуль MRGSFirebaseModule

  • Исправлена ошибка при попытке привести paymentAmount к double когда на самом деле это integer.

Модуль GDPR/CCPA:

  • Добавлены логи для CCPA.

Модуль MRGSNotifications

  • Исправлено неправильное отображение заголовка серверного пуш уведомления.
  • Исправлена ошибка создания дефолтного канала и группы для локальных пуш уведомлений.

v4.3.0🔗

В данной версии:

Модуль MRGService (базовый):

  • Добавлен метод открытия системного окна настроек приложения. Будет полезен при работе с уведомлениями и запросом на IDFA. Подробнее здесь
  • Улучшена система отслеживания длительности сессий.
  • Методы onStart(Activity activity) и onStop(Activity activity) помечены как @Deprecated, больше не используются и будут удалены в следующих версиях.
  • Расширен метод проверки интеграции. Теперь мы будем также проверять все параметры, флаги и ключи на сервере MRGS, и об ошибках настройки приложения вы узнаете сразу в логах клиента, а именно о корректных ключах MyTracker, актуальных настройках платежей, валидности сертификатов уведомлений и ключей проверки платежей.

Модуль Advertising:

  • Улучшен трекинг истории показов, таким образом, ошибок с повторным показом уже просмотренной рекламы не будет.
  • Изменен подход к проверке хешей рекламы для снижения нагрузки на сервера MRGS.

Модуль Analytics:

  • Добавлен метод getAppsFlyerId для получения уникального идентификатора AppsFlyer.
  • Удалена зависимость AppsFlyerSDK.aar, теперь данную зависимость следует подключать отдельно в gradle файле: com.appsflyer:af-android-sdk:5.4.3

Модуль Authentication:

  • Исправлена ошибка авторизации в MyGames (раньше токен на некоторых девайсах получался невалидным).

Модуль Billing:

  • Samsung
    • Исправлена проблема с developerPayload.
    • Исправлена проблема с MRGSBillingDelegate и MRGSBillingDelegateEx на старте инициализации биллинга.

Модуль Firebase:

  • Добавлены новые события в Firebase, отсылаемые при любой покупке более 5,10,50,100 долларов. Подробнее здесь.
  • Добавлено поле VALUE в события покупок в Firebase, они необходимы для закупки рекламы.

Модуль GDPR/CCPA:

  • Метод checkIfUserGetsUnderGDPR теперь требует Activity вместо Context.
  • Убраны методы getAgreementVersion и setAgreementVersion(int version) для перехода проектов на правильный подход к работе с GDPR. Верный подход описан в документации
  • Все методы для работы с GDPR, которые принимают в себя версию соглашения помечены как @Deprecated. Добавлены новые методы, аналогичные старым, но без версии соглашения. Просим перевести работу на них.
  • Улучшена статистика в GDPR, добавлена статистика показа соглашений, для подсчета тех пользователей, которые не согласились с GDPR и ушли из приложения.
  • Исправлено поведение методов для CCPA - теперь получение региона не зависит от вызванных методов GDPR.
  • Исправлено расхождение поведение методов для CCPA между iOS и Android.

Модуль Notifications:

  • Добавлены методы MRGSPushNotification.getVisibility и MRGSPushNotification.setVisibility для отображение уведомлений на LockScreen в Secure режиме. Подробнее здесь
  • Классы MRGSPushNotifications и MRGSLocalPushService помечены как @Deprecated. Вместо них следует использовать новый класс MRGSNotificationCenter.
  • Новый интерфейс MRGSNotificationCenter является объединением двух старых с небольшой разницей в методах:
MRGSPushNotifications MRGSNotificationCenter
getInstance() MRGSNotificationCenterImpl.getInstance()
enableNotifications() enableNotifications(NOTIFICATIONS_TYPE_REMOTE)
disableNotifications() disableNotifications(NOTIFICATIONS_TYPE_REMOTE)
isNotificationsEnabled() isNotificationsEnabled(NOTIFICATIONS_TYPE_REMOTE)
initPushNotifications(delegate) setRemoteDelegate(delegate)
MRGSLocalPushService MRGSNotificationCenter
instance() MRGSNotificationCenterImpl.getInstance()
enableNotifications() enableNotifications(NOTIFICATIONS_TYPE_LOCAL)
disableNotifications() disableNotifications(NOTIFICATIONS_TYPE_LOCAL)
isNotificationsEnabled() isNotificationsEnabled(NOTIFICATIONS_TYPE_LOCAL)
getDelegate() getLocalDelegate()
setDelegate(delegate) setLocalDelegate(delegate)
getGroupDelegate() getLocalGroupDelegate()
setGroupDelegate(gelegate) setLocalGroupDelegate(delegate)

Модуль Support:

  • Добавлен метод showFeedback для показа окна фидбека в MyGamesSupport (раньше можно было открыть при помощи категории, но с отдельным методом открывать будет проще и надежнее) Подробнее здесь

v4.2.5🔗

В данной версии:

  • Поддержка CCPA (ККПА). Подробнее читайте в документации CCPA
  • При авторизации через VK, MRGS сообщит vkid в MyTracker
  • Метод MRGSGDPR.shouldShowGDPRForVersion теперь требует Activity вместо Context

v4.2.4🔗

В данной версии:

Мы поменяли API банка:

Теперь весь API нашего банка стандартизирован на всех трех платформах, и стал более удобным в использовании, а также более функционален.

Из основных изменений:

  • Появился новый класс MRGSBankProductsRequest в которой с помощью методов add можно добавить продукт или массив продуктов определенного типа (типы продуктов теперь стали enum'ом MRGSBankProductType). Затем этот запрос передается в новый метод requestProductsInfo.
  • Появился новый класс MRGSBankPurchaseRequest который позволяет более точно настроить параметры для начала платежа
  • Добавили метод начала покупки, теперь он принимают в себя либо идентификатор продукта, либо идентификатор и payload, либо новый класс MRGSBankPurchaseRequest.

Отдельно про делегат:

  • Добавили полностью новый делегат MRGSBankDelegateEx, теперь он возвращает максимум информации о покупке или о загрузке продуктов.
  • Для загрузки продуктов теперь два колбека - didReceiveProductsResponce и didReceiveProductsError, которые получают объект нового класса MRGSBankProductsResponce, содержащего в себе информацию о валидных продуктах типа MRGSBankProduct, а также массив идентификаторов невалидных продуктов, и объект ошибки в случае, если она произошла.
  • Добавили 4 типа колбеков для результатов транзакций, а именно - didReceiveSucessfullPurchase, didReceiveFailedPurchase, didReceivePendingPurchase, didReceiveCancelledPurchase. Каждый из них принимает объект класса MRGSBankPurchaseResult, описывающего результат покупки, а именно - транзакцию (MRGSBankTransaction), продукт (MRGSBankTransaction), payload и ошибку с кодом и описанием, если она произошла. MRGSBankTransaction подробно описывает транзакцию, включает в себя идентификатор, дополнительную информацию о транзакции для каждой платформы (восстановлена ли,дата, оригинальная транзакция, выбранная скидки, и другое).
  • didReceivePendingPurchase - Метод протокола, вызывается в случае зависшего платежа. Такое может произойти если при покупке ребенку нужно спросить разрешение на покупку у родителя, или другой вариант - при валидации пропал интернет, и повторная попытка валидации будет позже. Такие события не требуют дополнительных действий со стороны разработчиков, они служат только для оповещения пользователя.
  • didReceiveCancelledPurchase - Метод протокола, вызывается в случае отмены пользователем платежа.
  • Появился колбек didCompleteTransactionsRestore, который вызывается, когда процесс восстановления ранее купленных непотребляемых покупок и активных подписок закончен (Не работает в Samsung Store).

Важно - старый API мы оставили, просто пометили его как deprecated. Еще какое-то время мы будем его поддерживать, но советуем переехать на новый интерфейс, тем более переезд должен быть простым, так как основная логика работы не поменялась. Внутри сам банк мы не меняли, изменился только внешний интерфейс.

Подробнее про использование нового API читайте в документации по банку - https://mrgs.astrum.team/Doc/ru/payments/integration/base/

  • Также исправлена ошибка некорректной работы некоторых видов GDPR с кастомной версткой (в частности некорректное отображение combo-box)

v4.2.3🔗

  • Теперь при отправке событий регистрации и логина в MyTracker в эти события автоматически добавляется установленный нам пользователь (сделано, так как MyTracker поменяли API отправки этих событий)
  • Обновлен MyTracker до версии 2.0.9

v4.2.2🔗

  • Исправлена ошибка в модуле авторизации. При логине в Google Games, иногда, при первом вызове функции login возвращалась ошибка, а при втором вызове логин проходил корректно.

v4.2.1🔗

В данной версии:

Добавлен новый модуль:

Добавлен новый модуль MRGSRecommendations, для работы с внутренней системой RecSys для получения предсказаний о том, какой продукт скорее всего пользователь захочет купить. На данный момент функция работает в beta-режиме, а модуль позволяет только отправлять необходимые для системы события в MRGS. По результатам тестирования модуль будет расширяться и дополняться новыми функциями.

  • Изменен режим генерации session_id. Мы постарались сделать его генерацию более уникальной, также сессия теперь "протухает" через 5 минут после сворачивания приложения
  • Добавлен механизм включения/отключения как локальных, так и серверных уведомлений. Подробнее читайте об этом в документации по расширенной работе с уведомлениями
  • Проброшен делегат MyTracker для получения данных по атрибуции (deffered deeplink)
  • Исправлена работа метода checkIntegration, теперь внутри он стал асинхронным, и более точно определяет ошибки, связанные с неверной настройкой appId/Secret и сетевых запросов.
  • Добавлена автоматическая отправка данных о впервые совершенном пользователем платеже в Firebase
  • Метод checkIntegration снова возвращает void, а не string, но для проектов, которые хотят получить результаты проверки интеграции не только в логе, но и в виде строки, мы добавили еще одну вариацию метода с колбеком.
  • Теперь при обращении в службу поддержки MyGames можно прикреплять к тикету видеофайл
  • Увеличен номер версии соглашения GDPR

Также исправлены баги:

  • Исправлено редкое падение в роллере "Пилигрим"
java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3555)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3707)
  at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:83)
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2220)
  at android.os.Handler.dispatchMessage (Handler.java:107)
  at android.os.Looper.loop (Looper.java:237)
  at android.app.ActivityThread.main (ActivityThread.java:8016)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1076)
Caused by: java.lang.NullPointerException: 
  at ru.mail.mrgservice.MRGSSharedPreferences.<init> (MRGSSharedPreferences.java:23)
  at ru.mail.mrgservice.MRGService.getSharedPreferences (MRGService.java:335)
  at ru.mail.mrgservice.MRGSIDCache.getOpenUDID (MRGSIDCache.java:28)
  at ru.mail.mrgservice.MRGSDevice.generateMrgsDeviceId (MRGSDevice.java:600)
  at ru.mail.mrgservice.MRGSDevice.getOpenUDID (MRGSDevice.java:592)
  at ru.mail.mrgservice.MRGSTransferManager.internalAddToSendingBuffer (MRGSTransferManager.java:457)
  at ru.mail.mrgservice.MRGSTransferManager.addToSendingBuffer (MRGSTransferManager.java:377)
  at ru.mail.mrgservice.advertising.MRGSAdvertisingSliderController.sendSliderShowAction (MRGSAdvertisingSliderController.java:82)
  at ru.mail.mrgservice.advertising.MRGSAdvertisingSliderController.<init> (MRGSAdvertisingSliderController.java:37)
  at ru.mail.mrgservice.advertising.MRGSAdvertisingSliderActivity.onCreate (MRGSAdvertisingSliderActivity.java:106)
  at android.app.Activity.performCreate (Activity.java:7957)
  at android.app.Activity.performCreate (Activity.java:7946)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1307)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3530)

Прекращена поддержка MCSocial

Мы прекратили поддержку MCSocial, поскольку перенесли основной функционал в модуль MRGSAuthentication, улучшив качество и правильность работы. Большинство методов не изменилось, поэтому для миграции с MCSocial на MRGSAuthentication достаточно:

  1. Поменять в коде все вхождения "MCSocial" на "MRGSAuthentication"
  2. Поменять в коде все вхождения "MCS" на "MRGSAuthentication"
  3. Перенести параметры для соцсетей из MCSocial (appID/secret) в параметры, которые проставляются при инициализации MRGS (либо через код, либо в MRGService.plist/MRGService.xml, обратите внимание, что файлы MRGService.plist/MRGService.xml были изменены и идут в комплекте с SDK)
  4. Если вы указывали не дефолтные пермишны для соцсетей (friends в facebook, например), то необходимо использовать метод loginWithScopes, вместо обычного логина, так как пермишны теперь выставляются не в настройках, а при самом логине.
  5. На iOS можете убрать вызов метода application:openURL:sourceApplication: у класса MCSocialSettings
  6. Удалить библиотеку MCSocial из проекта вместе со связанными SDK (Facebook, OK,VK,Twitter,MailRu и другие), и импортировать SDK из MRGSAuthentication.

Важно отметить, что после переезда на MRGSAuthentication сессии пользователей, которые вошли через MCSocial сохранятся и будут доступны в MRGSAuthentication.

v4.2.0🔗

В данной версии:

Добавлен модуль MRGSAuthentication (Авторизации) с включенными в него такими сетями как:

  • Facebook
  • VKontakte
  • Amazon
  • MyGames
  • Google Play Games

Напоминаем, что модуль MRGSAuthentication поможет вам быстро внедрить авторизацию в популярных сервисах и социальных сетях. Основное преимущество - универсальный API - набор основных методов авторизации реализуют все наши классы. Таким образом, вы можете настроить процесс авторизации используя абстрактный объект социальной сети, без привязки к конкретному сервису.

Обращаем внимание, модуль фейсбука работает без зависимости от нативного SDK, но тем не менее умеет вытаскивать из него данные авторизации, на наш модуль можно перейти даже с проектов, использующих сейчас нативное SDK. Также стоит отметить, что в из-за добавления новых социальных сетей, добавились и новые зависимости от VKSdk и AmazonSDK

Подробнее про внедрение каждого из модулей и их использование читайте в документации в соответствующем разделе. Также, те проекты, которые использовали MCSocial, теперь могут перейти на новый модуль авторизации.

Кроме того, данной версии произошли некоторые нововведения и изменения:

  • Метод checkIntegration класса MRGSIntegrationCheck теперь возвращает строку, а не void, как раньше. (В остальном поведение не поменялось)
  • Добавлены новые автоматические метрики в Firebase - Purchase14D и Purchase90D в случае, если покупка была совершена в первые 14 и 90 дней соответственно.
  • Добавлена отправка в AppsFlyer информации о платежах в Samsung (Galaxy) Store
  • Обновлен MyTracker до версии 2.0.7

Изменения в GDPR!

Теперь MRGS сам занимается отслеживанием версии соглашения и его обновлением. Поэтому начиная с этого релиза метод setAgreementVersion и все одноименные параметры, передаваемые в методы будут игнорироваться, а в последующих версиях и вовсе будут убраны.

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

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

  • У класса по работе с GDPR появился новый метод - getAgreementTime(). Он возвращает текущую дату соглашения, полученную с сервера, или 0, если не удалось получить эту информацию.

Подробнее о новых функциях и их использовании читайте в документации.

v4.1.14🔗

Исправлена ошибка отображения некорректного текста в кастомных серверных уведомлениях

v4.1.13🔗

В данной версии изменена логика отправки пользователя в MyTracker, чтобы более корректно формировались связки пользователей в 1Link.

v4.1.12🔗

В данной версии изменены url для нашего api в связи с переездом на новый домен

  • При создании канала для уведомлений теперь можно указывать приоритет (свойство Importance)
  • Исправлена проблема, когда не всегда вызывался делегат о пришедшем уведомлении
  • У серверных уведомлений теперь можно в json params указывать vibrate : false для отключения вибрации

Пример:

{
   "icon" : "notification_small",
   "largeIcon" : "notification_large",
   "vibrate" : false
}
  • Если в кастомном серверном уведомлении указать в качестве текста строчку TITLE, то в это поле будет подставлен текст из поля Title уведомления, а если указать строчку MESSAGE то будет подставлен текст из поля Message

Пример:

{
   "custom_notification" : {
       "layout" : "notification_custom",
       "texts" : {"title" : "$TITLE$", "text" : "$MESSAGE$"},
       "images" : {"back" : "castle"}
   },
   "icon" : "notification_small",
   "largeIcon" : "notification_large"
}

v4.1.11🔗

  • Исправлена ошибка с выставлением флага html5Supported в true по умолчанию

v4.1.10🔗

  • Исправлено падение в модуле MRGSNotifications, класс MRGSLocalPushService
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.toString()' on a null object reference

ru.mail.mrgservice.MRGSLocalPushService.getNotificationChannels (MRGSLocalPushService.java:720)
ru.mail.mrgservice.MRGSLocalPushService.isNotificationChannelExists (MRGSLocalPushService.java:730)
ru.mail.mrgservice.MRGSGCMImpl.generateNotification (MRGSGCMImpl.java:199)
ru.mail.mrgservice.MRGSGCMImpl.onMessageReceived (MRGSGCMImpl.java:45)
ru.mail.mrgservice.MRGSFCMIntentService.onMessageReceived (MRGSFCMIntentService.java:30)
com.google.firebase.messaging.FirebaseMessagingService.zzc (com.google.firebase:firebase-messaging@@20.1.0:78)
com.google.firebase.messaging.zze.run (com.google.firebase:firebase-messaging@@20.1.0:2)
java.util.concurrent.ThreadPoolExecutor.processTask (ThreadPoolExecutor.java:1187)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
com.google.android.gms.common.util.concurrent.zza.run (Источник неизвестен:6)
java.lang.Thread.run (Thread.java:929) 

v4.1.9🔗

  • Исправлена ошибка дублирующего сообщения в групповых уведомлениях
  • Если канал для уведомлений уже создан, то он не будет повторно создаваться во время срабатывания серверных уведомлений

v4.1.8🔗

  • Обновили MyTracker до версии 2.0.1
  • Вынесли вызов метода MRGSBilling.restoreTransaction в отдельный поток, что должно убрать сообщения ANR в консоли Google Play
  • Перенесена отправка события показа роллера пилигрим. Теперь событие будет отравляться при отображении первого баннера
  • Исправили падение если MRGS GameCenter открывается до инициализации MRGS
  • Исправили редкое падения в окне GDPR

v4.1.7🔗

  • Исправлена ошибка, которая могла приводить к падению, если реклама Пилигрим открывается до инициализации MRGS
Caused by
        at ru.mail.mrgservice.MRGSSharedPreferences.<init> (MRGSSharedPreferences.java:23)
        at ru.mail.mrgservice.MRGService.getSharedPreferences (MRGService.java:332)
        at ru.mail.mrgservice.MRGSIDCache.getOpenUDID (MRGSIDCache.java:28)
        at ru.mail.mrgservice.MRGSDevice.generateMrgsDeviceId (MRGSDevice.java:621)
        at ru.mail.mrgservice.MRGSDevice.getOpenUDID (MRGSDevice.java:613)
        at ru.mail.mrgservice.MRGSTransferManager.internalAddToSendingBuffer (MRGSTransferManager.java:462)
        at ru.mail.mrgservice.MRGSTransferManager.addToSendingBuffer (MRGSTransferManager.java:378)
        at ru.mail.mrgservice.advertising.MRGSAdvertisingLifeCycle.sendShowCampaignEvent (MRGSAdvertisingLifeCycle.java:26)
        at ru.mail.mrgservice.advertising.controllers.VideoAdsController$2.onFinish (VideoAdsController.java:170)
        at android.os.CountDownTimer$1.handleMessage (CountDownTimer.java:127)
        at android.os.Handler.dispatchMessage (Handler.java:106)
        at android.os.Looper.loop (Looper.java:201)
        at android.app.ActivityThread.main (ActivityThread.java:6806)
        at java.lang.reflect.Method.invoke (Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:873)

v4.1.6🔗

  • Исправлена ошибка, которая в некоторых случаях могла приводить к ANR при инициализации MRGS
Caused by ANRError$$$_Thread: main (state = RUNNABLE)
        at J.N.MyGX0Tx3(PG)
        at P6.l(PG:56)
        at P6.a(PG:40)
        at P6.b(PG:8)
        at com.android.webview.chromium.WebViewChromiumFactoryProvider.a(PG:18)
        at com.android.webview.chromium.WebViewChromium.init(PG:14)
        at android.webkit.WebView.<init>(WebView.java:591)
        at android.webkit.WebView.<init>(WebView.java:526)
        at android.webkit.WebView.<init>(WebView.java:509)
        at android.webkit.WebView.<init>(WebView.java:496)
        at android.webkit.WebView.<init>(WebView.java:486)
        at ru.mail.mrgservice.MRGSDevice$1.run(MRGSDevice.java:156)
        at android.os.Handler.handleCallback(Handler.java:815)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:210)
        at android.app.ActivityThread.main(ActivityThread.java:5839)
        at java.lang.reflect.Method.invoke(Method.java)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879)

v4.1.5🔗

  • Обновили MyTracker до версии 2.0.0

v4.1.4🔗

  • Теперь MRGS всегда использует протокол HTTPS для передачи данных. Вы можете отключить флаг android:usesCleartextTraffic в AndroidManifest.xml
  • Добавили поддержку локализации GDPR. Для установки нужного языка, перед показом соглашения, вызовите метод setLacalizationLanguage и передайте буквенное обозначение языка в формате ISO-639-1. Получить список доступных языков можно вызвав метод getSupportedLocalizations
  • Добавили поддержку PlayableAds в Пилигрим
  • Улучшили отображение StaticsAds и VideoAds в Пилигрим
  • Убрали отправку события purchase в AppsFlyer. Теперь будет отправляться только событие af_purchase
  • Обновили AppsFlyer до версии 5.1.0
  • Добавили методы setBufferingPeriod, setForcingPeriod и flush для класса MRGSMyTracker
  • Обновили MyTracker до версии 1.5.14

v4.1.3🔗

  • Исправлена ошибка в биллинге, которая не позволяла проводить платеж с ошибкой - Billing [MRGS] BuyItem: current user is unknown! Payment is not available!

v4.1.2🔗

  • Сокращено число повторных запросов к серверу mrgs в случае восстановления подписок
  • Переделан API по работе с пользователями
  • Исправлено возможное падение в Google Billing
at ru.mail.mrgservice.utils.optional.Union.get1 (Union.java:38)
at ru.mail.mrgservice.utils.optional.Optional.get (Optional.java:34)
at ru.mail.mrgservice.MRGSGoogleBillingV2.userCanceledPurchases (MRGSGoogleBillingV2.java:640)
at ru.mail.mrgservice.MRGSGoogleBillingV2.onPurchasesUpdated (MRGSGoogleBillingV2.java:622)

Новый API для пользователей!

Теперь нет необходимости регистрировать, а затем авторизовать пользователя. Больше не нужно строить сложную логику вокруг простой установки пользователя нам, наконец то это произошло) Теперь достаточно вызывать метод setUserId.
Однако, для корректного подсчета статистики на стороне MyTracker, необходимо вызывать два метода - trackRegistrationEvent и trackLoginEvent у класса MRGSMyTracker.
Обратите внимание, что старый API полностью убран из SDK.
Зачем мы так сделали? Сейчас все события регистрации/авторизации неверно определяются в MyTracker, с кастомными именами event'ов, что затрудняет работу менеджеров. Оставление старых методов не могло гарантировать верный переход проектов на работу с пользователями, и корректную отправку статистики. Так как новый API крайне прост, будет очень легко на него перейти, и реализовать более корректный трекинг событий, связанных с пользователем.


v4.1.1🔗

  • Исправлено отображение GDPR на телефонах с вырезом
  • Исправлена некорректная работа GDPR при подмене SSL сертификата
  • Изменено расстояние между баннерами в роллере Пилигрим

v4.1.0🔗


v4.0.11🔗

  • Временно отключена отправка логов на сервер

v4.0.10🔗

  • Уменьшено число обращений к серверу MRGS в случае ошибки загрузки пилигрима

v4.0.9🔗

  • Исправлена ошибка, когда при первом запросе продуктов из банка, возвращался пустой список продуктов

v4.0.8🔗

  • Исправлено падение в Google Billing на строке
MRGSGoogleBillginV2.java:648
  • Валидация URL в кампаниях Пилигрим
  • в GDPR добавлены три страны - Норвегия, Исландия, Лихтенштейн

v4.0.7🔗

  • Исправлено некорректное отображение пилигрим
  • Добавлен метод для валидации интеграции MRGService.checkIntegration

v4.0.6🔗

  • Новый банк для платежей в Google Play Store на основе библиотеки Google Billing Library 2.0.3

Добавьте зависимость в build.gradle

implementation 'com.android.billingclient:billing:2.0.3'

Получение In-app продуктов за пределами приложения
Теперь на платформе Android пользователь может получить In-app продукт за пределами приложения. Первый способ - ввод промокода в Google Play Подробнее. Второй способ - предварительная регистрация (предварительная покупка) вашего приложения в Google Play (если вы настроили выдачу бонуса за предварительную регистрацию) Подробнее

Для того, чтобы пользователь максимально быстро получили награду, необходимо вызвать метод restoreTransaction() у класса MRGSBilling. Google рекомендует вызывать этот метод при разворачивании приложения. Помните, что этот метод корректно сработает только в том случае, если уже был загружен список продуктов из Google Play с помощью метода getProductsInfoWithTypes.

Для активации промокода внутри приложения, вызовите метод

public void redeemPromoCode(promocode)

Отложенные платежи
Появилась поддержка отложенных платежей. После того, как пользователь начал процесс покупки и перешел в состояние "оплатить покупку", будет вызван метод purchaseIsPending интерфейса MRGSBillingDelegate. Как только пользователь оплатит покупку, в приложении будет вызван метод purchaseComplete. Если приложение было в этот момент закрыто, при следующем запуске необходимо вызвать метод restoreTransaction Подробнее


v4.0.5🔗

  • Исправлена ошибка отправки не верифицированных платежей в AppsFlyer.

v4.0.4🔗

  • Исправлена ошибка некорректной обработки настройки выбора протокола соединения с сервером mrgs
  • У класса MRGSBroadcastReceiver добавлен метод restoreReferer, вызвав который можно получить INSTALL_REFERER с которым было установлено приложение

v4.0.3🔗

  • Для тестирования нагрузки MRGS автоматически будет переключать протокол http/https в зависимости от настройки на сервере
  • Исправлена ошибка, когда после закрытия окна MyComSupport не прятался Navigation Bar

v4.0.1🔗

  • Исправлена ошибка некорректной генерации OpenUDID
  • Исправлена ошибка некорректного "потребления" товара при покупке из Samsung Store

v4.0.0🔗

Пожалуйста, прочтите руководство по миграции! Оно расположено внутри документации на сайте Руководство по миграции

  • MRGS теперь разбит на несколько библиотек Если ваш проект использует не все возможности MRGS, пожалуйста, просмотрите документацию, там указано какая функциональность требует определенную библиотеку. Может что-то вы сможете убрать. Например MRGSGameCenter.aar нужен только нескольким проектам
  • Добавилась аналитика Firebase Если вы отправляете событие MRGSAnalytics.sendEvent(), помимо AppsFlyer оно уйдет и в Firebase. Можно слать отдельно в AppsFlyer, отдельно в Firebase, для этого надо вызвать метод MRGSAnalytics.getAppsFlyer() и MRGSAnalytics.getFirebase()
  • Важно! События Purchases1D, Purchases7D, Purchases28D отправляются в Firebase автоматически. Если вы отправляете их из своего проекта, убирайте, иначе будет дублирование.
  • Обновили Samsung Billing API до версии 5.0. Для подключения Samsung Billing не забудьте добавить файл IAPHelper.aar (из директории libs в архиве), в ваш проект

v3.8.137🔗

  • Поддержка настройки каналов нотификаций на Android 8
  • Исправлено возможное падение при быстром закрытии приложения перед показом GDPR
  • Исправлено падение при прикреплении файла MyComSupport на устройстве CHUWI Hi10 pro
  • Изменилась схема трекинга показов видео в пилигрим. Теперь информация о показе отправляется раньше (по такой же схеме как и у основных рекламных сетей IronSource и прочее). Это сделано для того, чтобы отслеживать показы одинаково и сократить время выдачи награды за просмотр.

v3.8.136🔗

  • Отключен старый API проверки версии Google Play Services
  • Кросс-промо слайдер должен корректно отображаться на Samsung S10e

v3.8.135🔗

  • Теперь метод serverTime возвращает время правильно. После сворачивания приложения время сбрасывается. При следующем запросе к серверу mrgs время будет опять установлено.

v3.8.134🔗

  • Исправлена ошибка в новом API GDPR, когда после вызова функции setUserHasAcceptedAgreementWithVersion не сохранялась версия соглашения
  • Добавлена автоматическая отправка event'a о регистрации пользователя в myTracker, чтобы проекты могли считать уникальных пользователей и установок
  • Появилась возможность показывать свой кастомный интерфейс в GDPR. Больше не нужно возиться с HTML, скоростью их загрузки и версткой. Мы добавили три новых метода: два для того, чтобы узнать, подходит ли пользователь под GDPR, нужно ли ему показывать соглашение, и третий - для уведомления нас о принятии соглашения. Подробнее про данную функцию читайте в документации по GDPR.

v3.8.132🔗

  • Исправлена ошибка некорректного имени файла при прикреплении изображений из галереи к тикетам MyComSupport на Google Pixel2
  • В статическом баннере пилигрим теперь полупрозрачный фон

v3.8.131🔗

  • ВАЖНО! Исправлена ошибка вложений в MyComSupport, когда прикрепленные файлы "теряли" расширение. Из-за этого в админке MyComSupport файлы отображались некорректно
  • Обновился MyTracker до версии 1.5.6, обновите свой build.gradle файл
dependencies {
    implementation 'com.my.tracker:mytracker-sdk:1.5.6'
}

v3.8.130🔗

  • Исправлена ошибка, когда некоторые файлы не могли быть прикреплены к тикету MyCom Support с ошибкой "файл слишком большой"
  • Исправлено возможное падение при инициализации MRGS Advertising (Пилигрим) на смартфонах без WebView

v3.8.129🔗

  • MRGS переведен с Apache HttpClient на UrlConnection. Теперь можете убрать все зависимости org.apache.httpcomponents и строчку useLibrary 'org.apache.http.legacy' из build.gradle.

v3.8.128🔗

  • Из GoogleBilling убраны rewarded products! А BillingAPI вернулся с 6 обратно на 3тью версию

v3.8.127🔗

  • Исправлена ошибка формирования подписи для запросов к MyComSupport. Эта ошибка могла приводить к тому, что окно с MyComSupport не открывалось.

v3.8.126🔗

  • MRGSGDPR теперь использует реальный, а не фейковый, адрес в качестве baseurl при открытии html из файла, что должно исправить проблему с отображением GDPR в некоторых странах
  • Убран вызов колбека в GoogleBillingActivity при сворачивании приложения

v3.8.124🔗

  • При авторизации пользователя и запуске приложения MRGS автоматически проставляет поле customUserId у MyTracker
  • При авторизации пользователя в MyTracker отправляется событие authorizeUser

v3.8.122🔗

  • Исправлена ошибка в пилигрим, некорректно поворачивался баннер в Android 8

v3.8.121🔗

  • Текстовые метрики. Раньше Вы могли отправлять метрики MRGS, состоящие только из числовых значений, теперь добавилась возможность отправлять метрики с текстовым ключом. Они будут автоматически создаваться в админке MRGS.
  • MRGSMyTracker. Мы сделали обертку для отправки событий напрямую в MyTracker. Теперь если вам надо отправить кастомное событие напрямую в MyTracker, минуя MRGS, вы можете вызвать метод MRGService.instance().getMyTracker().trackEvent(eventname, params)
  • Piligrimm Metrics. Теперь можно наблюдать точную картину поведения пользователя при просмотре рекламы. На наш сервер теперь отправляются 4 типа событий: во время просмотра произошел креш, пользователь закрыл приложение во время просмотра рекламы, ошибка загрузки кампании, ошибка с проверкой хеша кампании. Таким образом, статистика станет более понятной.
  • Кастомные серверные push-нотификации. Теперь вы можете в серверных пуш уведомлениях указывать свою разметку пуш уведомлений, если она есть в ресурсах, так же как и для локальных пуш уведомлений. Для этого в param надо указать JSON такого формата
{
    "custom_notification" : {
        "layout" : "<имя layout'а нотификации в ресурсах>",
        "texts" : {"<имя TextView внутри layout'а>" : "<Строка с текстом>", "<имя TextView внутри layout'а>" : "<Строка с текстом>"},
        "image" : {"<имя ImageView внутри layout'а>" : "<Имя drawable ресурса с картинкой>", "<имя ImageView внутри layout'а>" : "<Имя drawable ресурса с картинкой>"}
    }
}

Пример:

{
    "custom_notification" : {
        "layout" : "evo_custom_notification",
        "texts" : {"text_view1" : "Title", "text_view2" : "Message"},
        "image" : {"image_view1" : "blake_image", "image_view2" : "pilot_blade"}
    }
}
  • Исправлена ошибка, когда в кастомном уведомлении для одной нотификации отображался сразу счетчик "2"

v3.8.116🔗

  • Исправлена ошибка в пилигрим, когда при вызове метода canShowContent() и отсутствии файлов, на сервер мог несколько раз отправляться запрос с информацией об ошибке

v3.8.115🔗

  • Исправлена ошибка, когда пользователь отказывался совершать платеж, колбек в делегат не приходил

v3.8.114🔗

  • Добавлена отправка метрик в биллинге
  • Вызывается метод flush() у MyTracker после запуска приложения для отправки метрики запуска
  • Добавлен API для проверки включены у приложения нотификации, или выключены MRGSLocalPushService.areNotificationsEnabled(Context context)

v3.8.112🔗

  • Поддержка Google Rewarded Prouducts в биллинге

После загрузки информации по продуктам, у объектов MRSPurchaseItem можно вызвать метод isRewarded(). Если вернулся true - это rewarded продукт. Перед его "покупкой" необходимо вызывать метод loadRewardedSku. После получения колбека со статусом 0 (BILLING_RESPONSE_RESULT_OK), данный товар можно "покупать", т.е. демонстрировать рекламу пользователям.

  • При показе статических и виде баннеров Пилигрим, можно добавлять payload (дополнительную информацию разработчика, которую в дальнейшем можно получить через серверный API.

v3.8.106🔗

  • Методы getAdvertising и createAdvertising могут кинуть исключение MRGServiceNotInitializedException, если сервис не был проинициализирован до вызова этих методов.
  • Исправлено возможное падение, если метод service у класса MRGService был вызван не из главного потока.

v3.8.105🔗

  • Добавлены мульти метрики. Теперь метрики не будут отправляться сразу, а копиться и отправляться сериями.
  • Добавлены правила для ProGuard
  • Теперь корректно передается флаг skipped при клике на рекламу (он будет в false)
  • Исправлено возможное падение в Пилигриме
AndroidJavaException: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String MRGSAdvertisingSlider.getId()' on a null object reference
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String MRGSAdvertisingSlider.getId()' on a null object reference
        at MRGSAdvertImpl.canShowContent(MRGSAdvertImpl.java:179)
        at com.my.hustlecastle.PiligrimAdvertisingVideoHelper.canShowContent(PiligrimAdvertisingVideoHelper.java:27)
        at com.my.hustlecastle.PiligrimAdvertisingVideoHelper.canShow(PiligrimAdvertisingVideoHelper.java:64)

v3.8.104🔗

  • Изменился протокол обращения к MyCom Support. Теперь параметр signature (раньше sig) использует день месяца, для того чтобы ссылка была валидна только один день.
  • Таймаут запроса страны по GEO IP для GDPR уменьшен до 5 секунд, чтоб пользователь не ждал долго открытия окна на запуске приложения
  • Обновлены сторонние SDK

v3.8.103🔗

  • Исправлено повторное отправление лога о согласии с GDPR

v3.8.102🔗

  • Исправлено падение в MRGSRestClient при запросах по протоколу https на Android 7.0 и выше при использовании network_config

Данное падение происходило по причине отсутствия нужного метода у MRGSX509TrustManager и не приводило к падению приложения, однако не давало возможность отправить запрос о совершении платежа на сервер mrgs, а так же порождало большое число запросов об ошибке платежа.

Caused by: java.security.cert.CertificateException: Domain specific configurations require that hostname aware  String) is used
    at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:111)
    at ru.mail.mrgservice.MRGSX509TrustManager.checkServerTrusted(MRGSX509TrustManager.java:38)
    at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:207)
    at com.android.org.conscrypt.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:607)
    at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
    at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357)

v3.8.101🔗

  • Добавлен User-Agent в запросы gdpr
  • Исправлены падения по репортам Studio Nord
Caused by: java.lang.NullPointerException: at ru.mail.mrgservice.MRGSGoogleBillingActivity.onActivityResult (MRGSGoogleBillingActivity.java:25)
    at android.app.Activity.dispatchActivityResult (Activity.java:6302)
    at android.app.ActivityThread.deliverResults (ActivityThread.java:3835)
Caused by at ru.mail.mrgservice.MRGService.uploadFinished (MRGService.java:463)
    at ru.mail.mrgservice.MRGSTransferManager.handleLoadData (MRGSTransferManager.java:457)
    at ru.mail.mrgservice.MRGSTransferManager.access$600 (MRGSTransferManager.java:27)
    at ru.mail.mrgservice.MRGSTransferManager$3.succeeded (MRGSTransferManager.java:163)
    at ru.mail.mrgservice.MRGSTransferManager$5.result (MRGSTransferManager.java:430)
    at ru.mail.mrgservice.MRGSDevice.generateMrgsDeviceId (MRGSDevice.java:539)
    at ru.mail.mrgservice.MRGSDevice.getOpenUDID (MRGSDevice.java:496)
    at ru.mail.mrgservice.MRGSTransferManager.requestRestClient (MRGSTransferManager.java:436)
    at ru.mail.mrgservice.MRGSTransferManager.sendData (MRGSTransferManager.java:201)
    at ru.mail.mrgservice.MRGSTransferManager.access$500 (MRGSTransferManager.java:27)
    at ru.mail.mrgservice.MRGSTransferManager$2.run (MRGSTransferManager.java:110)
    at java.lang.Thread.run (Thread.java:762)

v3.8.100🔗

  • Добавлен метод в Billing для автоматического восстановления зависших транзакций после загрузки информации по продуктам. Для этого необходимо выставить флаг перед перед начало работы с банком:
MRGSBilling.instance().autoRestoreTransactions(true);
  • Исправлено возможное падение в классе MRGService при обработке ответа о не валидности подписи запроса
Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String ru.mail.mrgservice.MRGSPurchaseItem.type' on a null object reference
    at ru.mail.mrgservice.MRGSGoogleBilling.requestSuccess(MRGSGoogleBilling.java:877)
    at ru.mail.mrgservice.MRGSGoogleBilling.access$1300(MRGSGoogleBilling.java:33)
    at ru.mail.mrgservice.MRGSGoogleBilling$8.run(MRGSGoogleBilling.java:870)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)

v3.8.99🔗

  • Исправлена ошибка с падением внутри ru.mail.mrgservice.MRGService.uploadFinished(MRGService.java:506)
  • deviceToken для Firebase нотификаций отправляется только после инициализации MRGS

v3.8.98🔗

  • GameCenter вынесен в отдельный проект

v3.8.97🔗

  • Добавлена возможность в Custom нотификациях указывать поле счетчика, куда будет вставляться количество нотификаций при группировке
  • Убран пробел в action iuas_click_campaign
  • Загрузка изображений в роллере Пилигрим вынесена в отдельный поток

v3.8.95🔗

  • Логирование соглашения о принятии GDPR отправляется через https
  • При вызове функции sendPaymentInfo данные так же передаются в MyTracker
  • Убран сбор IMEI даже если есть пермишн READ_PHONE_STATE

v3.8.94🔗

  • MyComSupport checkTickets не будет вызываться, если не проставлен secret
  • Убран автоматический вызов MyCom Support checkTickets после авторизации пользователя
  • IDFA и OpenUDID в запросе после согласия с GDPR перенесены из GET в POST, так как гугл показывал warning об утечке рекламного идентификатора
  • Обновление MyTracker до версии 1.5.3

v3.8.92🔗

  • Дополнительные функции для установки CustomView в нотификациях из Unity

v3.8.91🔗

  • Обновлена верстка GDPR для совместимости с некоторыми Android устройствами

v3.8.90🔗

  • Разнесли отчеты об ошибках при открытии роллера Пилигрим по разным категориям.

v3.8.89🔗

  • Исправлена ошибка в Пилигрим. Если, после корректной загрузки, при попытке открыть слайдер, кеш пустой, не показывать слайдер. На сервер теперь отправляется описание ошибки при невозможности показа изображения.

v3.8.88🔗

  • Изменили логику выбора изображения для роллера Пилигрим. Теперь для промежуточных разрешений будет выбираться более низкое.

v3.8.87🔗

  • Отключено аппаратное ускорение WebView для GDPR на устройствах младше Android 4.4

v3.8.86🔗

  • Исправлено отображение GDPR на разных устройствах

v3.8.84🔗

  • Определение страны на причастность к GDPR проводится один раз

Пример использования

private MRGSGDPR _gdpr;

@Override
void onCreate(Bundle bundle) {
    _gdpr = MRGSGDPR.MRGSGDPRFactory.getMRGSGDPR();
    _gdpr.setDelegate(this);
    _gdpr.showDefaultAgreementAtActivity(this, "40");
}

@Override
public void onStart() {
    super.onStart();
    if (_gdpr.getAgreedVersion(this) == _gdpr.getAgreementVersion()) {
        MRGService.instance().onStart(this);
    }
}

@Override
public void onStop() {
    super.onStop();
    if (_gdpr.getAgreedVersion(this) == _gdpr.getAgreementVersion()) {
        MRGService.instance().onStop(this);
    }
}

@Override
public void userHasAcceptedGDPR(boolean withAdvertising) {
    initMRGS();
    MRGService.instance().onStart(this);
}

@Override
public void errorShowingAgreement() {
    finish();
}

v3.8.83🔗

  • Добавлена поддержка GDPR. Для отображения соглашения необходимо воспользоваться классом GDPR

Пример использования

private MRGSGDPR _gdpr;

@Override
void onCreate(Bundle bundle) {
    _gdpr = MRGSGDPR.MRGSGDPRFactory.getMRGSGDPR();
    _gdpr.setDelegate(this);
    _gdpr.showDefaultAgreementAtActivity(this, "40");
}

@Override
public void onStart() {
    super.onStart();
    if (_gdpr.getAgreedVersion(this) == _gdpr.getAgreementVersion()) {
        MRGService.instance().onStart(this);
    }
}

@Override
public void onStop() {
    super.onStop();
    if (_gdpr.getAgreedVersion(this) == _gdpr.getAgreementVersion()) {
        MRGService.instance().onStop(this);
    }
}

@Override
public void userHasAcceptedGDPR(boolean withAdvertising) {
    initMRGS();
    MRGService.instance().onStart(this);
}

@Override
public void errorShowingAgreement() {
    finish();
}

v3.8.82🔗

  • Исправлено потенциальное падение в Пилигрим в методе campaignComplete

v3.8.81🔗

  • Добавлена поддержка нового API MyCom Support для проверки наличия ответов на тикеты. Внимание! Теперь перед проверкой тикетов необходимо выставлять Secret, как это делалось раньше перед открытием окна MyCom Support
MRGSMyComSupport.setSecret("mysecret");
MRGSMyComSupport.setTicketListener(new SupportTicketListener());
MRGSMyComSupport.checkTicketsWithDelay(context, 5*1000);
  • Исправлена ошибка отображения баннера в Пилигрим
  • Отключен автотрекинг платежей MyTracker
  • Исправлено падение внутри MRGSFileManager если не был установлен AppContext
  • Исправлено возможное падение в MRGSLocaPushService
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference (at ?)
at ru.mail.mrgservice.MRGSLocalPushService._getAllLocalPushes(MRGSLocalPushService.java:302)
at ru.mail.mrgservice.MRGSLocalPushService.getAllLocalPushes(MRGSLocalPushService.java:296)
at com.my.moba.mrgs.localpushes.LocalPushesWrapper.removeAllLocalPushes(LocalPushesWrapper.java:54)

v3.8.80🔗

  • Исправлена ошибка отображения баннера в Пилигрим

v3.8.79🔗

  • Изменена логика выбора разрешения изображений в Пилигрим для экранов 1921px и выше

v3.8.78🔗

  • Добавлена поддержка загрузки изображений в разных разрешениях для роллера в Пилигрим.

v3.8.77🔗

  • При отправке данных о платежах в MyTracker, проверяем возвращаемое значение
  • Исправлена ошибка падения в MRGSGCMActivity.processDelegate(MRGSGCMActivity.java:98) если не установлен AppContext

v3.8.76🔗

  • Исправлена ошибка, приводящая к неправильному подсчету показов первого баннера в роллере Пилигрим

v3.8.75🔗

  • Обновлен MyTracker до версии 1.5.2
  • Добавлена возможность при открытии окна MyCom Support добавлять дополнительные параметры в формате JSON
MRGSMyComSupportDialog dialog = new MRGSMyComSupportDialog(this);
dialog.addExtraParam("{\"vip\" : true}");

v3.8.74🔗

  • Исправлена ошибка, когда для проектов на GCM использовался токен от Firebase

v3.8.73🔗

  • Исправлена ошибка возможного падения в MRGSAdvertisingBitmapLoader на определенных картинках большого размера. Актуально для MRGS Пилигрим Роллер.

v3.8.72🔗

  • Изменения в MRGS Пилигрим

v3.8.71🔗

  • Изменения в MRGS Пилигрим
  • Откатили MyTracker до 1.4.4. Для подключения этой версии в своем проекте необходимо прописать в build.gradle
dependencies {
    compile 'com.my.tracker:mytracker-sdk:1.4.4'
}

v3.8.70🔗

  • Добавилась поддержка каналов в серверных нотификациях на Android 8.

v3.8.69🔗

  • Добавилась поддержка каналов в нотификациях на Android 8.

Убедитесь, что в зависимостях build.gradle версии библиотек совместимости 26.1.0 или выше

compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:appcompat-v7:26.1.0'

По умолчанию все нотификации будут попадать в канал Default, группа Default.

Если вы хотите указать свою группу и свой канал, необходимо их задать при создании нотификации.

notification.setChannelGroupId("mrgs_default_group");
notification.setChannelGroupName("MRGS");
notification.setChannelId("mrgs_default");
notification.setChannelName("Default");

v3.8.68🔗

Важно

Метод closePayment в MRGSBilling объявлен как deprecated, из-за его частого и неправильного использования. Если ваша игра выдает награду не через сервер, то используйте метод notifyMRGSAboutConsume


v3.8.67🔗

  • Добавилась поддержка передачи дополнительной информации (developerPayload) в локальных и серверных пуш уведомлениях. Для использования необходимо создать пуш
MRGSPushNotification notification = MRGSPushNotification.create("Test notification", 1, MRGS.timeUnix() + 10);
MRGSMap payload = new MRGSMap();
payload.addObject("params", "hello, world!");
notification.setDeveloperPayload(payload);
MRGSLocalPushService.addLocalPush(notification);

При установке делегата, теперь можно использовать новый интерфейс MRGSPushNotificationExDelegate

class MyNotificationDelegate implements MRGSPushNotificationExDelegate {
    void clickOnNotification(int idNotify, String title, String msg, MRGSMap developerPayload, boolean isLocal) {
        //your data in developerPayload
    }
    void receivedNotification(int idNotify, String title, String msg, MRGSMap developerPayload, boolean isLocal) {
        //your data in developerPayload
    }
}

MRGSLocalPushService.setDelegate(new MyNotificationDelegate());

Старый интерфейс MRGSPushNotificationDelegate по прежнему работает, можете использовать его, просто вам не будет приходить developerPayload

developerPayload так же можно передавать со стороны сервера (там это называется "Дополнительные параметры") в виде JSON объекта. Локально он превратится в MRGSMap

Для установки делегата о групповых нотификациях так же появился новый интерфейс MRGSPushNotificationExGroupDelegate

class MyNotificationGroupDelegate implements MRGSPushNotificationExGroupDelegate {
    void clickOnNotificationGroup(int groupId, List<Integer> notificationIds, List<MRGSMap>developerPayload, boolean isLocal);
        //your data in developerPayload
    }
}

MRGSLocalPushService.setGroupDelegate(new MyNotificationGroupDelegate());

Старый интерфейс MRGSPushNotificationGroupDelegate по прежнему работает, можете использовать его, просто вам не будет приходить developerPayload


v3.8.66🔗

  • Исправлена ошибка, которая могла приводит к падению в MRGS Пилигрим

v3.8.65🔗

  • Исправлена ошибка, которая могла приводит к падению в MRGS Пилигрим

v3.8.64🔗

  • Добавлена возможность у CustomView в нотификациях задавать текст строкой а не id из ресурсов

v3.8.63🔗

  • Добавлена возможность у CustomView в нотификациях задавать текст и изображения

v3.8.62🔗

  • Обновлен MyTracker до версии 1.4.5. Для подключения этой версии в своем проекте необходимо прописать в build.gradle
dependencies {
    compile 'com.my.tracker:mytracker-sdk:1.4.5'
}

Так же обратите внимание, если у вас еще не подключен Google Maven Repository, его надо прописать в корневом build.gradle

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

Иначе может быть ошибка при сборке с сообщением, что зависимость com.android.installreferrer:installreferrer:1.0 не найдена


v3.8.61🔗

  • MinSDK опущен до 15

v3.8.60🔗

  • Визуальные изменения в Piligrim

v3.8.59🔗

  • Исправлена ошибка возможного падения в MRGService.uploadFinished

v3.8.58🔗

  • Исправлена ошибка, когда action clickPushNotification уходил на сервер MRGS без AppId

v3.8.57🔗

  • IDFA и OpenUDID убраны из GET внутрь POST запросов. Это важно, если Google прислал вам Warning, что приложение передает рекламный идентификатор в открытом виде.
  • Обновился интерфейс MRGS Piligrim

v3.8.56🔗

  • у AppsFlyer вызывается метод trackAppLaunch во время инициализации, что должно решить проблему поздней фиксации установок

v3.8.55🔗

  • Изменен механизм включения логов у AppsFlyer

v3.8.54🔗

  • Обновлен AppsFlyer до версии 4.8.2

v3.8.53🔗

  • Исправлено падение по NullPointerException в MRGSLocalPushService.java:59

v3.8.52🔗

  • Исправлены ошибки

v3.8.51🔗

  • Обновление библиотеки MyTarget до версии 4.6.19
  • Обновление библиотеки MyTracker до версии 1.4.0

v3.8.50🔗

  • Если включен MyTracker, то теперь по умолчанию все метрики MRGS транслируются в MyTracker. Если есть желание это отключить, то в MRGService.xml, в секции MyTracker необходимо добавить параметр forwardMetrics и установить его значение в false. Например: <MyTracker enable="true" debug="false" forwardMetrics="false" />. Если ваш проект инициализирует MRGS из кода, без использования xml файла, то при вызове MRGService.service необходимо в Bundle sdkBundle поместить
Bundle myTracker = new Bundle();
myTracker.putBoolean("forwardMetrics", false);
sdkBundle.putBundle("MyTracker", myTracker);

v3.8.49🔗

  • При осуществлении платежа теперь можно добавлять информацию (developerPayload), которую бы вы хотели получить обратно после успешной операции. Для этого воспользуйтесь методом MRGSBilling.buyItem(final String id, final String type, final String developerPayload) либо MRGSBilling.buyItem(final MRGSPurchaseItem purchase) предварительно задав нужное значение в поле purchase.developerPayload
  • Важное изменение для MyCom Support. Теперь в форме ввода обращения пользователя, поле ввода должно подниматься над клавиатурой

v3.8.48🔗

  • Исправлены замечания, после проверки тестировщиками

v3.8.47🔗

  • Изменения в скриптах сборки

v3.8.46🔗

  • Исправлены ошибки

v3.8.45🔗

  • Исправлены ошибки

v3.8.42🔗

  • Обновилась библиотека myTarget до версии 4.6.13

v3.8.40🔗

  • Исправлена ошибка в MRGSGoogleBilling. Для подписок при восстановлении используется текущий userid

v3.8.39🔗

  • Исправлена ошибка в MRGSRestClient, из-за которой происходило падение при отсутствии ответа от DNS

v3.8.38🔗

  • Исправлена ошибка некорректной передачи userId при платежах через Google Billing

v3.8.37🔗

  • Исправлена ошибка нескольких вызовов функции MRGSBilling.getProductsInfoWithTypes

v3.8.36🔗

  • Добавлена поддержка подписок API очень прост. В первую очередь необходимо заменить вызов метода MRGSBilling.getProductsInfo(final ArrayList<String> idList) на MRGSBilling.getProductsInfoWithTypes(final ArrayList<Pair<String, String>> idList) где каждая пара в массиве - это две строки, первая - название sku, вторая - тип (cons, noncons, subs). Пример использования:
ArrayList<Pair<String,String>>skuList = new ArrayList<>();
skuList.add(Pair.create("ru.mail.games.mrgservisetest.purchase1", "cons"));
skuList.add(Pair.create("ru.mail.games.mrgservisetest.purchase2", "cons"));
skuList.add(Pair.create("ru.mail.mrgs.subs1", "subs"));
skuList.add(Pair.create("android.test.purchased", "cons"));
skuList.add(Pair.create("ru.mail.games.mrgservisetest.fail", "cons"));

MRGSBilling.instance().getProductsInfoWithTypes(skuList);

В остальном покупка подписки осуществляется таким же способом, как и обычной покупки. При вызове метода MRGSBilling.restoreTransaction, если подписка активна, будет вызван метод purchaseComplete у MRGSBillingDelegate, в случае, если подписка не активна, данный метод вызван не будет.


v3.8.35🔗

  • myTarget 4.6.3
  • AppsFlyer 4.6.5
  • Flurry 6.8.0
  • myTracker 1.3.9

Добавилась поддержка Firebase Cloud Messaging. Даже если вы не хотите переходить на FCM, пропишите у себя в build.gradle зависимости:

    compile 'com.google.android.gms:play-services:10.0.1'
    compile 'com.google.firebase:firebase-core:10.0.0'
    compile 'com.google.firebase:firebase-messaging:10.0.0'

Если вы хотите перейти на Firebase Cloud Messaging, выполните следующие условия:

  • Добавьте ваше приложение в Firebase developer console и скачайте google-service.json
  • В файле google-service.json в секции "api_key" = [], замените на "api_key" = [{"current_key" : "<Ваш Server API key"}]. Server API Key можно получить в Firebase developer console
  • Этот же Server API Key прописать в настройках вашего приложения на сайте mrgs.astrum.team в поле "Ключ для отправки PUSH нотификаций". Поставьте галочку рядом с полем "Отправлять Push нотификации используя Firebase Cloud Messaging"
  • В корневом build.gradle вашего проекта, в секции buildscript {dependencies{}} пропишите зависимость
buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
  • Файл google-service.json необходимо поместить в поддиректорию app внутри вашего проекта (там же, где лежит build.gradle)
  • Отредактируйте файл AndroidManifest.xml

Уберите секции

        <receiver
                android:name="com.google.android.gms.gcm.GcmReceiver"
                android:exported="true"
                android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>

                <category android:name="ru.mail.mrgservicetest"/>
            </intent-filter>
        </receiver>

        <service
                android:name="ru.mail.mrgservice.MRGSGCMIntentService"
                android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
            </intent-filter>
        </service>

        <service
                android:name="ru.mail.mrgservice.MRGSInstanceIDListenerService"
                android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.gms.iid.InstanceID"/>
            </intent-filter>
        </service>

И добавьте

        <service
            android:name="ru.mail.mrgservice.MRGSFirebaseInstanceIdService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>

        <service
            android:name="ru.mail.mrgservice.MRGSFCMIntentService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
  • В коде, перед вызовом MRGService.service(), добавьте вызов функции FirebaseApp.initializeApp(context);

v3.8.34🔗

  • Исправлено падение при вызове MRGSAdvertising.create(context, null, null, null);

v3.8.33🔗

  • Добавилась поддержка Interstitial API из myTarget

Для использования нового API важно добавить в MRGService.xml в раздел Adman пункт interstitialSlotId

Работа с новым API идентична работе с обычной витриной. Сначала необходимо вызвать метод MRGSAdvertising.getLastInstance().loadInterstitial(this) После того как придет колбек onLoadComplete с типом AdvertisingType.INTERSTITIAL можно показать витрину с помощью вызова MRGSAdvertising.getLastInstance().openInterstitial()


v3.8.32🔗

  • Обновлена библиотека myTarget до версии 4.6.1
  • Обновлена библиотека myTracker до версии 1.3.8
  • Зависимость от Google Play Services 9.6

v3.8.31🔗

  • В локальных пуш уведомлениях добавилась функция для задания заголовка MRGSPushNotification.setTitle

v3.8.30🔗

  • Обновили IInAppBillingService.aidl

v3.8.29🔗

  • Обновили версии библиотек
  • myTarget 4.5.12
  • myTracker 1.3.8
  • Chartboost 6.5.1
  • Flurry 6.6.0
  • Google Conversions 2.2.4

v3.8.28🔗

  • В глобальные пуши можно добавлять заголовок, маленькую и большие иконки, если заголовка нет, вставляется название приложения Иконки задаются в разделе Params в админке MRGS, в виде
{
 "icon":"ic_stat_maps_local_bar",
 "largeIcon":"ic_full"
}

где icon и largeIcon это имена ресурсов Android приложения


v3.8.27🔗

  • Обновлен AppsFlyer до версии 4.6.0

v3.8.26🔗

Обновление актуально для Androi 6.0 и выше. Исправлена ошибка с генерацией DeviceID до получения пермишенов на телефонии (и гугл аккаунт) и после получения пермишенов


v3.8.25🔗

  • При отправке INSTALL_REFERRER в mrgs, отправляется не только разобранный referrer, но и изначальный без изменений

v3.8.24🔗

  • Исправлена ошибка приводившая к исключению java.lang.ClassNotFoundException:ru.mail.android.mytracker.campaign.CampaignReceiver

v3.8.23🔗

  • Обновился класс MRGSAdvertising. Добавился метод handleBannerClick(NativeAppwallBanner banner), который необходимо вызывать при нажатии на баннер рекламы myTarget, если разработчик создает кастомный интерфейс витрины

v3.8.22🔗

  • Обновился интерфейс MRGSAdvertising.LoadDelegate. Теперь метод onLoadComplete в последнем параметре получает List<NativeAppwallBanner>

v3.8.21🔗

  • MyCom Support. Если пользователь, при попытке прикрепить файл, отказал в разрешении доступа к внешнему носителю и отметил опцию никогда не спрашивать, а потом еще раз пытается прикрепить файл, можно отобразить диалог а не Activity с сообщение о том, что надо перейти в окно настроек.
  • Логирование в MyTracker о совершенной покупке

v3.8.20🔗

  • Во все сообщения на сервер добавился идентификатор сессии

v3.8.19🔗

  • Поменялись зависимости от myTarget и myTracker
    compile 'com.my.tracker:mytracker-sdk:1.3.2'
    compile 'com.my.target:mytarget-sdk:4.5.6'
  • Добавилась функция MRGSMyComSupportDialog.setRequestRationalDialogParams тут можно задать заголовок, текст диалога и тему для объяснения необходимости пермишна (как альтернатива activity). Кнопки по умолчанию OK и Cancel (локализуются системой). ОК - запросит пермишн, Cancel - закроет диалог

v3.8.18🔗

  • Добавлена обработка разрешения при работе с окном суппорта
  • Поправлена смена id устройства при смене пользователя

v3.8.17🔗

  • Поправлено падение при отказе от покупке

v3.8.16🔗

  • Добавлены функции генерации UDID для targetSdkVersion меньше 23, для совместимости

v3.8.15🔗

  • Поправлены платежи на Хуавей устройствах с OS старше 5.0
  • Обновились версии myTracker и myTarget
  • Добавился aar файл в архив

ОБРАТИТЕ ВНИМАНИЕ

Изменился package name у myTracker. Обновите AndroidManifest.xml Необходимо заменить <service android:name="ru.mail.android.mytracker.campaign.CampaignService"/> на <service android:name="com.my.tracker.campaign.CampaignService"/>


v3.8.14🔗

  • Теперь поддерживается API Level 23
  • Поменялся вызов getOpenUDID, он стал асинхронным (смотри Migration_ru.md)

v3.7.13🔗

  • Обновлены SDK myTracker и myTarget. Добавлена функция MRGSAir_watchDog для Air SDK.

v3.7.12🔗

  • Покупки по промо коду помечаются как promo, а не sandbox

v3.7.11🔗

  • Исправлены ошибки связанные с AmazonBilling
  • В конструктор MRGSMyComSupportDialog добавлен параметр hwAcceleration (включить/выключить аппаратное ускорение у WebView). По умолчанию включено (как было раньше), но можно отключать для специфических устройств (например Amazon Kindle Fire HD)

v3.7.10🔗

  • Обновлены библиотеки myTarget до версии 4.3.6 и myTracker до версии 1.2.2

v3.7.9🔗

  • Исправлена ошибка с записью в лог биллинга

v3.7.8🔗

  • Добавлена возможность задавать текст и категорию при открытии окна My.com Support

v3.7.7🔗

  • Исправлена привязка к жизненному циклу активности

v3.7.6🔗

  • Исправлена ошибка с сохранением буфера отправки

v3.7.5🔗

  • Исправлена незначительная ошибка в Google Billing, которая приводила к выводу ошибки в лог. На платежи это никак не сказывается!

v3.7.4🔗

  • Исправлена опечатка в названии параметра, отвечающего за локальные уведомления. В MRGService.xml никаких изменений вносить не требуется.

Если вы передавали параметры MRGS через код, то необходимо заменить параметр "localPushNotification" на "localPushNotifications" (добавилась 's' в конце)


v3.7.3🔗

  • Обновлены сервисы Google Play Services до версии 8115000

v3.7.2🔗

  • Обновлен Aps Flyer до версии 2.3.1.18
  • Обновлен Charboost 5.5.3
  • Обновлен Flurry до версии 6.0.0
  • Обновлен Google Conversion до 2.2.3
  • Обновлен myTarget до 4.0.16
  • Обновлен myTracker до 1.1.4
  • Изменился MRGSAdvertising.LoadDelegate - добавился метод public void onVideoComplete(MRGSAdvertising.AdvertisingType type), вызывается на окончание просмотра видео т.е. когда можно давать награду за просмотр рекламы
  • Добавлена обработка невалидных данных платежей от samsung

Для Charboost требуется пермишн WRITE_EXTERNAL_STORAGE, если его не установить charboost будет выключен


v3.7.1🔗

  • Обновлен Aps Flyer до версии 2.3.1.17

v3.7.0🔗

  • Обновлены сервисы Google Play Services до версии 7571000
  • Обновлена библиотека android-support-v4
  • Внедрение последней версии Google Cloud Messaging

На Android 2.2 теперь не будут работать PUSH-уведомления

В AndroidManifest.xml требуется внести коррективы для нового GCM. За подробностями обращайтесь к файлу Migration_ru.md, который идет в архиве MRGS


v3.6.5🔗

  • Исправлено падение приложения при первом запуске

v3.6.4🔗

  • myTarget v 4.0.4
  • В MRGSAdvertising#release добавлено принудительное освобождение ресурсов fullscreen баннера

v3.6.3🔗

  • Добавлена проверка взломано устройство или нет;
  • В окно поддержки My.com добавлена возможность выставить слушателя для получения событий.

По последнему пункту подробнее читайте в инструкции по использованию MRGS


v3.6.2🔗

  • Исправлено дубликатное проведение платежа через промо-код;

ОБРАТИТЕ ВНИМАНИЕ, на параметр answer в методе purchaseComplete в слушателе покупок MRGSBillingDelegate. В этом параметре приходит ответ от сервера MRGS, позволяющий понять, что именно произошло с покупкой и почему она успешна. Если сервер ответил "OK" (латиницей), то это значит, что платеж валиден и можно отправлять его в сторонние системы, в которые MRGS не отслеживает автоматически. Например, в Facebook. Также возможны и другие варианты, например "OK. Платеж уже существует и уже закрыт!".


v3.6.0🔗

  • Adman заменен на myTarget 4.0.1;

ОБРАТИТЕ ВНИМАНИЕ, что библиотеки Adman больше не существует. Поэтому в проекте вам необходимо заменить adman.jar на myTarget.jar. Также в коде вам следует отказаться от вызовов MRGSAdvertising.releaseShowcase() и MRGSAdvertising.releaseFullscreen(). Вместо них следует вызывать единый метод MRGSAdvertising.release(). Следует понимать, что экземпляр MRGSAdvertising привязан к активности и, соответственно, к ее жизненному циклу. Поэтому вызывать release() необходимо в парном к createInstance() методе (с точки зрения жизненного цикла активности). Например, если вы создаете экземпляр в onCreate, то освободить ресурсы следует в onDestroy.


v3.5.3🔗

  • Обновлен myTracker до версии 1.0.19;
  • Исправление падения при проведение платежа через промо-код;
  • Исправлено падение, если в игре более 15 внутриигровых покупок.

v3.5.2🔗

  • Исправления в рендеринге саппорта My.com

Если вы используете My.Com Support, то РЕКОМЕНДУЕТСЯ в тег application в AndroidManifest.xml добавить атрибут

android:hardwareAccelerated="true"

v3.5.1🔗

  • Убрана возможность отправлять файлы на сервер MRGS;
  • Исправлено падение в биллинге Samsung для Android 5.0 и выше.

v3.5🔗

  • Исправлены платежи в Amazon;
  • Поправлено заполнение поля transactionId в Amazon-платежах.

v3.4.13🔗

  • Обновлен myTracker до версии 1.0.14;

v3.4.12🔗

  • Более детальные метрики на запуск приложения

v3.4.11🔗

  • Исправлена проблема с "дерганным" рендерингом окна My.com Support;
  • Добавлен индикатор загрузки на окно My.Com Support;

v3.4.10🔗

  • Обновлен myTracker до версии 1.0.12;
  • Отправка на сервер цены и кода валюты при покупке;
  • Обновлен Amazon in-app до версии 2.0.61;

v3.4.9🔗

  • Добавлена возможность создавать произвольное количество витрин Adman’а;

v3.4.8🔗

  • Отправка IMEI в каждом запросе;
  • Исправление падения в Google Billing при неожиданном отключении сервиса;

v3.4.7🔗

  • Поправлено падение если в системе был испорчен ArrayBlockingQueue

v3.4.6🔗

  • Обновлен myTracker до версии 1.0.11

v3.4.5🔗

  • Трекинг клика по серверному пуш уведомлению;
  • Исправлено получение Advertising ID для версий Android менее 4.0.

v3.4.4🔗

  • Добавлен кэш для OpenUDID’ов.

v3.4.3🔗

  • Сокращено время инициализации сервиса.

v3.4.2🔗

  • Исправлено кэширование офферов в витрине Adman

v3.4.1🔗

  • Исправлено подвисание при отсутствии интернета при включенном сборе геоданных.

v3.4.0🔗

  • Исправление загрузки витрин на старых версиях Android;
  • Удалена старая реализация MRGSAdman и все связанные с ней методы в MRGService (начинались с префикса “adman”). Вместо этих метод следует использовать класс MRGSAdvertising, который реализует аналогичный функционал;
  • В Adman callback onNoAdd() добавлен тип рекламы, чтобы можно было понять для чего именно нет данных: для витрины или баннеров;
  • Обновлен Adman до версии 2.1.37;

v3.3.10🔗

  • Исправление Google-биллинга для Android 5.0

v3.3.9🔗

  • Добавлен обратный вызов для Adman при отсутствии рекламы.

v3.3.8🔗

  • Исправление ситуации, когда приложение зависало при возникновении необработанного исключения;
  • Исправлено падение в Adman при неустановленном слоте для полноэкранных баннеров.

v3.3.7🔗

  • Добавлена возможность программно задать источник установки для предустановленных приложений

Задать источник установки можно двумя способами:

  1. Через файл MRGService.xml: в тег Options добавить тег utmSource, в который положить источник. Например:
    <utmSource>test-utm-source</utmSource>
  2. Программно. Передать в MRGSerivce.service() параметр options в виде Bundle, в которой положить ключ "utmSource".

v3.3.5🔗

  • Обновление Google Play Services до версии 6171000
  • Обновлен Google Analytics до версии 4
  • Исправлено падение при логине в Samsung
  • Добавлен механизм пересылки источника предустановки в сторонние системы

ОБРАТИТЕ ВНИМАНИЕ

  1. В AndroidManifest.xml заменить
    <service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
    на
    <service android:name="com.google.android.gms.analytics.CampaignTrackingService"/>
  2. Удалить libGoogleAnalyticsServices.jar из проекта;
  3. Добавить google-play-services.jar (и желательно ресурсы к проекту)

v3.3.4🔗

  • Обновлен Flurry до версии 4.2.0

v3.3.3🔗

  • Добавлены методы для закрытия адмана и освобождения занимаемых ресурсов

Методы closeShowcase() и closeFullscreen() закрывают витрину и баннер соответственно. Их рекомендуется вызвать в методе onStop() у Activity.

Методы releaseShowcase() и releaseFullscreen() освобождают занимаемые витриной и баннером ресурсы соответственно. Освобождать ресурсы баннера рекомендуется сразу после его закрытия, так как картинка может занимать в памяти много места. Последующие вызовы loadShowcase() и loadFullscreen() загрузят необходимые ресурсы заново, поэтому пересоздавать экземпляр MRGSAdvertising не нужно.


v3.3.2🔗

  • Обновлен Адман до версии 2.1.35
  • Полноэкранные баннеры Adman

Класс MRGSAdman помечен как устаревший и вскоре будет удален. Тоже самое произойдет и с методами с префиксом adman в MRGService. Вместо них следует пользоваться классом MRGSAdvertising. Создавать объект нужно только в той активности, где планируется использовать витрину или баннеры. Также программист сам решает, когда начинать загрузку данных.

Пример использования:

final MRGSAdvertising adman = MRGSAdvertising.createInstance(this);
adman.setShowcaseTitle("Больше Игр!");
adman.loadShowcase(new MRGSAdvertising.LoadDelegate() {
    @Override
    public void onLoadComplete(final MRGSAdvertising.AdvertisingType type, final boolean notification) {
        adman.openShowcase();
    }

    @Override
    public void onViewComplete(final MRGSAdvertising.AdvertisingType type) {
    }
});

Для баннеров следует использовать методы loadFullscreen() и openFullscreen().

Также в MRGService.xml в раздел Adman нужно добавить атрибут fullscreenSlotId, куда прописать слот для полноэкранных баннеров.

Для удобства есть метод MRGSAdvertising.getLastInstance(), который возвращает последний созданный объект. Это может помочь избежать создания нового поля в Activity для хранения экземпляра MRGSAdvertising.


v3.3.1🔗

  • Исправлено падение при неустановленной иконке для пуш уведомлений

v3.3.0🔗

  • Изменения в передаче контекста в MRGS
  • Исправления в callback’е для клика по пуш уведомлениям
  • Исправление ошибки с иконкой для серверного пуша
  • Обновлен Adman до версии 2.1.33
  • Обновлен myTracker до версии 1.0.9
  • В архив добавлен валидатор AndroidManifest.

В AndroidManifest.xml требуется внести некоторые изменения:

  1. Удалить сервис
    <service android:name="ru.mail.mrgservice.MRGSLocalPushService"/>
  2. Переименовать пакет у сервиса
    <service android:name="com.my.android.mytracker.campaign.CampaignService"/>
    на
    <service android:name="ru.mail.android.mytracker.campaign.CampaignService"/>
    Если вы планируете использовать группировку пуш уведомлений, то также следует добавить в манифест следующий ресивер <receiver android:name="ru.mail.mrgservice.MRGSNotificationDeleteReceiver"/>
    Чтобы проверить корректность AndroidManifest.xml воспользуйтесь утилитой mrgsmanifest. При запуске без параметров она подскажет как правильно ее запустить.

Внимание

В MRGS поменялся механизм хранения контекста приложения. Теперь необходимо этот контекст передать как можно раньше, до любого обращения к MRGS. Сделать это можно в методе onCreate у приложения с помощью вызова
MRGService.setAppContext(getApplicationContext());
Или же можно наследовать ваше приложение от MRGSBaseApplication.
Еще потребуется удалить вызов метода MRGSLocalPushService.runService(...).

DEPRECATED

Просим обратить внимание на то, что некоторые методы были помечены как deprecated. Например методы работы с локальными пуш уведомлениями. Это значит, что в ближайших релизах эти методы будут удалены из MRGS.


v3.2.17🔗

  • Добавлена возможность полного выключения пуш уведомлений

v3.2.16🔗

  • Исправлено падение при регистрации пуш уведомлений
  • Обновлен Adman до версии 2.1.32
  • Исправлена ошибка с установкой заголовка витрины в Adman
  • Добавлена возможность инициализировать Adman только в требуемых активностях
  • Исправления ошибок в менеджере геопозиции

Внимание

В идеале Adman нужно инициализировать только на тех активностях, где планируется показывать витрину. Если на какой-либо активности показ витрины не требуется, то в ее методе onStart() следует вызывать следующий код:
MRGService.instance().onStart(this, false);
вместо
MRGService.instance().onStart(this);


v3.2.15🔗

  • Добавлена группировка пуш уведомлений
  • Исправлено падение при добавлении записей в PayLog
  • Обновлен myTracker до версии 1.0.7
  • Обновлен Adman до версии 2.1.30

v3.2.14🔗

  • Поправлено падение найденное при помощи ICQ (checkPermission)
  • Нотификации сделаны с поддержкой большого текста

v3.2.13🔗

  • Поправлена загрузка файлов в MyComSupport
  • Поправлено падение найденное при помощи ICQ (getCountry)

v3.2.12🔗

  • Добавлена поддержка большой иконки в пуш уведомлении, обычная используется для отображения в системном статус баре и должна по требованию Гугла быть 24х24 (и не цветной), большая иконка видна когда область уведомления разворачивают. Если не добавлять новые параметры, все будет вести себя как прежде.
  • Добавлен необязательные параметр настройки pushLargeIcon в MRGService.xml
  • Добавлен необязательный параметр JSON largeIcon для внешних нотификаций

v3.2.11🔗

  • Поправлена загрузка файлов в MyComSupport
  • Добавлена поддержка 4.4

v3.2.10🔗

  • Нормально обрабатывается кнопка Back в MyComSupport
  • Внешние ссылки в MyComSupport открываются в браузере

v3.2.8🔗

  • Исправлено падение при отложенной инициализации пуш уведомлений

v3.2.7🔗

  • Исправлено падение при проверке обновлений по тикетам в My.com Support

v3.2.6🔗

  • Добавлена программная проверка наличия обязательных библиотек
  • Добавлена возможность прикреплять файлы к тикету в My.com Support

ВНИМАНИЕ

Для корректной работы My.com Support надо прописать следующую активность в AndroidManifest: <activity android:name="ru.mail.mrgservice.MRGSMyComSupportUtilActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"/> А также добавить новый permission: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


v3.2.5🔗

  • Исправление ошибок, связанных с окном My.com Support

v3.2.4🔗

  • Исправление ошибок, связанных с окном My.com Support
  • Обновлен Chartboost до версии 5.0.2
  • Обновлен myTracker до версии 1.0.5

v3.2.0🔗

  • Работа со сторонними SDK переделана на рефлекшн
  • Сокращено время инициализации MRGS
  • Исправлена ошибка с отправкой действия applicationExit на сервер MRGS
  • Отправка действия online на сервер MRGS

v3.1.8🔗

  • Исправления в нотификациях по тикетам в My.com Support
  • Исправления в окне My.com Support на старых версиях Android
  • Добавлена обработка PACKAGE_REMOVED для AppsFlyer

v3.1.7🔗

  • Новое окно My.com Support
  • Отслеживание платежей в Google Conversion
  • Обновлен Chartboost до версии 5.0

v3.1.5🔗

  • Уменьшение времени работы в главном потоке и увеличение общей производительности
  • Добавлена возможность прокинуть инсталл рефер в сторонние ресиверы

Чтобы прокинуть рефер в сторонние ресиверы необходимо в AndroidManifest в тег <application> добавить строки, аналогичные следующим:

<meta-data android:name="ru.mail.mrgservice.install_refer_forward.1" android:value="com.example.InstallReferrerReceiver" />
<meta-data android:name="ru.mail.mrgservice.install_refer_forward.2" android:value="com.example.InstallReferrerReceiver" />
<meta-data android:name="ru.mail.mrgservice.install_refer_forward.3" android:value="com.example.InstallReferrerReceiver" />

v3.1.4🔗

  • Отслеживание первого запуска в Google Conversion
  • Отслеживание эффективной регистрации в Google Conversion
  • Увеличение производительности при сборе данных о памяти устройства
  • Увеличение производительности при работе с SharedPreferences
  • Исправление падения при выключенном биллинге (Air)

v3.1.3🔗

  • Исправлено падение при сборе информации о девайсе во время работы MRGSGCMIntentService с отсутствующим контекстом
  • Обновлен Chartboost до версии 4.1.2
  • Исправления в регистрации пуш уведомлений на клиенте
  • Исправлена логика для приложений, в которых несколько активностей
  • Обновлен myTracker до версии 1.0.3

v3.1.2🔗

  • Добавлена возможность программной установки параметров сторонних SDK

v3.1.1🔗

  • Обновлен myTracker до версии 1.0.2

v3.1.0🔗

  • Возможность отметить приложение как “обновленное"
  • Обновлен Google Conversion Tracking с версии 1.1.1 до 2.2.0
  • Автоматический сбор статистики через Google Conversion Tracker
  • Интегрирован MyTracker версии 1.0.1
  • Обновлен Adman до версии 2.1.23

!!! ВНИМАНИЕ !!!

В AndroidManifest необходимо внести следующие изменения: Удалить:

<service android:name="com.my.android.adman.services.AdmanService" android:enabled="true"/>

Добавить:

<service android:name="com.my.android.mytracker.campaign.CampaignService" />

Также в MRGService.xml переименовать AdmanTracker в MyTracker


v3.0.30🔗

  • Корректная отправка Advertising ID на сервер на старте приложения

v3.0.29🔗

  • Исправлено падение при отключенном биллинге
  • Отправка UDID на старте приложения

v3.0.28🔗

  • Исправлено падение при включенном биллинге samsung на устройстве без этого биллинга

v3.0.27🔗

  • Исправлена обработка ошибки покупки товара (теперь в callback MRGSBillingDelegate.purchaseFail может прийти null в параметре item)

v3.0.26🔗

  • Обновлен AppsFlyer до версии 2.3.1.8
  • Обновлен FlurryAnalytics до версии 4.1.0
  • Обновлен Chartboost до версии 4.1.1

v3.0.25🔗

  • Экстренное обновление Adman

v3.0.24🔗

  • Теперь MRGS не получает номер телефона пользователя (по просьбе Google)

v3.0.23🔗

  • Обновлен Adman до версии 2.1.14

v3.0.20🔗

  • Исправление падения при сохранении isntall refferer
  • Метод для добавления информации о Samsung-товаре

v3.0.18🔗

  • Обновление Адман до 2.1.10
  • Удален устаревший класс MRGSMoreGames

v3.0.17🔗

  • Методы для сериализации MRGSPurchaseItem в строку и обратно

v3.0.16🔗

  • Исправлены названия полей товаров в магазине (для AIR)

v3.0.15🔗

  • Добавлен callback для ошибок магазина Samsung (для AIR);
  • Исправлена ошибка в callback'ах для платежей.

v3.0.14🔗

  • Обновлен Adman до версии 2.1.6

v3.0.13🔗

  • Обновлен Adman до версии 2.1.5

v3.0.12🔗

  • Трекинг платежей только в случае успешной валидации на сервере MRGS

v3.0.11🔗

  • Исправлено падение при обработке ответов от сервера

v3.0.10🔗

  • Добавлена валидация e-mail адреса в окне отправки отзыва. Чтобы изменить текст сообщения об ошибке можно выполнить следующий код:
MRGSSendFeedbackActivity fb = MRGSSendFeedbackActivity.create();
fb.setFeedBackEmailNotValid(ERROR_TEXT);
fb.open();

v3.0.9🔗

  • Исправлена ошибка с окном MRGSRate (При отображении двух кнопок, кнопка Cancel не правильно себя вела)

v3.0.8🔗

  • Исправлена ошибка с падением при старте при выключенном интернете

v3.0.7🔗

  • Исправлена ошибка с восстановлением платежей

v3.0.6🔗

  • Обновилась версия Adman до 2.0.14

v3.0.5🔗

  • Исправлены ошибки с обработкой серверных пуш уведомлений
  • Появилась возможность устанавливать иконку для пуш нотификаций
  • Обновилась версия Flurry до 3.4.0
  • Был встроен Google Conversion

v3.0.4🔗

  • Новый класс MRGSSocial Предназначен для отправки в MRGS социальных данных о пользователе

v3.0.3🔗

  • Обновление внешних библиотек: AdMan (2.0.10)

v3.0.2🔗

  • Обновился Adman до версии 2.0.8
  • Исправлено падение при вызове методов Adman'a


Последнее обновление: 2025-04-14
Дата создания: 2020-03-02