Skip to content

What's New in Android Library Version🔗

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

In this version:

MRGService module:

  • Improved SDK performance in Vietnam.
  • Added logs for MRGSTracker#trackEvent(String name, Map params) parameters.

Advertising module:

  • Improved ad loading for URLs that do not contain a file extension

Appsflyer module:

  • Fixed an issue where an incorrect payment amount could be sent to AppsFlyer for Huawei payments.

Authentication module:

  • Fixed an issue where java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern for MyGames authorization.

Billing-catappult module:

  • Added support for Catappult.

Bank module:

  • Fixed possible loss of deviceId in http requests for payment validation.

Notifications module:

  • Fixed crash when clicking on notification if developerPayload contains extra quotes

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added new MRGSProductInfo class to send new format product information
  • Updated androidx.core:core:1.9.0 to androidx.core:core-ktx:1.13.1
  • Updated com.google.android.gms:play-services-ads-identifier from 18.0.1 to 18.1.0.
  • Updated com.google.android.gms:play-services-appset from 16.0.2 to 16.1.0.
  • Updated androidx.appcompat:appcompat from 1.6.1 to 1.7.0
  • Updated kotlin from 1.8.22 to 1.9.23
  • Improved thread queue, fixed Thread pool blocking queue is full error

Authentication module:

  • Added the ability to open another browser with CustomTabs if the default browser does not support CustomTabs. If the device does not have a browser with CustomTabs, then the regular browser will be opened.
  • Removed dependency androidx.localbroadcastmanager:localbroadcastmanager.
  • Updated com.google.android.gms:play-services-games-v2 from 20.1.0 to 20.1.2

Advertising module:

  • Removed dependency androidx.localbroadcastmanager:localbroadcastmanager.
  • Updated androidx.recyclerview:recyclerview from 1.2.1 to 1.3.2.
  • Updated androidx.vectordrawable:vectordrawable from 1.1.0 to 1.2.0
  • Fixed getting video file name from creative_video_file value in MRGSAdvertisingCampaign.

Bank module:

  • Updated com.android.billingclient:billing from 6.0.1 to 7.1.1.
  • Updated com.facebook.android:facebook-gamingservices from 16.0.1 to 17.0.2

GDPR module:

  • Updated com.bigossp:bigo-ads from 4.7.0 to 5.0.2.
  • Updated com.moloco.sdk.adapters:moloco:2.1.1.0 to com.moloco.sdk:moloco-sdk:3.2.0
  • Updated com.tappx.sdk.android:tappx-sdk from 4.0.6 to 4.1.6
  • Updated com.unity3d.ads:unity-ads from 4.4.1 to 4.12.3
  • Updated com.tapjoy:tapjoy-android-sdk from 12.11.0 to 14.1.0
  • Updated com.my.target:mytarget-sdk from 5.16.2 to 5.22.1
  • Updated com.vungle:publisher-sdk-android:6.12.0 to com.vungle:vungle-ads:7.4.1
  • Updated com.fyber:fairbid-sdk from 3.33.1 to 3.55.0
  • Updated com.facebook.android:facebook-core from 15.1.0 to 17.0.2
  • Updated com.chartboost:chartboost-sdk from 9.1.1 to 9.7.0
  • Updated com.applovin:applovin-sdk from 11.6.0 to 13.0.0
  • Fixed Activity leak in CCPA.

Notifications module:

  • Updated com.google.firebase:firebase-messaging from 24.0.0 to 24.0.3.
  • Added intent filters for broadcast receivers.

Recommendations module:

  • Added new event type for Recsys - geo pricing.

Showcase module:

  • Removed dependency androidx.localbroadcastmanager:localbroadcastmanager.
  • Updated androidx.browser:browser from 1.5.0 to 1.8.0.
  • Updated androidx.recyclerview:recyclerview from 1.2.1 to 1.3.2.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed a bug where MRGSMetrics events were lost if the events were added before MRGService initialization and it was the very first launch of the application (however, on subsequent launches of the application the events were not lost)
  • Fixed reset of the total time spent in the game (allSession) counter when changing the day during the game

Advertising module:

  • Fixed some ANR errors

Didomi module:

  • Fixed ANR errors

GDPR module:

  • Updated CCPA Mintegral dependencies

Notifications module:

  • Added null data check in PostPermissionActivity.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • The MRGSDevice#getSendDictionary(Callback<Object) method is marked as Deprecated and will be removed in the near future.
  • Added collection of GAID, ASID, OA ID, ODID and Amazon advertising id and sending them to the server as separate parameters.
  • Added handling of all errors in the MRGSReflection.isClassExists() method.

Bank module:

  • Changed maximum size of developerPayload in OnestoreBilling - reduced to 200 characters.
  • Fixed developerPayload disappearance when resuming the application after onPause.
  • Fixed a bug where transactionId from Samsung Galaxy Store could not be sent to Appsflyer.
  • Fixed a thread race condition that could result in developerPayload being lost when validating a payment.

Didomi module:

  • Updated io.didomi.sdk:android from 2.10.1 to 2.13.0

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 22.1.0 to 22.1.2

Notifications module:

  • Added try/catch blocks in notification creation methods and added sending logs to the server.

Support module:

  • Added network availability check when displaying the support window.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed a bug since version 6.17.0, due to which it was impossible to install other applications that use MRGS SDK due to the error INSTALL_FAILED_DUPLICATE_PERMISSION: Package to redeclare permission games.my.mrgs.permission.OPEN_UDID already owned

Read more about the new features and how to use them in the documentation.


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

In this version:

Analytics module:

  • Added a new waitForTCF field to mrgs_dma_start event.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added the ability to share OpenUDID between applications.
  • Added a new way to generate a stable OpenUDID
  • Added a new key MRGSTrackerMediationNetwork.ToponPte for custom logs.
  • Fixed a duplicate value error when using MRGService#setHost, which led to broken network requests.

Analytics module:

  • Removed the com.appsflyer:adrevenue dependency.
  • Updated com.appsflyer:af-android-sdk from 6.14.2 to 6.15.0.

Bank module:

  • Fixed subscription recovery in Amazon - now cancelled and inactive subscriptions will not be sent to the delegate

Didomi module:

  • Updated io.didomi.sdk:android from 2.7.0 to 2.10.1

Firebase Module:

  • Updated com.google.firebase:firebase-analytics from 22.0.1 to 22.1.0

Read more about the new features and how to use them in the documentation.


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

In this version:

Module MRGService:

  • Added internal support for switching hosts in case some countries block access to MRGS resources.
  • Disabled SSL connection security checks for all network requests to the MRGS server for Android 7.0 and below.

Authentication module:

  • Changed minimum required version of Android from 4.4 (19 api) to 5.0 (21 api) for the MRGSGoogleSignIn module
  • Updated com.google.android.gms:play-services-games from 23.1.0 to 23.2.0.
  • Updated com.google.android.gms:play-services-auth from 20.6.0 to 21.2.0.
  • Changed minimum required version of Android from 4.4 (19 api) to 5.0 (21 api) for the MRGSGooglePlay module
  • Updated com.google.android.gms:play-services-games-v2 from 17.0.0 to 20.1.0

Module Appsflyer:

  • Updated com.appsflyer:af-android-sdk from 6.14.0 to 6.14.2.

Module Bank:

  • Fixed a bug where MRGSBillingDelegate#onReceiveFailedPurchase returned the result without an error for the new private implementation of Google payments.

Module Didomi:

  • Updated io.didomi.sdk:android from 2.5.1 to 2.7.0.

Read more about the new features and how to use them in the documentation.


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

In this version:

Authentication module:

  • Added asynchronous isLoggedIn method for more accurate state checking.

Read more about the new features and how to use them in the documentation.


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

In this version:

Module MRGService:

  • Fixed java.util.ConcurrentModificationException error in MRGSTracker.

Module Bank:

  • Added automatic closing of TopUp (WebView) upon successful purchase

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 22.0.0 to 22.0.1

GDPR module:

  • Added support for new libraries for CCPA - Moloco and BigoAds

Advertising module:

  • Some improvements for sending DSP links.

Read more about the new features and how to use them in the documentation.


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

In this version:

Module MRGService:

  • Fixed connection to the auto tracking billing service, added a countdown timer to limit the automatic number of connection attempts.
  • Fixed ANR bug. The getHwMemoryUse() call has been moved to a background thread inside the updateHwMemoryUse() method.

Authentication (Facebook) module:

  • Graph Api version used raised to 19

Analytics module:

  • Fixed a bug where events sent during the active waitForCustomerUserId mode were lost.
  • Fixed a bug where AppsFlyer would start sending analytics after the waitForCustomerUserId mode was removed, but the user agreement (DMA) had not yet been received. The problem only occurred when using the waitForCustomerUserId mode.

Module Bank:

  • Added new fields isSandbox (whether the payment was made in the test environment) and usd (payment amount in dollars)
  • Fixed error java.lang.NoClassDefFoundError: Failed resolution of: Lcom/amazon/device/drm/LicensingListener. This error will no longer cause the application to crash.

GDPR module:

  • Fixed showing the PIPA window on small screens

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed ANR when calling MRGSTracker#flush().

Read more about the new features and how to use them in the documentation.


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

In this version:

Analytics module:

  • Updated com.appsflyer:af-android-sdk from 6.13.0 to 6.14.0.

Didomi module:

  • Updated io.didomi.sdk:android from 2.4.0 to 2.5.1.

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 21.6.2 to 22.0.0.
  • Changed minimum required Android version from 4.4 (19 api) to 5.0 (21 api).

Notification module:

  • Updated com.google.firebase:firebase-messaging from 23.1.2 to 24.0.0.
  • Changed minimum required Android version from 4.4 (19 api) to 5.0 (21 api).

Read more about the new features and how to use them in the documentation.


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

In this version:

Module MRGService:

  • Added sending firebaseInstanceId to MRGS events
  • Added flag to disable auto-tracking of payments from a remote config.
  • Changed the way sessionId is generated from MD5 to UUID v4 to reduce collisions.

Module Bank:

  • Changed the behavior of the restoreTransaction method for Amazon. Now the behavior of the method will be similar to the behavior of Google payments, the method will no longer attempt to load missing products, but will access the local cache of products that is formed when calling requestProducts, and will return an error in onReceiveFailedPurchase if not managed to find the product in the local cache.
  • Fixed a bug where transactions were not restored if there was no cache on the device, indicating that the payment was made on this particular device. Now the payment will be restored no matter on which device the user makes the restoration.
  • Fixed a bug where in rare cases, after validating a payment, the transaction was closed for all non-validated payments for OneStore.

Module Didomi:

  • Updated io.didomi.sdk:android from 1.90.0 to 2.4.0.

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 21.6.1 to 21.6.2.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed a possible ANR because of writing logs for remote logging.
  • Fixed a NullPointerException and ANR in TransferManager.
  • Fixed some errors which would lead to crash of MRGService.
  • Fixed a crash while trying to connect to Google Billing for auto-tracking payments.

Bank module:

  • Fixed a ForegroundTaskPipeline: No UI visible to execute task error, when couldn't start a payment window in Amazon IAP SDK on Unity builds.

Didomi module:

  • Fixed behavior when MRGSDidomi called FirebaseAnalytics#setAnalyticsCollectionEnabled. Now this method will be called even if user does not fall under TCF, to avoid blocking Firebase collection data.

Firebase module:

  • Added a new FirebaseAnalytics#setAnalyticsCollectionEnabled(bool) method.

Read more about the new features and how to use them in the documentation.


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

In this version:

Advertising module:

  • Added support for additional tracking links (percentage of video views) for AdTech
  • Disabled network request caching for AdTech.

Module Bank:

  • Fixed error when building a project if the project used obfuscation with proguard-android-optimize.txt

Module Didomi:

  • MRGSDidomi will also call FirebaseAnalytics#setAnalyticsCollectionEnabled with true, after each call to FirebaseAnalytics#setConsent.

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 21.5.1 to 21.6.1.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Fixed JVM Verifier rejected class errors that led to problems on some versions of Android due to the fact that kotlin in the MRGS SDK was compiled with an old compiler .

Analytics module:

  • Fixed crash when MRGSAnalytics module was added to the project but did not pass MRGSAppsFlyerParams to initialize AppsFlyer.

Advertising module:

  • Updated obfuscation rules.

Module Bank:

  • Updated obfuscation rules.
  • Fixed MyGames payments (WebView).

Read more about the new features and how to use them in the documentation.


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

In this version:

Bank module:

  • Fixed an issue com.amazon.a.a.o.a.b: Executing thread must be thread: 2, was: N if Amazon IAP wasn't initialized with Android main-thread.

Didomi module:

  • Fixed an issue java.lang.ClassNotFoundException: games.my.mrgs.analytics.MRGSAnalytics.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Supported DMA for AppsFlyer and Firebase.
  • Minimum required kotlin version is 1.8.22.

MRGService module:

  • Fixed an issue when auto-tracking payments was not be disabled if MRSRGBank was used, so auto-tracking made extra validation requests.

Advertising module:

  • Improved hash checking for downloaded AdTech ads.

Analytics module:

  • Updated com.appsflyer:af-android-sdk from 6.12.1 to 6.13.0.

  • Fixed an issue when MRGSAnalytics didn't send purchases to AppsFlyer, if auto-tracking payments was used.

Bank module:

  • Added a new MRGServiceParams#setBillingVersionAtFirstRun(int) property to change version at the first application launching. For next launches the version will be used from remote config.

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 21.3.0 to 21.5.1.

Didomi module:

  • Added a new MRGSDidomi#reset() method.

  • Updated io.didomi.sdk:android from 1.89.0 to 1.90.0.

GDPR module:

  • Changed width of button in dialog for COPPA.

IronSource-Adapter module:

  • Added data sending of GDPR to AdTech.

Read more about the new features and how to use them in the documentation.


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

Native SDK versions: Android 6.11.2, iOS 6.11.1

In this version:

MRGService module:

  • Added collection versions of SDK's for some libraries.
  • Added a new MRGSUsers#setEmail(String) method to send user's email to MRGS.
  • Supported payments auto-tracking for Google Play. This feature is enabled by default, and will send historical data to MRGS at the first start.

Analytics module:

  • Supported sending payments info to AppsFlyer from MRGS server.

Bank module:

  • Updated Samsung IAP SDK from 5.0.1 to 6.1.0.
  • Updated Amazon IAP SDK from 2.0.76 to 3.0.4.

  • Fixed an issue when MRGSBank completed operations incorrectly with empty receipt, as a result callback could be called several times.

  • Fixed long validation if transaction cache contains the same user and transaction id.

Didomi module:

  • Added a new MRGSDidomi#shouldUserStatusBeCollected() method.
  • Supported Activity from Android SDK to work with Didomi SDK for projects which don't use Androidx libraries.

  • Update io.didomi.sdk:android from 1.87.0 to 1.89.0.

GDPR module:

  • Changed conditions for showing CCPA button, now it has the same behavior as oniOS.

Notifications module:

  • Supported different notification styles and improved supporting of custom notifications.

  • Fixed incorrect behavior for Android 13 and deferredPushStart flag was disabled.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed a bug when in rare cases applicationRun event wasn't sent, and installations were not tracked in 1Link.

  • Fixed an ANR when calling MRGSDevice#getHwMemoryUse() method.

  • Fixed a rare issue IndexOutOfBoundsException when calling MRGSDevice#getHwMemoryUse() method.

Advertising module:

  • Fixed an ANR during loading ads.

Showcase module:

  • Fixed an ANR during loading ads.

Read more about the new features and how to use them in the documentation.


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

In this version:

Advertising module:

  • Improved an algorithm for calculating an average price of an advertisement for AdTech.
  • Improved an approach to checking ads for AdTech.

Authentication module:

  • Fixed a problem with "web-authentication" on Google Play Games on PC platform.

Bank module:

  • Added a handler of RESULT_NEED_LOGIN error during OneStore IAP SDK initialization.

  • Fixed an issue when empty developerPayload was sent to MRGS for OneStore payments.

IronSource-Adapter module:

  • Improved ads downloading for AdTech.

Read more about the new features and how to use them in the documentation.


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

In this version:

Bank module:

  • Supported OneStore payments.

GDPR module:

  • Supported korean PIPA law.

Read more about the new features and how to use them in the documentation.


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

In this version:

Didomi module:

  • Updated io.didomi.sdk:android from 1.85.1 to 1.87.0.

  • Fixed an issue with sending statistics from MRGSDidomi

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added a new MRGService#setHost(String) method to server host in MRGService.

Advertising module:

  • Improved caching of video ads for AdTech.

Authentication module:

  • Fixed sending of socialLogin and socialUser events when GooglePlayGamesV2 was used.

Didomi module:

  • Added new MRGSDidomi module to support TCF.

Firebase module:

  • Changed behavior of sending mrgs_valid_inapp_N_dollars_plus event. Now they will be sent even for test purchases.

GameCenter module:

  • Deprecated MRGSGameCenter module and it will be removed in near feature.

IronSource-Adapter module:

  • Added extra statistics of accepted agreements and settings.

Showcase module:

  • Changed title font from gotham to open-sans.

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Fixed an issue when updated agreement was shown instead of changed publisher if user had accepted agreement version 1591736400.
  • Fixed an issued when callback wasn't called with MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams, BiConsumer<MRGSGDRPShowResult, MRGSError>) if COPPA was shown through MRGSGDPR and COPPA return an error.
  • Fixed an issue when methods of showing agreement could skip showing update agreement or change publisher until the next application restart.

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Changed behavior of MRGSGDPR#showDefaultAgreementAtActivity(Activity, String) method to show default file for changed publisher.

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Fixed an issue, when MRGSGDPR#shouldShowGDPR(Activity, String, boolean, MRGSGDPRAsyncStatus) method read isEUOnly flag from MRGSGDPR#onlyEU(boolean) instead of reading passed value. Now it will read passed value and ignore MRGSGDPR#onlyEU(boolean).
  • Fixed ClassCastException for MRGSGDPR#getAgreementTime(Context) and MRGSGDPR#getAcceptedAgreement(Context) methods.
  • Fixed behavior with incorrect choosing for file for change publisher and update agreements with advertising cases.

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Changed logic for MRGSGDPR#setPublisherUpdateFile(String) to handle null values.

  • Fixed an issue when new MRGSGDPR#ShowAgreement() method didn't read MRGSGDPRShowParam#isAutomaticCOPPAFlowEnabled value.

  • Fixed a problem with selecting chinese localization for GDPR based on user's locale device.
  • Fixed a crash in COPPA, when couldn't continue COPPA after acceptance of the agreement.

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Supported tracking of changing publisher cases.
  • Improved definition of the need to show the agreement
  • Supported reading files from StreamingAssets (now it is enough to pass only its name to methods).
  • Localization of the agreement will be automatically selected based on the user's current device language.

  • Added a new MRGSGDPR#setup(Activity, String, String) method to initialize MRGSGDPR and MRGSCOPPA.

  • Added a new MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams, BiConsumer<MRGSGDPRShowResult, MRGSError>) method to show GDPR window.
  • Added a new MRGSGDPR#shouldShowAgreement(Activity, BiConsumer<MRGSGDPRShowReason, MRGSGDPRAgreement>) method to check reasons of showing GDPR window to user.
  • Added a new MRGSGDPR#onAgreementAccepted(Context, boolean) method to inform MRGS that user have accepted agreements outside of MRGS GDPR window. (For showing your own GDPR windows).
  • Added a new temporary MRGSGDPR#setPublisherUpdateFile(String) method to set html file path changed publisher cases.
  • Added a new MRGSGDPR#setOnShowListener(OnShowListener) method set a listener to get a result from MRGS GDPR window.
  • Added a new MRGSGDPR#getAcceptedAgreement(Context) method to get information about the accepted agreement by user.
  • Added a new MRGSGDPR#getLocalizations(Context) method get list of supported localizations from mrgsgdpr_langs.json SDK file.

  • Added a new MRGSGDPRAgreement class that describes information of current GDPR agreement from MRGS console.

  • Added a new MRGSGDPRAcceptedAgreement class that describes information of accepted agreement by user.
  • Added a new MRGSGDPRLocalization class that contains properties to localize html page of MRGSGDPR SDK.
  • Added a new MRGSGDPRShowParams class that contains properties to change showing behavior of MRGS GDPR window.
  • Added a new MRGSGDPRShowReason enum that describes reasons of showing MRGS GDPR window.
  • Added a new MRGSGDPRShowResultclass that contains result of showing MRGS GDPR window.

  • Deprecated MRGSGDPR#withAdvertising(boolean) method. Use MRGSGDPRShowParams#withAdvertising(boolean) instead.

  • Deprecated MRGSGDPR#enableAutomaticCOPPAFlow(String, String) method. Use MRGSGDPRShowParams#setAutomaticCOPPAFlowEnabled(boolean) instead.
  • Deprecated MRGSGDPR#setLocalizationLanguage(String) method. Use MRGSGDPRShowParams#setLocalization(MRGSGDPRLocalization).
  • Deprecated MRGSGDPR#setUseWebViewForExternalLinks(boolean) method. Use MRGSGDPRShowParams#setUseWebViewForExternalLinks(boolean) instead.
  • Deprecated MRGSGDPR#getAgreementTime(Context) method. Use MRGSGDPR#getAcceptedAgreement(Context) instead.
  • Deprecated MRGSGDPR#getAgreedVersion(Context) method. Use MRGSGDPR#getAcceptedAgreement(Context) instead.
  • Deprecated MRGSGDPR#getSupportedLocalizations(Context) method. Use MRGSGDPR#getLocalizations(Context) instead.
  • Deprecated MRGSGDPR#showDefaultAgreementAtActivity(Activity, String) method. Use MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams) instead.
  • Deprecated MRGSGDPR#showAgreementAtActivity(Activity, String, String) method. Use MRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams) instead.
  • Deprecated MRGSGDPR#checkIfUserGetsUnderGDPR(Activity, String, MRGSGDPRAsyncStatus) method. Use MRGSGDPR#shouldShowAgreement(Activity, BiConsumer<MRGSGDPRShowReason, MRGSGDPRAgreement>) instead.
  • Deprecated MRGSGDPR#shouldShowGDPR(Activity, String, boolean, MRGSGDPRAsyncStatus) method. Use MRGSGDPR#shouldShowAgreement(Activity, BiConsumer<MRGSGDPRShowReason, MRGSGDPRAgreement>) instead.
  • Deprecated MRGSGDPR#setUserHasAcceptedAgreement(Context, boolean, boolean, String) method. Use MRGSGDPR#onAgreementAccepted(Context, boolean).
  • Deprecated MRGSGDPR.MRGSGDPRDelegate interface. Use MRGSGDPR.OnShowListener instead.

IronSource-Adapter module:

  • Fixed an issue, when after showing ads, in rare cases, a large number of duplicated events of completion, clicks and other could be sent.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed an issue when MRGService could track session incorrectly in the application. It could also affect the behavior of: advertisements (MRGSAdvertising), authentications (MRGSAuthentication), notifications (MRGSNotifications), and payments (MRGSBank). This usually led to the inability to display the UI in rare cases.

Notifications module:

  • Fixed NullPointerException when tried to request a notification permission.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Supported Android 14.
  • Updated androidx.core:core from 1.7.0 to 1.9.0.
  • Updated androidx.appcompat:appcompat from 1.4.2 to 1.6.1.

MRGService module:

  • Added a new MRGSGeoIpInfo#getCity() method to get city name.

  • Updated com.huawei.hms:ads-identifier from 3.4.58.301 to 3.4.62.300.

  • Updated com.huawei.hms:opendevicefrom 6.9.0.300 to 6.11.0.300.
  • Fixed an issue when MRGService#getServerTime() could return 0. Improved tracking server time, now it will always be relevant from the launch of the application until the device is restarted.

Advertising module:

  • Supported extra click events for AdTech

  • Fixed an issue Not attached to Activity.

  • Fixed an issue when onSaveInstanceState was called before VideoAdFragment closing.

Authentication module:

  • Updated com.google.android.gms:play-services-auth from 20.4.0 to 20.6.0.
  • Updated androidx.browser:browser from 1.3.0 to 1.5.0.

  • Fixed an issue when onSaveInstanceState was called before MyGamesLoginFragment closing.

Bank module:

  • Updated com.huawei.hms:iap from 6.1.0.300 to 6.4.0.301.

  • Fixed an issue Too many bind requests 999+ because of unstable connections with Google Service.

IronSource-Adapter module:

  • Supported sending extra data to server.

  • Fixed NullPointerException when tried to release resources.

  • Fixed an issue when prepared content was accidentally deleted.
  • Fixed an issue when IronSource couldn't create MRGSCustomAdapter if old IronSource SDK was used.

IronSource module:

  • Supported check integration for MRGSIronSource.

Notifications module:

  • Updated com.huawei.hms:push from 6.7.0.300 to 6.11.0.300.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed an issue of incorrect data sending with MRGSTracker#trackEvent(String, Map<String, Object>) method.

Analytics module:

  • Fixed a regression since release of 6.7.1 when payment information stopped being sent to AppsFlyer.

Advertising module:

GDPR module:

  • Supported CCPA for new libraries: Tappx and Ogury.

  • Fixed a rare NullPointerException error when trying to show GDPR with FragmentDialog(WebView).

  • Fixed aActivityNotFoundException error when trying open a link with browser if there is no browser on a device.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Updated proguard rules for aggressive obfuscation (android.enableR8.fullMode=true).

Authentication module:

  • Fixed an issue of logging MyGames with browser, when system deleted required data to continue authentication.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Added a new ISMRGSCustomAdapter module - it's a cross-promo with DSP for IronSource.

MRGService module:

  • Fixed an issue with duplicates of MRGS logs in Logcat.

Bank module:

  • Updated com.android.billingclient:billing from 4.1.0 to 6.0.1.

GDPR module:

  • Added a new MRGSGDPR#setBackgroundColor(float, float, float, float) method to change background in WebView.

Analytics module:

  • Updated AppsFlyer SDK from 6.12.0 to 6.12.1.

Firebase module:

  • Updated Firebase SDK from 10.12.0 to 10.13.0.

Authentication module:

  • Updated VKId SDK from 0.102.0 to 0.103.0.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added a new MRGServiceParams#setUserAnonymizationEnabled(boolean) method for user anonymization in http requests to server.

  • Fixed an issue when MRGSDevice#GetAdvertisingId can return null into callback.

Analytics module:

  • Updated com.appsflyer:af-android-sdk from 6.11.1 to 6.12.1.

Firebase module:

  • [iOS] Updated Firebase SDK from 10.10.0 to 10.12.0.

GDPR module:

  • Extended a list of states for supporting CCPA: Connecticut(CTDPA) and Colorado(CPA).

MyTracker module:

  • Updated com.my.tracker:mytracker-sdk from 3.0.11 to 3.0.12.

Read more about the new features and how to use them in the documentation.


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

In this version:

Advertising module:

  • Fixed internal algorithms for estimating the cost of cross-promo.

Analytics module:

  • Updated com.appsflyer:af-android-sdk from 6.11.0 to 6.11.1.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Supported remote log collection.

  • Fixed an incorrect sending events with @deprecated MRGSTracker#trackEvent(MRGSTrackerEvent) method.

Authentication module:

  • Fixed an issue when callback was called twice after authentication in Facebook.

Notifications module:

  • Added a new MRGServiceParams#setClearNotificationTrayEnabled(boolean) method to control of removing push-notifications at application start.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Updated com.facebook.android:facebook-gamingservices from 11.2.0 to 16.0.1.

MRGService module:

  • Improved detection of geo-positioning by IP.
  • MRGSDevice#getReachability method will return 1 (slow connection) for mobile internet. It used to return 2 for mobile and wi-fi connection.

  • Fixed an internal issue of incorrect validation of passed params for MRGSTracker#trackAdRevenue method.

GDPR module:

  • Fixed an issue for UI in MRGSCOPPA.

Analytics module:

  • Added sending test purchases to AppsFlyer. Such purchases will be sent with revenue 0.
  • Supported sending Amazon purchases to AppsFlyer.

  • Updated* com.appsflyer:af-android-sdk from 6.10.2 to 6.11.0.

  • Fixed a potential error which can lead to crashes.

Authentication module:

  • Added MRGSAuthentication#login(Activity, MRGSLoginCallback) and MRGSAuthentication#login(Activity, List<String>, MRGSLoginCallback) method for stable authentication. The old methods were marked as deprecated.

Firebase module:

  • Added sending test purchases to AppsFlyer. Such purchases will be sent with revenue 0.

IronSource module:

  • Supported auto-setting segments into IronSource according to with settings from MRGS console.

  • Fixed a crash after failed casting ImpressionData.revenue to double, if there was not revenue in ImpressionData.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed an issue with many request of applicationExit.
  • Fixed a issue of tracking session if the user continued to play from one day to another in his time zone.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Added a new MRGSIronSource module to auto-collect and send impression-level data of advertising revenue, and auction results to MRGS and AppsFlyer.

MRGService module:

  • Added a new MRGSTracker#trackAdRevenue(String, String, double, String, Map<String, String>) method to send impression-level data of advertising revenue to MRGS.

  • Updated com.huawei.hms:opendevice from 6.7.0.300 to 6.9.0.300.

Analytics module:

  • Supported sending impression-level data of advertising revenue to AppsFlyer. It can be enabled/disabled in MRGS console of project section.

  • Updated com.appsflyer:af-android-sdk from 6.9.3 to 6.10.2.

Authentication module:

  • Added a new MRGSMyGames#setIgnoreCachedSession(boolean) method to force ignoring of current authentication session in MyGames.

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 21.2.0 to 21.2.2.

Notifications module:

  • Updated com.google.firebase:firebase-messaging from 23.1.1 to 23.1.2.
  • Updated com.huawei.hms:push from 6.7.0.300 to 6.9.0.300.

MyTracker module:

  • Updated com.my.tracker:mytracker-sdk from 3.0.10 to 3.0.11.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added logger for network requests for new MRGS API.

Analytics module:

  • Fixed sending of MRGS metrics into AppsFlyer.

Authentication module:

  • Added MRGSMyGames#setPrimaryNetwork(String) and MRGSMyGames#setExcludedNetworks(List<String>) methods for changing or hiding main and small authentication buttons in MyGames.

  • Fixed a crash when MRGSGooglePlayGames#IsLoggedIn() method was called.

  • Removed extra web page after authentication in MRGSMyGames, if Firefox was used.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed an issue when MRGService#GetServerTime() return 0 because of race condition.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added MRGSPurchaseEvent#custom(MRGSRevenue) method to create and send purchase information from different payment systems. Such purchases won't be validated by MRGS.

  • Fixed an issue when tried to initialize MRGS SDK from work thread.

Analytics module:

  • Added a new way to send subscription purchase information to AppsFlyer with S2S instead of client side. It can be enabled in MRGS console.

  • Fixed duplication of subscription purchase events (both af_purchase and af_subscribe were sent).

Firebase module:

  • Added a new MRGSFirebase#getAppInstanceId(Consumer<String>) method to get appInstanceId from Firebase SDK.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added support for method for sending a new format of unified logs - accepts event name and a dictionary with any keys and values
  • Added method for setting default values that will enrich all logs sent via the new method to MRGSTracker
  • Added support for agreement acceptance event in MRGSTracker (e.g. when a user accepts a subscription agreement in California)
  • Added support for new MRGSTrackerProfile class to send new format profiles to unified logs
  • Fixed rare thread race bugs in MRGSTracker, due to which events could leave with separate requests

Bank module:

  • Added sending appsflyerId for payments to Market|MyGames

GDPR module:

  • Fixed keyboard overlay for typing email in COPPA

Notifications module:

  • Fixed permission request for while push notifications when app starts on Android 13.

Support module:

  • Added notification support for the support widget - now when you click on the notification, the user will be able to go directly to the support widget

Analytics module:

  • Added UDL (Universal Deep Linking) support in AppsFlyer
  • Added support for subscription purchase events af_start_trial and af_subscribe in AppsFlyer
  • Fixed sending subscription data to Firebase - discounted price will now be taken into account

Authentication module:

  • Fixed a bug due to which the authorization token for MRGSGooglePlayGames was not updated.
  • Fixed a bug due to which it was not possible to restore the authorization token from the cache for MRGSMyGames authorization, which caused authorization to stop working.

Read more about the new features and how to use them in the documentation.


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

In this version:

Showcase module:

  • Fixed ANR when trying to get User Agent.

Read more about the new features and how to use them in the documentation.


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

In this version:

Main:

  • Added Native share window support. Read more here
  • Added Android 13 support
  • Completely redesigned MyGamesSupport API
  • Added authorization support for GooglePlayGamesV2.
  • The authorization module has been split into submodules - Facebook,Amazon,GoogleSignIn,GoogleGames
  • Parameters for modules have been moved to the appropriate modules
  • The SDK now requires a minimum version of Android 4.4 (API 19).
  • Bugs fixed

MRGService module:

  • Added Native share window support. Read more here
  • Added bundleId validation to IntegrationCheck
  • MRGService SDK now requires a minimum version of Android 4.4 (API 19).
  • Removed deprecated functionality.
  • Added hiding secrets in IntegrationCheck logs
  • Fixed rules for R8/ProGuard.
  • Returned bankSubstitution, now a String. The MRGSBilling#useAsMainBilling() methods have been removed.

Bank module:

  • Added a new MRGSBilling#getLoadedProducts() method that will return a list of loaded products.
  • SamsungBillingParams config has been renamed to MRGSSamsungBillingParams and moved to MRGSBillingModule module.
  • Updated com.huawei.agconnect:agcp from 1.6.0.300 to 1.7.3.300
  • Updated com.huawei.hms:ads-identifier from 3.4.39.302 to 3.4.58.301
  • Updated com.huawei.hms:opendevice from 5.1.1.307 to 6.7.0.300
  • Updated com.huawei.hms:push from 6.1.0.300 to 6.7.0.300
  • Updated com.huawei.hms:iap from 6.1.0.300 to 6.4.0.301
  • Fixed error getting micros for Huawei subscriptions.

Notifications module:

  • Added support for Android 13 - request permission to send notifications.
  • Updated com.google.firebase:firebase-messaging from 23.1.0 to 23.1.1.
  • Updated com.google.firebase:firebase-messaging from 23.0.6 to 23.1.0.

Support module:

  • Added a new class MRGSMyGamesSupport with a new completely redesigned interface for working with the support service (classes of pages, config, new methods for opening a window were added), old classes are marked as Deprecated

Analytics module:

  • all events will now add additional mrgs userId and deviceId values.
  • Changed default behavior for sending userId and deviceId - default AppsFlyer CUID now sends userId, and using useDeviceIdAsUserId you can enable the old behavior for sending deviceId. Read more here
  • AppsFlyerParams config has been renamed to MRGSAppsFlyerParams and moved to MRGSAnalyticsModule module.
  • Updated com.appsflyer:af-android-sdk from 6.8.2 to 6.9.3.

Firebase module:

  • Added method setUserProperties
  • Updated com.google.firebase:firebase-analytics from 21.1.0 to 21.2.0.

Authentication module:

  • Added authorization support for GooglePlayGamesV2.
  • The MRGSAuthenticationFacebook authorization has been moved into its own module MRGSAuthenticationFacebookModule.
  • The MRGSAuthenticationAmazon authorization has been moved into its own module MRGSAuthenticationAmazonModule.
  • MRGSGooglePlayGames authorization has been split into two modules MRGSGoogleSignIn and MRGSGooglePlayGames.
  • The AmazonAuthParams config has been renamed to MRGSAmazonAuthParams and moved to the MRGSAuthenticationModule module.
  • The FacebookParams config has been renamed to MRGSFacebookParams and moved to the MRGSAuthenticationModule module.
  • The MRGSGooglePlayGamesParams config has been moved to the MRGSAuthenticationGooglePlayGames module.
  • MyGamesAuthParams config has been renamed to MRGSMyGamesAuthParams and moved to MRGSAuthenticationModule module.
  • Updated com.google.android.gms:play-services-auth from 20.3.0 to 20.4.0.
  • Updated com.google.android.gms:play-services-games from 22.0.1 to 23.1.0.

Module MyTracker:

  • Updated com.my.tracker:mytracker-sdk from 3.0.9 to 3.0.10.

GameCenter module:

  • GameCenterParams config has been renamed to MRGSGameCenterParams and moved to MRGSGameCenterModule module.

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Added Virginia VCDPA law support to CCPA functionality

Bank module:

  • Fixed error 60001: too many query items for Huawei billing when try to request product
  • Fixed a bug in the #useAsMainbilling() method

Analytics module:

  • Added af_level field when proxying MRGS metrics in AppsFlyer

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed bugs with integration check.

Bank module:

Showcase module:

  • Changed popup text about installing all games from the list.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • The launch event will now tag the first launch on the device to track reattribution metrics
  • Proxy settings for MyTracker are now obtained only when connecting this module
  • Fixed integration check for authorization modules and MyTracker

Support module:

  • Fixed MyGames Support

Read more about the new features and how to use them in the documentation.


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

This version includes backwards incompatible changes. To migrate to the new version, please refer to the Migrations documentation.

In this version:

  • MyTracker is now not a required dependency. Working with it is moved into a separate module MRGSMyTracker. The MRGSMyTrackerParams class has moved into the MRGSMyTracker module.
  • Work with VK authorization moved to a separate module MRGSAuthenticaitonVK. The MRGSVKontakteParams class has moved to the MRGSAuthenticationVK module.
  • Changed all package names from ru.mail.mrgservice to games.my.mrgs
  • removed references to VK/MyTracker from modules and moved them to the corresponding new modules

MRGService module:

  • Changed initialization method MRGS - external sdk parameters are now passed as an array.
  • Property MRGSMyGamesParams#VKPlayMode removed. Use MRGSMyGamesParams#CustomHost.

Support module:

  • Enum ru.mail.mrgservice.MRGSMyComSupport.Credential.SocialNetwork.VK removed.

Authentication module:

  • Enum MRGSAuthenticationNetwork removed, now uses string constants in corresponding classes

Important

  • After the update, MyTracker SDK, VK SDK will disappear from the assembly, as they are now separate modules. Accordingly, the attribution and analytics of the project in MyTracker will stop.
  • In case you need to leave the SDK data in the project, it is enough just to connect new modules to the project and switch to the new initialization method.
  • Due to package name changes, some local notifications may be lost (delivered between the time the app was updated and before it was first opened after the update).
  • In order to continue using 1link and MyUA, 1link needs to switch project data collection to AppsFlyer + MRGS SDK.

Read more about the new features and how to use them in the documentation.


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

In this version:

Analytics module:

  • Changed host for AppsFlyer to appsflyersdk.com to bypass blocks in Russia

Showcase module:

  • Added support for remote title setting for Showcase

Bank module:

  • Improved handling of purchase errors in Samsung billing

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added support for enriching MRGS events with the appsflyerId parameter even if the MRGSAnalytics module is not connected, i.e. the AppsFlyer SDK is integrated separately.

Read more about the new features and how to use them in the documentation.


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

In this version:

Analytics module:

  • Fixed a bug with sending AppsFlyer id in MRGS events.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • BillingSubstitution.MY_GAME is tagged @Deprecated, use BillingSubstitution.MY_GAMES instead.

Analytics module:

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed a bug due to which it was incorrectly parsed MRGService.xml config, as a result of which MRGSGoogleGames returned a server code instead of an authorization token. Now, by default, the authorization token is returned again, unless a different value is set in MRGService.xml config.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Deprecated MRGServiceParams#shouldUseMyGamesBillingOnly() and MRGServiceParams#setUseMyGamesBillingOnly(boolean) methods, use MRGServiceParams#setBillingSubstitution(BillingSubstitution) instead.

Authentication module:

  • Added a new MRGSExternalSDKParams.MyGamesAuthParams#setDevEnvironment(boolean) method to enable/disable DEV environment for MyGames/VKPlay authentication. Learn more.

  • Supported a new authorization method via VKID (superappkit SDK). Learn more.

Bank module:

  • Supported a new authorization method MRGSBilling#openSubscriptionManager(Activity) to open Subscription Manager. Learn more.

  • Supported a new payment method via VKPay (superappkit SDK). Learn more.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Updated com.my.tracker:mytracker-sdk from 3.0.8 to 3.0.9.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added a new method MRGSApplication#getInstallTime() to get the application installation time in unixTime format in milliseconds. Learn more.
  • Added a new method MRGSExternalSDKParams.MyTrackerParams#setTrackingLocationEnabled(boolean) to enable/disable device location data collection in MyTracker SDK. Location tracking in the MyTracker SDK will now be disabled by default. Learn more.

  • Updated com.my.tracker:mytracker-sdk from 3.0.7 to 3.0.8.

Analytics module:

  • Updated com.appsflyer:af-android-sdk from 6.8.0 to 6.8.2.

Authentication module:

  • Added a new method MRGSMyGames#setHideBrandOccurrences(boolean) to hide all brand mentions MY.GAMES when logging in via IMRGSAuthenticationMyGames. Learn more
  • Added a new method MRGSExternalSDKParams.MyGamesAuthParams#setVkPlayModeEnabled(boolean) to change the authorization method from MyGames to VKPlay. Learn more.

  • Removed checking of Play Games application when trying to login in via MRGSGoogleGames.

  • Fixed a crash when trying to login in via MRGSGoogleGames on some Samsung devices.

Bank module:

  • Updated com.android.billingclient:billing from 3.0.3 to 4.1.0.

  • Fixed an issue when MRGSMyGamesBank saved data in MRGSBank instead of saving them at itself.

Read more about the new features and how to use them in the documentation.


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

In this version:

Bank module:

  • Fixed an issue, when Google purchase information was not sent to AppsFlyer, Firebase, and MyTracker since version 5.0.0 - MRGS Android SDK.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Downgraded androidx.appcompat:appcompat from 1.4.2 to 1.3.1, because it required compileSdkVersion not lower than 31.

MRGService module:

  • Fixed an issue when MRGSDevice#getOpenUDID(Callback) returns invalid OpenUDID as "0000-0000".

Authentication module:

  • Downgraded com.vk:android-sdk-core from 3.5.2 to 3.4.1, because it required compileSdkVersion not lower than 31.
  • Downgraded androidx.browser:browser from 1.4.0 to 1.3.0, because it is not compatible with android gradle plugin/gradle 4.0/6.1.1 and lower.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.4.2.

MRGService module:

  • Updated com.my.tracker:mytracker-sdk from 3.0.4 to 3.0.7

Bank module:

  • Added support for remote Market|MyGames showcase title change.

Notifications module:

  • Updated com.google.firebase:firebase-messaging from 22.0.0 to 23.0.6.

Analytics module:

  • Updated com.appsflyer:af-android-sdk from 6.5.2 to 6.8.0

Firebase module:

  • Updated com.google.firebase:firebase-analytics from 19.0.2 to 21.1.0.

Authentication module:

  • Added sending user info when logging in via Vk social network.
  • Updated com.vk:android-sdk-core from 3.3.0 to 3.5.2
  • Updated com.google.android.gms:play-services-auth from 19.2.0 to 20.2.0.
  • Updated com.google.android.gms:play-services-games from 21.0.0 to 22.0.1.
  • Updated androidx.browser:browser from 1.3.0 to 1.4.0.

Read more about the new features and how to use them in the documentation.


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

In this version:

Notifications module:

  • Fixed an issue java.lang.RuntimeException: Unable to start receiver.

Read more about the new features and how to use them in the documentation.


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

In this version:

This version includes backwards incompatible changes. To migrate to a new version, see Migration guide.

  • Added support for SDK distribution via Maven repository. Learn more.
  • SDK requires Java 8 in your project. Learn more.

MRGService module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Redesigned methods of MRGService initialization. Now it is similar to methods used in MRGS Unity SDK. Learn more

  • Interface MRGService.ActivityResultListener removed.

  • Interface Printable removed.
  • Interface MRGSIntegrationCheck.MRGSIntegrationCheckListener removed.
  • Class MRGSX509ExtendedTrustManager removed.
  • Class MRGSX509TrustManager removed.
  • Class MRGSAirLog removed.
  • Class MRGSExtSDK removed.

  • Method MRGService#instance() renamed to MRGService#getInstance().

  • Method MRGService#checkIntegration(MRGSIntegrationCheck.MRGSIntegrationCheckListener) removed. Use checkIntegration(@Nullable Consumer<MRGSIntegrationCheckResult>) instead.
  • Method MRGService#initialized() removed. Use MRGService#isInitialized() instead.
  • Method MRGService#registerResultListener(ActivityResultListener) removed.
  • Method MRGService#unregisterResultListener(ActivityResultListener) removed.
  • Method MRGService#onActivityRes(Activity, int, int, Intent) removed.
  • Method MRGService#registerTransferManagerDelegate(String, MRGSTransferManagerDelegate) removed.
  • Method MRGService#unregisterTransferManagerDelegate(MRGSTransferManagerDelegate) removed.
  • Method MRGService#getIsRunService() removed.
  • Method MRGService#setAppContext(Context) removed.
  • Method MRGService#onStart(Activity) removed.
  • Method MRGService#onStop(Activity) removed.
  • Method MRGService#getSharedPreferences(String) removed. Use MRGSSharedPreferences#newInstance(String) instead.
  • Method MRGService#getSharedPreferences(Context, String) removed. Use MRGSSharedPreferences#newInstance(Context, String) instead.
  • Method MRGService#sendHandleException(String) removed. Use MRGSCrashReports#sendHandleException(String) instead.
  • Method MRGService#sendHandleException(String, String) removed. Use MRGSCrashReports#sendHandleException(String, String) instead.

  • Method MRGSLog#log(String) removed.

  • Method MRGSMetrics.addPurchase(String, String, String) removed. Use MRGSMetrics.addPurchase(MRGSPurchaseEvent) instead.

  • Method MRGSUsers#instance() renamed to MRGSUsers#getInstance().

  • Method MRGSUsers#getCurrentUser() now returns MRGSUser instead of MRGSMap.

  • Method MRGSDevice#instance() renamed to MRGSDevice#getInstance().

  • Method MRGSDevice#useOldUDIDMethod() removed.
  • Method MRGSDevice#shouldUseOldUDIDMethod() removed.
  • Method MRGSDevice#generateDeviceIdOld(Context) removed.
  • Method MRGSDevice#getGoogleAccountPrimary() removed.
  • Method MRGSDevice#getODIN1() removed.
  • Method MRGSDevice#getIMEI() removed.
  • Method MRGSDevice#openSystemSettingsOfApplication() removed. MRGSDevice#openApplicationDetailsSettings(Context).
  • Method MRGSDevice#getOldOpenUDID() renamed to MRGSDevice#getDeviceIdOrUUID().

  • Method MRGSApplication#instance() renamed to MRGSApplication#getInstance().

  • Method MRGSApplication#getApplicationBundleName() will not return any more null.

  • Method MRGSServerData#instance() renamed to MRGSServerData#getInstance().

Advertising module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class ru.mail.mrgservice.MRGSAdvertisingConsts removed.

  • Class MRGSAdvertisingFactory moved from ru.mail.mrgservice to ru.mail.mrgservice.advertising.
  • Const MRGSAdvert.SHOW_FULLSCREEN marked as @Deprecated and well be deleted soon.
  • Method MRGSAdvert#showContent(int, String) marked as @Deprecated and well be deleted soon.

Analytics module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class MRGSGoogleConversion removed.

  • Class MRGSAnalytics moved from ru.mail.mrgservice to ru.mail.mrgservice.advertising.
  • Class MRGSAppsFlyer moved from ru.mail.mrgservice to ru.mail.mrgservice.advertising.

  • Method MRGSAnalytics#getGoogleConversion() removed.

  • Method MRGSAppsFlyer#setCustomerUserId(String) removed. Use MRGSAppsFlyer#forceCustomerUserId(String) instead.

Authentications module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class MRGSAmazon moved from ru.mail.mrgservice.amazon to ru.mail.mrgservice.authentication.amazon.

  • Class MRGSFacebook moved from ru.mail.mrgservice.facebook to ru.mail.mrgservice.authentication.facebook..
  • Class MRGSGoogleGames moved from ru.mail.mrgservice.googlegames to ru.mail.mrgservice.authentication.googlegames.
  • Class MRGSMyGames moved from ru.mail.mrgservice.mygames to ru.mail.mrgservice.authentication.mygames.
  • Class MRGSVK moved from ru.mail.mrgservice.vk to ru.mail.mrgservice.authentication.
  • Class MRGSUser is interface now, and also moved from from ru.mail.mrgservice to ru.mail.mrgservice.authentication.amazon.
  • Class FacebookUser removed.
  • Class MRGSCredentials is interface now.
  • Class MRGSAuthInfo marked ad @Deprecated. Use MRGSAccessToken instead.

  • Interface MRGSAuthentication.ExternalLogoutCallback marked as @Deprecated. Use MRGSAuthentication.OnExternalLogoutListener instead.

  • Interface MRGSSocial moved from ru.mail.mrgservice.social to ru.mail.mrgservice.authentication.
  • Interface MRGSScore moved from ru.mail.mrgservice.games to ru.mail.mrgservice.authentication.
  • Interface MRGSLeaderBoards moved from ru.mail.mrgservice.games to ru.mail.mrgservice.authentication.
  • Interface MRGSAchievements moved from ru.mail.mrgservice.games to ru.mail.mrgservice.authentication.
  • Interface MRGSAuthInfoCallback.java removed.

  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkAmazon renamed to MRGSAuthenticationNetwork.AMAZON.

  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkFacebook renamed to MRGSAuthenticationNetwork.FACEBOOK.
  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkGoogleGames renamed to MRGSAuthenticationNetwork.GOOGLE_GAMES.
  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkMyGames renamed to MRGSAuthenticationNetwork.MY_GAMES.
  • Enum MRGSAuthenticationNetwork.MRGSAuthenticationNetworkVKontakte renamed to MRGSAuthenticationNetwork.VKONTAKTE.
  • Enum MRGSAuthenticationNetwork.Unknown renamed to MRGSAuthenticationNetwork.UNKNOWN.

  • Method MRGSAuthentication#loginWithScopes(List<String>, MRGSLoginCallback) marked as @Deprecated. Use MRGSAuthentication#login(List<String>, MRGSLoginCallback) instead.

  • Method MRGSAuthentication#getAuthInfo(BiConsumer<MRGSAuthInfo, MRGSError>) marked as @Deprecated. Use MRGSAuthentication#getAccessToken(BiConsumer<MRGSAuthInfo, MRGSError>) instead.
  • Method MRGSAuthentication#getUserAvatar(MRGSUser, MRGSAvatarCallback, int, int) marked as @Deprecated. Use MRGSAuthentication#getUserAvatar(MRGSUser, int, int, MRGSAvatarCallback) instead.
  • Method MRGSAuthentication#setOnExternalLogoutCallback(ExternalLogoutCallback) marked as @Deprecated. Use MRGSAuthentication#setOnExternalLogoutListener(OnExternalLogoutListener) instead.

  • Method MRGSAmazon#tryUpdateToken() removed. Use MRGSAmazon#getAccessToken(BiConsumer<MRGSAccessToken, MRGSError>) instead.

  • Method MRGSAchievement#achievementId() marked as @Deprecated. Use MRGSAchievement#getAchievementId() instead.

  • Method MRGSAchievement#name() marked as @Deprecated. Use MRGSAchievement#getName() instead.
  • Method MRGSAchievement#description() marked as @Deprecated. Use MRGSAchievement#getDescription() instead.
  • Method MRGSAchievement#state() marked as @Deprecated. Use MRGSAchievement#getState() instead.
  • Method MRGSAchievement#currentSteps() marked as @Deprecated. Use MRGSAchievement#getCurrentSteps() instead.
  • Method MRGSAchievement#totalSteps() marked as @Deprecated. Use MRGSAchievement#getTotalSteps() instead.
  • Method MRGSAchievement#completionPercent() marked as @Deprecated. Use MRGSAchievement#getCompletionPercent() instead.

  • Method MRGSCredentials#setUserId(String) removed.

  • Method MRGSCredentials#setUser(MRGSUser) removed.
  • Method MRGSCredentials#setAuthInfo(MRGSAuthInfo) removed.
  • Method MRGSCredentials#getAuthInfo() marked as @Deprecated. Use MRGSCredentials#getAccessToken() instead.

  • Method MRGSLeaderboard#leaderboardId() marked as @Deprecated. Use MRGSLeaderboard#getLeaderboardId() instead.

  • Method MRGSLeaderboard#name() marked as @Deprecated. Use MRGSLeaderboard#getName() instead.

  • Method MRGSScore#leaderboardId() marked as @Deprecated. Use MRGSScore#getLeaderboardId() instead.

  • Method MRGSScore#rank() marked as @Deprecated. Use MRGSScore#getRank() instead.
  • Method MRGSScore#displayRank() marked as @Deprecated. Use MRGSScore#getDisplayRank() instead.
  • Method MRGSScore#rawScore() marked as @Deprecated. Use MRGSScore#getRawScore() instead.
  • Method MRGSScore#displayScore() marked as @Deprecated. Use MRGSScore#getDisplayScore() instead.
  • Method MRGSScore#player() marked as @Deprecated. Use MRGSScore#getPlayer() instead.

  • Method MRGSUser#userId() marked as @Deprecated. Use MRGSUser#getUserId() instead.

  • Method MRGSUser#nick() marked as @Deprecated. Use MRGSUser#getNickName() instead.
  • Method MRGSUser#firstName() marked as @Deprecated. Use MRGSUser#getFirstName() instead.
  • Method MRGSUser#lastName() marked as @Deprecated. Use MRGSUser#getLastName() instead.
  • Method MRGSUser#middleName() marked as @Deprecated. Use MRGSUser#getMiddleName() instead.
  • Method MRGSUser#fullName() marked as @Deprecated. Use MRGSUser#getFullName() instead.
  • Method MRGSUser#displayName() marked as @Deprecated. Use MRGSUser#getDisplayName() instead.
  • Method MRGSUser#gender() marked as @Deprecated. Use MRGSUser#getGender() instead.
  • Method MRGSUser#birthDate() marked as @Deprecated. Use MRGSUser#getBirthDate() instead.
  • Method MRGSUser#location() marked as @Deprecated. Use MRGSUser#getLocation() instead.
  • Method MRGSUser#socialId() marked as @Deprecated. Use MRGSUser#getSocialId() instead.

Billing module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class MRGSBilling moved from ru.mail.mrgservice to ru.mail.mrgservice.billing.

  • Class MRGSPurchaseItem renamed to MRGSBillingProduct and moved from ru.mail.mrgservice to ru.mail.mrgservice.billing.
  • Class MRGSBillingEntities moved from ru.mail.mrgservice to ru.mail.mrgservice.billing.
  • Class MRGSMyGamesBilling moved from ru.mail.mrgservice to ru.mail.mrgservice.billing.
  • Interface MRGSBillingDelegate removed.
  • Interface MRGSBillingDelegateEx renamed to MRGSBillingDelegate and moved from ru.mail.mrgservice to ru.mail.mrgservice.billing.

  • Method MRGSBilling#instance() renamed to MRGSBilling#getInstance().

  • Method MRGSBilling#requestProductsInfoWithRequest(MRGSBankProductsRequest) renamed to MRGSBilling#requestProductsInfo(MRGSBankProductsRequest).
  • Method MRGSBilling#buyItem(String sku, final String type) removed. Use MRGSBilling#buyItem(String sku) instead.
  • Method MRGSBilling#buyItem(String sku, String type, String developerPayload) removed. Use MRGSBilling#buyItem(String sku, String developerPayload) instead.
  • Method MRGSBilling#buyItem(final MRGSPurchaseItem purchase) removed. Use MRGSBilling#buyItem(MRGSBankPurchaseRequest) instead.
  • Method MRGSBilling#setDelegate(MRGSBillingDelegateEx) removed.
  • Method MRGSBilling#changeItem(String, String, String) removed. Use MRGSBilling#buyItem(MRGSBankPurchaseRequest) instead.
  • Method MRGSBilling#changeItem(String, String, String, String) removed. Use MRGSBilling#buyItem(MRGSBankPurchaseRequest) instead.
  • Method MRGSBilling#changeItem(MRGSPurchaseItem, MRGSPurchaseItem) removed. Use MRGSBilling#buyItem(MRGSBankPurchaseRequest) instead.
  • Method MRGSBilling#getProductsInfo(ArrayList<String>) removed. Use MRGSBilling#requestProductsInfo(MRGSBankProductsRequest) instead.
  • Method MRGSBilling#getProductsInfoWithTypes(ArrayList<Pair<String, String>>) removed. Use MRGSBilling#requestProductsInfo(MRGSBankProductsRequest) instead.
  • Method MRGSBilling#getProductsInfoFromPurchaseInfo(ArrayList<MRGSBillingProduct>) removed. Use MRGSBilling#requestProductsInfo(MRGSBankProductsRequest) instead.
  • Method MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem) changed on MRGSBilling#notifyMRGSAboutConsume(String sku, String transactionId)
  • Method MRGSBilling#closePayment(MRGSPurchaseItem) removed. Use MRGSBilling#notifyMRGSAboutConsume(String sku, String transactionId) instead.

  • Method MRGSBillingProduct#createWithPurchaseInfo(String) removed.

  • Method MRGSBillingProduct#createWithPurchaseInfoWithType(String, String) removed.
  • Method MRGSBillingProduct#fromJSON(String) removed.
  • Method MRGSBillingProduct#setSku(String) removed.
  • Method MRGSBillingProduct#setIntroductoryPeriod(String) removed.
  • Method MRGSBillingProduct#setType(String) removed.
  • Method MRGSBillingProduct#getDictionary() removed.
  • Method MRGSBillingProduct#getPurchaseToken() removed.
  • Method MRGSBillingProduct#setPurchaseToken(String token) removed.
  • Method MRGSBillingProduct#getTransactionId() removed. Use MRGSBankTransaction#getTransactionIdentifier() instead.
  • Method MRGSBillingProduct#getTransactionReceipt() removed.
  • Method MRGSBillingProduct#getResultCode() removed.
  • Method MRGSBillingProduct#getRawPurchaseInfo() removed. Use MRGSBankTransaction#getRawPurchaseResult() instead.
  • Method MRGSBillingProduct#getDeveloperPayload() removed. Use MRGSBankPurchaseResult#getDeveloperPayload() instead.
  • Method MRGSBillingProduct#setDeveloperPayload(String) removed.
  • Method MRGSBillingProduct#getUserId() removed.

  • Method MRGSBillingDelegate#onReceiveProductsResponce renamed to MRGSBillingDelegate#onReceiveProductsResponse.

  • Method MRGSBillingDelegate#onReceiveSuccessfullPurchase renamed to MRGSBillingDelegate#onReceiveSuccessfulPurchase.

Firebase module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class MRGSFirebaseAnalytics moved from ru.mail.mrgservice to ru.mail.mrgservice.firebase.

GDPR module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class MRGSGDPR moved from ru.mail.mrgservice to ru.mail.mrgservice.gdpr.

  • Class MRGSGDPR.MRGSGDPRFactory removed. Use MRGSGDPR#getInstance() instead.
  • Interface MRGSCOPPA.OnResponseCallback removed from the public API, as it's intended for internal work.

  • Method MRGSGDPR#showAgreementAtActivity(Activity, String, String, int) removed. Use MRGSGDPR#showAgreementAtActivity(Activity, String, String) instead.

  • Method MRGSGDPR#shouldShowGDPRForVersion(Activity, String, int, boolean, MRGSGDPRAsyncStatus) removed. Use MRGSGDPR#shouldShowGDPRForVersion(Activity, String, boolean, MRGSGDPRAsyncStatus) instead.
  • Method MRGSGDPR#setUserHasAcceptedAgreementWithVersion(Context, int, boolean, boolean, String) removed. Use MRGSGDPR#setUserHasAcceptedAgreementWithVersion(Context, boolean, boolean, String) instead.
  • Method MRGSCCPA#fetchCountyIfNeeded() removed from the public API, as it's intended for internal work.
  • Method MRGSCOPPA#isUnderUk(Consumer<Boolean>) removed from the public API, as it's intended for internal work.
  • Method MRGSCOPPA#shouldShowCoppa(Consumer<Boolean>) removed from the public API, as it's intended for internal work.
  • Method MRGSCOPPA#shouldShowCoppa(Context, Consumer<Boolean>) removed from the public API, as it's intended for internal work.
  • Method MRGSCOPPA#sendEmail(String, OnResponseCallback<MRGSSendEmailResult>) removed from the public API, as it's intended for internal work.
  • Method MRGSCOPPA#checkEmails(List<String>, OnResponseCallback<MRGSCheckEmailResult>) removed from the public API, as it's intended for internal work.

GameCenter module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

MyTarget module:

  • Was removed.

Notifications module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class MRGSGDPR moved from ru.mail.mrgservice to ru.mail.mrgservice.gdpr.

  • Class MRGSPushNotifications removed. Use MRGSNotificationCenter instead.
  • Class MRGSLocalPushService removed. Use MRGSNotificationCenter instead.
  • Class MRGSLocalPushAutoStartReceiver removed.
  • Class MRGSPushNotification.MRGSPushNotificationChannel removed. Use ru.mail.mrgservice.MRGSNotificationChannel instead.
  • Class MRGSPushNotification.MRGSPushNotificationChannelsGroup removed. Use ru.mail.mrgservice.MRGSNotificationChannelGroup instead.

  • Interface MRGSPushNotificationHandler.MRGSPushNotificationDelegate removed.

  • Interface MRGSPushNotificationHandler.MRGSPushNotificationDelegateEx renamed to MRGSPushNotificationHandler.MRGSPushNotificationDelegate.

  • Interface MRGSPushNotificationHandler.MRGSPushNotificationGroupDelegate removed.

  • Interface MRGSPushNotificationHandler.MRGSPushNotificationExGroupDelegate renamed to MRGSPushNotificationHandler.MRGSPushNotificationGroupDelegate.

  • Method MRGSNotificationCenterImpl.getInstance() removed. Use MRGSNotificationCenter.getInstance() instead.

  • Method MRGSPushNotification.getCutomTextStrings() renamed to MRGSPushNotification.getCustomTextStrings().
  • Method MRGSPushNotificationHandler#setDelegate(MRGSPushNotificationDelegateEx) removed.

Recommendations module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Class MRGSRecommendations moved from ru.mail.mrgservice to ru.mail.mrgservice.recsys.

  • Method MRGSRecommendations#offerView(String, MRGSMap) removed. Use MRGSRecommendations#trackEvent(MRGSRecSysEvent) instead.

  • Method MRGSRecommendations#offerClick(String, MRGSMap) removed. Use MRGSRecommendations#trackEvent(MRGSRecSysEvent) instead.
  • Method MRGSRecommendations#offerBuy(String, MRGSMap) removed. Use MRGSRecommendations#trackEvent(MRGSRecSysEvent) instead.

Showcase module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

Support module:

  • Now the SDK can be downloaded via Maven repository. Learn more.

  • Constructor MRGSMyComSupportDialog(Activity, String) removed. Use MRGSMyComSupportDialog(Activity) instead.

  • Constructor MRGSMyComSupportDialog(Activity, String, boolean) removed. Use MRGSMyComSupportDialog(Activity) instead.

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added support for remote setting proxy server for MyTracker requests
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

Notifications module:

  • Fixed crash in the previous release, when trying to restore local push-notifications from the cache after restarting the application.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

Notifications module:

  • Fixed crash in the previous release when trying to create a local custom push notification if resources could not be found.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

Advertising module:

  • Changed button size from 30dp to 35dp.

Notifications module:

  • Fixed errors when displaying notifications after updating the application due to changing resource ids after recompilation.

Showcase module:

  • Added ability to hide showcase title remotely
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Changed a behavior of MRGService#ServerTime. Now serverTime will not be reset to 0 when the application is minimized. Learn more.

  • Fixed a bug with infinite sending of network requests in case of network problems.

Authentication module:

  • Fixed an issue Class not found when unmarshalling for Vk authentication.

Bank module:

  • Added sending of version number and build to the server MRGS for VKPay payments.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added a new MRGSDevice#getGeoIpInfo(BiConsumer<MRGSGeoIpInfo, MRGSError>) method to determine the geographical location of the device with Internet access by its IP address. Learn more.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • The MRGSApplication#instance() method is marked @Deprecated and will be removed shortly. Use MRGSApplication#getInstance() instead of the old method.
  • The MRGSDevice#instance() method is marked @Deprecated and will be removed shortly. Use MRGSDevice#getInstance() instead of the old method.
  • The MRGService#instance() method is marked @Deprecated and will be removed shortly. Use MRGService#getInstance() instead of the old method.
  • The MRGSServerData#instance() method is @Deprecated and will be removed shortly. Use MRGSServerData#getInstance() instead of the old method.
  • The MRGSUsers#instance() method is @Deprecated and will be removed shortly. Use MRGSUsers#getInstance() instead of the old method.

Bank module:

  • Improved error handling in MyGamesBank
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

All modules:

  • All MRGS***Version classes are marked as @Deprecated and will be removed soon. Versions can now be found in each module's BuildConfig.

Bank module:

  • Added support for VKPay (Market|MyGames) payments - an alternative way to pay for purchases when placed outside of app stores

  • Deprecated MRGSBilling#instance(). Use MRGSBilling#getInstance() instead.

Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added MRGSDevice#getAdvertisingId(Context, AdvertisingIdCallback) method to retrieve IDFA asynchronously. Learn more.

  • Fixed a bug where metrics were not sent from MRGSMetrics to AppsFlyer when forwardMetrics was enabled.

Support module:

  • Removed android.permission.READ_EXTERNAL_STORAGE from manifest.
  • android.permission.WRITE_EXTERNAL_STORAGE requires android 8 or lower.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Updated MyTracker SDK from 3.0.2 to 3.0.4. Learn more.
  • Now, as a result of the integration check, a part of the secret key of MRGS SDK will be output.

  • Fixed an error that caused a problem about parsing JSONArray to be displayed in the log when MRGService debug was enabled. This error did not affect the SDK functionality in any way..

Analytics module:

  • Updated AppsFlyer SDK from 6.5.0 to 6.5.2. Learn more.
  • Added additional sending of payment data such as: af_content_id (sku of a product) and af_order_id (orderId from a receipt).

Authentication module:

  • Added a new MRGSAuthentication#getAuthInfo(BiConsumer<MRGSAuthInfo, MRGSError>) method to get AccessToken asynchronously, this will always allow you to get an up-to-date and valid token.

  • Deprecated MRGSAuthentication#getAuthInfo() method.

  • Fixed an error indicating an incorrect token expiration time for MRGSVK authorization, now 0 will be returned instead of the token creation time.

  • Fixed an error when the user logged out in MRGSVK while initialization MRGService SDK if there is no internet connection.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added a new MRGSTracker#trackUserProfile(MRGSTrackerUserProfile) method for sending a user profile to the system of custom logs (events). Learn more.
  • Downgraded appcompat library version from 1.3.1 to 1.2.0 because the new version requires updating a project to targetSdkVersion 31.

Advertising module:

  • Fixed the private method of opening links in PlayableAds in mraid format.

Authentication module:

  • Fixed issue when system could create another instance of CustomTabActivity for Facebook or MyGames authentication to pass result and it could lead to crash.
  • Fixed incorrect saving Activity state.

GDPR module:

  • Added a new MRGSGDPR#resetModule(Context) method to reset the fact of acceptance of the agreement and all data in GDPR, COPPA. It also resets the CCPA settings and sets them to the third-party tracking allowed status if tracking was turned off earlier. That is, a complete reset of the GDPR module to the state of the newly installed application. This method should be called ONLY if the user requested to delete his account according to the GDPR law, he was deleted, and you need to reset the fact of his acceptance of the agreement on the client so that the GDPR/COPPA window for the new user account is shown again.

Support module:

  • Added an ability to create a request to delete all your data by the user (GDPR). Learn more.

Showcase module:

  • Changed showcase design.
  • Changed behavior for calculating notification. Now if the advertisement that the user has already seen comes again, then there will be no more notifications.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Updated MyTracker SDK from 3.0.1 to 3.0.2. Learn more.
  • Updated Appset Id SDK from 16.0.0 to 16.0.1.

Analytics module:

  • Updated AppFlyer SDK from 6.3.2 to 6.5.0. Learn more.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

Bank module:

  • Fixed incorrect behavior when different callback methods could return developerPayload with different structure. Now only the option that was originally transferred at the time of purchase will be returned.

GDPR module:

  • Fixed error with a long response time when calling MRGSCOPPA#showCOPPAFlowIfNeeded if there is no internet.

Authentication module:

  • Fixed rare crash when trying to log in with Facebook on a mobile device.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

Bank module:

  • Fixed incorrect behavior when different callback methods could return developerPayload with different structure. Now only the option that was originally transferred at the time of purchase will be returned.

GDPR module:

  • Fixed error with a long response time when calling MRGSCOPPA#showCOPPAFlowIfNeeded if there is no internet.

Authentication module:

  • Fixed rare crash when trying to log in with Facebook on a mobile device.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added a new MRGSMyTracker#forceCustomUserId(String) method, which allows you to set the customer user ID (customUserId) before initializing MRGService. Learn more.
  • Added support App set ID.
  • Added a new MRGSDevice#getVendorId(Context, OnVendorIdCallback) method which provides AppSet id for Google store, ODID for Huawei store or null for another stores.

  • Deprecated MRGSDevice#openSystemSettingsOfApplication() method, use MRGSDevice#openApplicationDetailsSettings(Context) instead.

  • Deprecated MRGSDevice#getODIN1() method and it will be removed at the end of 2021.
  • Deprecated MRGSDevice#getGoogleAccountPrimary() method and it will be removed at the end of 2021.
  • Removed sending unique identifiers over the network such as Build.SERIAL and Wi-Fi MAC address, due to warnings from Google.
  • Changed behaviour of the MRGSDevice#getOpenUDID(CallbackOpenUDID) method, because this method could not correctly generate OpenUDID before initializing MRGService. Now this method can return null if it is called on the very first launch of the application before initialization of MRGService.

Advertising module:

  • Fixed long loading of ads, which could take from 0 to 5 seconds.
  • Fixed a bug where the "close" button could be blocked when showing a video.
  • Fixed out-of-sync between the time counter in the button and the video player.

Analytics module:

  • Added a new static MRGSAppsFlyer#forceCustomerUserId(String) method, which allows you to set the customer user ID (customerUserId) before initializing MRGService. Learn more.

  • Deprecated MRGSAppsFlyer#setCustomerUserId(String) method, use MRGSAppsFlyer#forceCustomerUserId(String) instead.

Bank module:

  • Fixed a bug with json parsing when JSONObject.optstring could return "null" instead of "" for Facebook Cloud billing.

GDPR module:

  • Added MRGSGDPR#openLinkInWebView(Context context, String title, String url) method to open external links of GDPR in WebView for Facebook Cloud.
  • Foxed a bug, where two events about opening and accepting GDPR had different hashes.

Support module:

  • Improved check tickets(MRGSMyComSupport#checkTickets(Context))) for support widget - now the check will work faster and load the support server less.
  • Removed support for the old MyGames Support widget.
  • Removed MRGSMyComSupport#checkTicketsOld(Context) method, which was used for the old widget.
  • Removed MRGSMyComSupport#saveInfo(String, String) method, which was used for the old widget.
  • Removed MRGSMyComSupport#getSecret() method, which was used for the old widget.
  • Removed MRGSMyComSupport#setSecret(String) method, which was used for the old widget.
  • Removed MRGSMyComSupportDialog.Builder#setSecret(String) method, which was used for the old widget.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added supporting Android 12.
  • Updated MyTracker SDK from 3.0.0 to 3.0.1.
  • Updated com.google.gms:google-services from 4.3.5 to 4.3.10.
  • Updated com.huawei.agconnect:agcp from 1.4.1.300 to 1.6.0.300.
  • Updated com.huawei.hms:ads-identifier from 3.4.34.301 to 3.4.39.302.
  • Updated com.huawei.hms:opendevice from 5.0.4.300 to 5.1.1.307.
  • Fixed a rare error that caused mrgsmetrics#addpurchase to lose events that did not have time to go away during the game session after restarting the application.

Advertising module:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Updated androidx.recyclerview:recyclerview from 1.0.0 to 1.2.1.

Analytics module:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.

Authentication module:

  • Increased the number of available browsers for authorization. Previously, only Chrome was used.
  • Removed WebView as one of the ways to login to Facebook, since this method is no longer supported. An error with the code will also be sent to the callback -110 and the description Browser not found if there is no browser on the device.
  • Excluded authorization way via Facebook or Google in MyGames if WebView is used, so these social networks no longer support WebView.
  • Updated Facebook graph api version from 6.0 to 11.0.
  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Updated androidx.browser:browser from 1.0.0 to 1.3.0.
  • Updated com.google.android.gms:play-services-auth from 18.0.0 to 21.0.0.
  • Updated com.google.android.gms:play-services-games from 19.0.0 to 19.2.0.
  • Updated com.vk:androidsdk:2.7.0 from com.vk:android-sdk-core:3.3.0. Attention!!! Now VK authorization is required minSdkVersion="21" (Android 5.0+) to work.
  • Fixed NullPointerException in CustomTabMainActivity when trying to log in via MyGames.

Bank module:

  • Added supporting AppTouch. This feature is enabled automatically and does not require additional settings.
  • Added check for the size of the developer Payload, if it is larger than 255 bytes, an error will be returned when trying to make a payment.
  • Added package visibility for Samsung billing, for Android 11.
  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Updated com.huawei.hms:iap from 5.1.0.300 to 6.1.0.300.
  • Fixed error on collecting the type of currency for Samsung payments for the module MRGSBilling. Previously, they took the code from "79.99$", but this code can be used for different currencies, which is why the statistics were not correct. Now the currency code RUB, EUR, etc will be sent. There is no such error if payments were sent via MRGSMetrics#addPurchase(MRGSPurchaseEvent).

Firebase module:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Updated com.google.firebase:firebase-analytics from 18.0.2 to 19.0.2.

GameCenter module:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Updated androidx.recyclerview:recyclerview from 1.0.0 to 1.2.1.

GDPR module:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.

Notifications module:

  • Now MRGSPushNotification#setCustomViewImage will search for the image not only in drawable but also in mipmap if the image was not in drawable.
  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Updated com.google.firebase:firebase-messaging from 21.0.1 to 22.0.0.
  • Updated com.huawei.hms:push from 5.0.4.302 to 6.1.0.300.

Recommendations module:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.

Showcase module:

  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Updated androidx.recyclerview:recyclerview from 1.0.0 to 1.2.1.
  • Fixed potential memory leaks.

Support module:

  • Added support for VK authorization when opening the support widget.
  • Deprecated an old support widget, and it will be removed in the next release.
  • Deprecated MRGSMyComSupport#getSecret method, and it will be removed by the end of the year.
  • Deprecated MRGSMyComSupport#setSecret method, and it will be removed by the end of the year.
  • Deprecated MRGSMyComSupportDialog.Builder#setSecret method, and it will be removed by the end of the year.
  • Updated androidx.appcompat:appcompat from 1.2.0 to 1.3.1.
  • Fixed potential memory leaks.

Switching to a new support widget

In the next release, we will remove support for the old support widget. The client will no longer need to set the secret and the project ID - the secret is stored on the server, and the projectId will be equal to mrgsAppId. In order to get ready, check the work of the new widget in your project (usually problems arise with the test application, since the projectId is equal to mrgsAppId. This means that there may not be a test project in the support, in which case you need to request its creation)

VK authorization

Now VK authorization requires Android 5.0+ (Api level 21+).

Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class
MRGSSupport module Reason
MRGSMyComSupport#getSecret():String Used for an old Widget
MRGSMyComSupport#setSecret(String) Used for an old Widget
MRGSMyComSupportDialog.Builder#setSecret(String) Used for an old Widget

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Added support for events sending messages in chat and correspondence in the game using MRGSTracker (transferring chat logs according to Yarovaya's law).
  • Added ability to check if the client id was specified correctly for MyGames authorization by checking the integration.

Authentication module:

  • Now the device locale will be transferred to the MyGames authorization in order to change the interface language. The locale will be transmitted if a flag is set in the MRGS remote config.
  • Fixed updating the token in MyGames authorization within one game session (previously, the token was updated only at the start of the application).
  • Fixed possible display of the "follow the link" window in the MyGames authorization if WebView was used.

Bank module:

  • Fixed error INVALID_PARAMETER, errorMessage: This operation duplicates an unresolved request when multiple calls to the isBillingAvailable method for FacebookCloud.

GDPR module:

  • Added support for private links to Privacy policy in GDPR when displaying default/custom HTML with localization. It is enough to register a link to policy in the MRGS admin panel.
  • Fixed crash of java.lang.NullPointerException in COPPA.

Support module:

  • Added support for authorization in the support widget - now the widget has become more secure, and will allow you to link user requests with accounts in social networks. When using the MRGSAuthentication module, authorization will be pulled up automatically.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Updated facebook-gamingservices SDK from 11.0.0 to 11.2.0.
  • Added a limit on the size of unified logs sent in the amount of 128kb.

Advertising module:

  • Fixed an error when checking the hash amount if a non-valid md5 hash came from the server.

GDPR module:

  • Fixed support notch of android for the COPPA dialog.
  • Changed text in the window showing restrictions on the game in COPPA

Notifications module:

  • Fixed a bug with sending local push notifications for Facebook Cloud.

Showcase module:

  • Fixed an error when checking the hash amount if a non-valid md5 hash came from the server.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Fixed a crash IllegalStateException: Can not perform this action after onSaveInstanceState when trying to show the COPPA dialog, if the user minimized the application at the time of launching the dialog.

Notifications module:

  • Fixed a crash when trying to send metrics about receiving push notifications or trying to open the app via push.
  • Fixed a crash when trying to open the app via a local push notification.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService module:

  • Fixed bug when getting application context.
  • Fixed error when trying to get a token for a new network api.

GDPR module:

  • Changed behavior of checking the user's page for COPPA. Now, if it was not possible to get ahead of the user's country by ip address, then the result will be returned that the user does not fall under COPPA.
  • Changed behavior of checking the user's page for COPPA. Now the country is checked only by the ip address.

Support module:

  • Fixed error Class not found when unmarshalling: MyComSupportParams when trying to open MyGames Support on older Samsung devices.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

Authentication module:

Bank module:

  • Added support for Facebook Cloud billing. Learn more

GDPR module:

Push-notifications

The basis for future push notifications in Facebook Cloud has been added. Now this MRGSNotifications module cannot be used until MRGService is initialized.

Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService (base) module:

  • Fixed error setting additional parameters for metrics in the method of the MRGSMetrics#addMetric class.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService (base) module:

  • Added support for a new system for collecting in-game logs/events. Learn more.
  • Changed sending events through MRGSMetrics#adMetric method, now they are sent via the new server api.
  • Updated MyTracker SDK from 2.1.2 to 3.0.0.
  • Fixed error when trying to cast String to MRGSMap when checking integration, if the server did not return response.

Analytics module:

  • Improved payment tracking. Now information on new payments is sent only once, which allows to avoid duplicates in statistics.
  • Updated Appsflyer SDK from 6.2.3 to 6.3.2.

Firebase module:

  • Improved payment tracking. Now information on new payments is sent only once, which allows to avoid duplicates in statistics.

Showcase module:

  • Fixed an error when checking the hash-sum of banners, which affected the display of the banner in the showcase.

Recommendations module:

  • Added support for sending new types of events for the recommendation system (RecSys). For more details see documentation.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

MRGService (base) module:

  • Fixed a problem with the idfa consisting of only zeros for the Huawei store. Now, for more accurate statistics, you need to added com.huawei.hms:open device:<version> library.
  • Added new function MRGSDevice#retrieveGoogleAdvertisingId(Advertising Id Callback) to get GAID.

Analytics module:

  • Added functionality from AppsFlyer for generating links. For more information, see Link generation

Authentication module:

  • Google

    • Fixed login error for target 30+ (Android 11+) due to missing entry <package android:name= "com.google.android.play.games" /> in the SDK manifest file.
    • Fixed an error due to which, at the time of login, an error was always written to the log MRGSGoogleGames getSignInClient no activity attached!!!
  • MyGames

    • Fixed authorization issue if the user has two-factor authentication enabled.

Billing module:

  • Deprecated MRGSBilling#setDelegate(MRGSBillingDelegate). Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx) instead.
  • Deprecated MRGSBilling#getProductsInfo(ArrayList). To request products, you should use newer methods, for example MRGSBilling#requestProductsInfoWithRequest(MRGSBillingEntities.MRGSBankProductsRequest).
  • Deprecated MRGSBillingDelegate.class. User MRGSBillingDelegateEx.class instead.

  • Samsung

    • Fixed error setting developer Payload when calling the function-transaction recovery.

Firebase module:

  • Fixed NullPointerException if the module was added but the Firebase SDK wasn't, then in some cases the module could throw an error.

GDPR module:

  • Changed behavior for the time of sending the GDPR acceptance event, since it requires knowing the MRGS platform to send it. Now this event is sent after initialization of MRGService.
  • Fixed a problem with updating the GDPR version separately for each application. Now for each application, you can specify the GDPR version in the config on the MRGS server.

MyGamesSupport module:

  • Fixed an error for the new widget, due to which the extra_params field was passed to the locale field and was not processed on the server.

Showcase module:

  • Removed a timer that blocked banner clicks if click_time was sent from the server greater than 0.
  • Changed a behavior of sending the number of banner click events for one display of the showcase. Previously, it was possible to send no more than one click event for each banner for one display of the showcase, now there is no such restriction.
Removing @Deprecated classes and methods. End of 2021

We plan to remove methods that have been marked as @Deprecated. In order for you to have time to prepare, we inform about this in advance. in case you need more time, or have other requests, please contact us:

MRGService module Reason
MRGService#onStart(Activity) Not used anymore
MRGService#onStop(Activity) Not used anymore
MRGSMetrics#addPurchase(String, String, String) Use MRGSMetrics#addPurchase(MRGSPurchaseEvent)
MRGSDevice#useOldUDIDMethod() Not used anymore
MRGSDevice#getOpenUDIDOld():String Not used anymore
MRGSAuthentication module Reason
MRGSCredentials() Use MRGSCredential(MRGSAuthenticationNetwork)
MRGSBilling module Reason
MRGSBillingDelegate.class Use MRGSBillingDelegateEx.class
MRGSBilling#setDelegate(MRGSBillingDelegate) Use MRGSBilling#setDelegateEx(MRGSBillingDelegateEx)
MRGSBilling#getProductsInfo(fArrayList) Use MRGSBilling#getProductsInfoWithTypes(ArrayList)
MRGSBilling#closePayment(MRGSPurchaseItem) Use MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)
MRGSGDPR module Reason
All the methods including 'agreementVersion' Use similar methods without the parameter 'agreementVersion'
MRGSMyTarget module Reason
The module well be removed Not supported anymore
MRGSNotifications module Reason
MRGSLocalPushService.class Use MRGSNotificationCenter.class
MRGSPushNotifications.class Use MRGSNotificationCenter.class

Read more about the new features and how to use them in the documentation.


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

In this version:

GDPR module:

  • Fixed a issue in the localization text for the Japanese language.
  • Fixed a bug with text transfer for the Korean language in WebView.
  • Added animation of "clicking" on the GDPR acceptance button in the WebView.
  • Changed behavior of displaying GDPR in WebView. Now GDPR is shown by default without Ad permission.
  • Fixed a bug that allows the server to downgrade the GRDP version on the client. Now the version can only be upgraded.

MyGamesSupport module:

  • Fixed an error of sending the support window closing event if you return to the application by clicking the icon, and the manifest does not have a standard launchMode set for this event.
  • Fixed a bug with requesting the widget version. Now the widget version is requested only once during the session to avoid blocking by the server.

Showcase module:

  • Now you can set the desired screen orientation via the manifest. Learn more.
  • Fixed an error of sending the showcase closing event if you return to the application by clicking the icon, and the manifest for this event is not set to the standard launchMode. Learn more.
  • Fixed a bug with a broken layout when turning the screen.

Removing deprecated methods

We plan to remove methods that have been marked as deprecated. In order for you to have time to prepare, we inform about this in advance. Below are the approximate time frames in which we plan to delete (in case you need more time, or have other requests, please contact us):

  • Old MRGSBilling API (setDelegate, some buyItem, MRGSBillingDelegate and etc.) - end of 2021.
  • Old MRGSNotifications API (class MRGSLocalPushService and etc.) - end of 2021.
  • MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature) - end of 2021.
  • GDPR - methods including agreementVersion (showAgreementFromFile and etc.) - this fall.
  • MRGService.onStart(), MRGService.onStop() and others marked as deprecated - this fall.

Read more about the new features and how to use them in the documentation.


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

In this version:

  • Updated all obfuscation rules for ProGuard/R8. All obfuscation rules are supplied by .aar libraries.
  • Added supporting for targetSdkVersion 30 (Android 11).

Authentication module:

  • Fixed some bugs with incorrect switching of threads when returning the result from the Android.main thread to the Unity.main thread.

  • Facebook

    • Fixed bug when trying to invite friends.

Billing module:

  • Amazon
    • Updated In-app purchases SDK from 2.0.61 to 2.0.76.
    • Added supporting for the new MRGSBilling API, which was previously added for Google, Huawei, and Samsung but was not added for Amazon.

Showcase module:

  • Fixed a layout issue for screens with sw320dp width.

Removing deprecated methods

We plan to remove methods that have been marked as deprecated. In order for you to have time to prepare, we inform about this in advance. Below are the approximate time frames in which we plan to delete (in case you need more time, or have other requests, please contact us):

  • Old MRGSBilling API (setDelegate, some buyItem, MRGSBillingDelegate and etc.) - end of 2021.
  • Old MRGSNotifications API (class MRGSLocalPushService and etc.) - end of 2021.
  • MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature) - end of 2021.
  • GDPR - methods including agreementVersion (showAgreementFromFile and etc.) - this fall.
  • MRGService.onStart(), MRGService.onStop() and others marked as deprecated - this fall.

Read more about the new features and how to use them in the documentation.


v4.6.0🔗

In this version:

MRGService (core) module:

  • Fixed bug that caused integration check, now if the platform could not be identified, it will be considered that the platform is Android. The platform is determined by the type of billing set. See Parameter setup.

Billing module:

  • Google
    • Added a new MRGSBankPurchaseRequest.setObfuscatedAccountId(String) method for supporting of Karaganda Fraud Prevention API. Learn more.
    • Added a new MRGSBankPurchaseRequest.setObfuscatedProfileId(String) method for supporting of Karaganda Fraud Prevention API. Learn more.
    • Fixed a rare bug due to premature caching of the subscription before it is actually closed(consumed): subscription purchase on the client -> validation on the server -> result caching on the client -> subscription closure (consumption) on the client. If Google Billing threw an error at the time of closing the subscription, it could cause the subscription to hang, which led to a refund to the user. Now the subscription will be cached only after it is successfully closed(consumed): subscription purchase -> validation -> subscription closure (consumption) -> result caching.

Firebase module:

  • Added new events about the user's total time spent in the app: 30 minutes (mrgs_cumulative_session_time_30min), 1 hour (mrgs_cumulative_session_time_60min), 2 hours (mrgs_cumulative_session_time_120min) and 3 hours (mrgs_cumulative_session_time_180min). Events will only occur once, when the user reaches the appropriate time. For more information, see Sending events

Showcase module:

  • Added support for direct links to the Google Play Store. Now, if the banner has a direct link to the Google Play Store, then the transition to the Google Play Store will be carried out without the mediation of the browser.

Defining the platform

If you plan to use a different store (not Google play), then you must also set billing, even if you don't use the MRGSBilling module. If you don't set billing, this may cause the entire SDK to work incorrectly. For more information on how to set billing , see documentation.

Removing deprecated methods

We plan to remove methods that have been marked as deprecated. In order for you to have time to prepare, we inform about this in advance. Below are the approximate time frames in which we plan to delete (in case you need more time, or have other requests, please contact us):

  • Old MRGSBilling API (setDelegate, some buyItem, MRGSBillingDelegate and etc.) - end of 2021.
  • Old MRGSNotifications API (class MRGSLocalPushService and etc.) - end of 2021.
  • MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature) - end of 2021.
  • GDPR - methods including agreementVersion (showAgreementFromFile and etc.) - this fall.
  • MRGService.onStart(), MRGService.onStop() and others marked as deprecated - this fall.

Read more about the new features and how to use them in the documentation.


v4.5.4🔗

In this version:

MRGService (core) module:

  • Fixed an issue where an incorrect platform for Amazon, Huawei, and Samsung was passed to the server during integration verification, resulting in incorrect platform verification recommendations.
  • Fixed an issue where the integration check did not display information on the MMS SDK settings if the SDK was configured via code instead of xml config.
  • Improved integration validation. Now the integration check will output information on the enabled modules.
  • Improved integration validation. Now the integration check will output more information about errors that occurred during module initialization.

Authentication module:

  • MyGames
    • Fixed an issue where MRGSAuthentication.getCurrentUser() could return data on a user without MRGSAuthenticationNetwork.

Billing module:

  • Google
    • Updated Google Billing SDK from 2.0.3 to 3.0.3.

MyGamesSupport module:

  • Added new MRGSMyComSupport.getMyComSupport().setCustomUserId(String) method, in case you need to open a support with a different userId than MRGSUsers.instance().setUserId(String).

Notifications module:

  • Fixed a bug that did not display a notification icon that was set at the time of initialization of the MRGS SDK, if it was put through the code instead of the xml config.

Read more about the new features and how to use them in the documentation.


v4.5.3🔗

In this version:

MRGService (core) module:

  • Removed MRGSLocationService class - responsible for determining the user's location, as this class has not been performing its functionality for a long time.
  • Removed MRGSPackageRemoveReceiver class - responsible for tracking deleted apps from the device, since this class has not been performing its functionality for a long time.
  • Removed MRGService.MRGServiceNotInitializedException class - which was used for exceptions related to incorrect SDK initialization (not used for a long time).
  • Removed MRGService.instance().getContext() method - this method was deprecated for a long time and led to a memory leak.
  • Fixed an issue where two instances of the MRGSMyTracker class could exist instead of one.

Billing module:

  • Removed <uses-permission android:name="com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR" /> from manifest, since the billing of bazaar is not supported for a long time.

MyGamesSupport module:

  • Fixed a bug with switching to full-screen mode.
  • Fixed a bug that allows you to enable a dark theme through the developer options for a new widget.

Showcase module:

  • Fixed a bug with a blinking close button of showcase.
  • Improved speed of loading banners when opening the showcase.
  • Improved banner rendering quality.

Read more about the new features and how to use them in the documentation.


v4.5.2🔗

In this version:

MyGamesSupport module:

  • Fixed error IllegalStateException when trying to display Fragment after onSaveInstanceState.
  • Fixed error NullPointerException when trying to open a support while MyGamesSupport module is not yet initialized.

Read more about the new features and how to use them in the documentation.


v4.5.1🔗

In this version:

MRGService (core) module:

  • Updated MyTracker SDK from 2.1.0 to 2.1.2. Learn more in documentation.
  • Added new MRGSMyTracker.getInstanceId(Context context, Consumer<String>) method to get a unique identifier for S2S events sending. Learn more in documentation.

Gradle error: Failed to resolve: com.my.tracker:mytracker-sdk:2.1.2

If you encounter this error, then add a new repository in your gradle file:

allprojects {
    repositories {
        // other repositories
        mavenCentral()
    }
}

Advertising module:

  • Fixed incorrect behavior. If an error occurred while loading the content, LoadDelegate.onAdvertisingLoadingError was never called.

Billing module:

  • Google
    • Fixed issue with subscription caching. This led to problems with syncing with the server and the server could not auto-renew subscriptions correctly. After upgrading to the new version of the SDK, all current/active subscriptions will be sent to the server (unless transaction recovery is done or you have a flank set to auto-restore transactions). Then the active subscriptions will be synchronized with the server once every 10 days (if only a transaction recovery is made or you have the flank set to auto-restore transactions).
    • Fixed an issue with logging errors from Google Billing. Since errors don't always have a description of the cause, the error code will be sent to the cause location. This should help you better understand the problems that occur during payments. Errors are also logged in the MRGS section of the Crashes.

MyGamesSupport module:

  • Fixed the NetworkOnMainThreadException error when trying to request the number of unread messages from the old widget. Because of this error, it always returned false for TicketListener and 0 for TicketCallback.
  • Added logging of widget errors to MRGSMetrics (metricID -18)

Read more about the new features and how to use them in the documentation.


v4.5.0🔗

In this version:

MRGService (core) module:

  • Fixed a rare error NoSuchElementException in MRGSUsers.setUserId() when calling the MRGSUsers.setUserId() and MRGSUsers.logoutCurrentUser() methods a the same time.
  • Deprecated the MRGSMetrics.addPurchase(skuDetails, purchaseData, dataSignature) method.
  • Added an ability to send payment metrics for Amazon, Huawei, and Samsung stores via MRGSMetrics.addPurchase(MRGSPurchaseEvent). Learn more in documentation.
  • Added a new MRGSMyTracker.getInstance().setLaunchTimeout(int seconds) method. Learn more in documentation

Advertising module:

  • Fixed a rare error IllegalStateException when trying to view ads.
  • Fixed a rare error MissingWebViewPackageException when trying to view ads.
  • Removed supporting of Banner carousel (roller).

Analytics module:

  • Updated AppsFlyer SDK from 6.1.1 to 6.2.3.
  • Added an ability to disable payment tracking. Learn more in documentation
  • Added the ability to duplicate sending events from MRGSMetrics(sent via MRGSMetrics.addMetric()), into AppsFlyer. Learn more in documentation

Billing module:

  • Samsung
    • Fixed error NullPointerException when the user canceled the payment.

MyGamesSupport module:

  • Added support for a new widget. Learn more in documentation.
  • Added a new MRGSMyComSupport.checkTickets(Context, MRGSMyComSupport.TicketCallback) method which can return the number of unread messages or an error.
  • Fixed default localization of the dialog when requesting storage access permissions.

Showcase module:

Read more about the new features and how to use them in the documentation.


v4.4.4🔗

In this version:

Analytics module:

  • Fixed a bug with incorrect initialization of Appsflyer version 6+, which led to incorrect sending of installation events at the time of application launch.
  • Passing the customerUserID parameter to AppsFlyer (we put the device IDFA in this field) now happens before the installation event is sent, so this parameter will appear in the raw data and in the installation events (on iOS we do the same).

Read more about the new features and how to use them in the documentation.


v4.4.3🔗

In this version:

Advertising module:

  • Added additional logs to identify potential problems.

MyGamesSupport module:

  • Fixed NullPointerException when calling the checkTickets method if the module was not initialized.

Read more about the new features and how to use them in the documentation.


v4.4.2🔗

In this version:

MRGService (core) module:

  • Fixed crash java.util.ConcurrentModificationException when checking integration.

Read more about the new features and how to use them in the documentation.


v4.4.1🔗

In this version:

MRGService (core) module:

  • Fixed the NullPointerException error when an Activity came as null.
  • Fixed error org.in JSON.JSONException format: want to earn from 1.

Authentication module:

  • GoogleGames
    • Fixed issue with showing the window of all the user's achievements.

Analytics module:

  • Updated Appsfalyer SDK updated from 5.4.1 to 6.1.1.

Billing module:

  • Fixed issue with resaving developer Payload. When a purchase of the same product was made with and without a payload, the second purchase received a payload from the first product.
  • Fixed issue with double validation when the same product was sent for validation when purchasing an item and then calling transaction recovery. This led to a double call to the callback about the payment being made by the user.

  • Google

    • Fixed crash of ConcurrentModificationException when restoring transactions.
  • Huawei

    • Fixed crash of ConcurrentModificationException when restoring transactions.
    • Fixed an issue where an error when restoring transactions went to the collection for getting information about products.
    • Fixed issue with showing the store window when trying to buy an item.

Firebase module:

  • Updated FirebaseAnalytics SDK from 17.2.1 to 18.0.1.
  • The new structure the scene. Now you will receive additional parameters such as: "currency_local" and "price_local" - the local amount and the currency in which the payment was made. "is_first_payment" - whether this payment is the first one. "value" and "currency" - will now always be in USD.

GDPR module:

  • Fixed issue with sending the open GDPR metric when using the custom GDPR window.
  • We no longer automatically accept the GDPR if the user does not fall under it.

Notifications module:

  • Updated Firebase Messaging SDK from 20.0.0 to 21.0.1.

Google service plugin(com.google.gms:google-services) updated from 3.2.1 to 4.3.4

If you have any problems with google-service.json, update it from the Firebase console, as the format has changed in it.


v4.4.0🔗

In this version:

MRGService (core) module::

  • Fixed an error when initializing MRGService when null from ActivityLifecycleCallbacks was passed instead of Activity.
  • Added support for Huawei Identity Kit. Learn more.
  • Fixed an error in IntegrationCheck when checking for billing.

Authentication module:

  • Facebook

    • Fixed rare crash Class not found when unmarshalling: LoginResultReceiver when trying to log in.
  • MyGames

    • Fixed a 403 error when trying to log in via Google.
  • VK

    • Fixed an issue when callback received data without scopes.

Billing module:

  • Added a new async method MRGSBilling.isBillingAvailable(). This method will be useful for billing services such as Google and Huawei, as they do not always allow you to find out their status in a synchronous request.

  • Google

    • Fixed an incorrect behavior where all errors when requesting products were passed to MRGSBillingDelegateEx.onReceiveProductsResponce(). Errors are now passed to MRGSBillingDelegateEx.onReceiveProductsError().
    • Fixed a memory leak where requests were added to the queue for execution if billing was unavailable, and were not deleted after they were executed.
  • Huawei

MyGamesSupport module:

  • Fixed an issue with missing default text in the dialog when requesting permissions.

Notifications module:

Huawei Store

Please note that you will also need to make some changes to the Analytics module.


v4.3.4🔗

In this version:

Billing module:

  • Google
    • Fixed the NoSuchElementException error when canceling a purchase if the developerPayload was not passed.

v4.3.4🔗

In this version:

MRGService module (core):

  • Updated MyTracker to version 2.1.0.
  • Fixed the problem with the old encryption.

Advertising module:

  • Fixed ActivityNotFoundException crash when trying to click on an ad if the device doesn't have a browser.

Authentication module:

  • MyGames

    • Fixed displaying the app name in the authorization window (the ClientID was shown earlier, now the application name visible to the user is shown).
    • Fixed error with a white screen when there is an error with ssl. Now the callback will receive an error response and then close the authorization window.
  • Added new MRGSCredentials.getSocialId() method which returns the type of the current social network.

  • Fixed numbers of return values of MRGSAuthenticationNetwork due to a discrepancy between these values on:
    • Unknown(-1) -> Unknown(0)
    • MRGSAuthenticationNetworkMyGames(13) -> MRGSAuthenticationNetworkMyGames(14)
    • MRGSAuthenticationNetworkAmazon(14) -> MRGSAuthenticationNetworkAmazon(13)

Pay special attention to this if you use these values via the getValue() method

v4.3.3🔗

In this version:

Module Billing:

  • Google
    • Fixed ANR when connecting to the google billing service.

v4.3.2🔗

In this version:

Authentication module:

  • Fully redesigned MyGames authorization. Now ClientSecret and RedirectURL are not used, which makes authorization more secure, and also allows you to get more information about the user, for example, name, surname, date of birth, etc. Added the ability to create a MyGames application via the MRGS website (previously you had to put a task on the project SWA).

Important

Since the work with MyGames authorization now occurs through MRGS, the old settings will not work, you need to re-create the MyGames application through MRGS, register a new ClientID on the clients, and also change the redirectURL registered in Info.plist on iOS. For more information about a new approach to working with MyGames authorization, see in the MyGames documentation

Module Billing:

  • Added the getProductIdentifier() method to the MRGSBankPurchaseResult class of the new bank delegate. This method returns the identifier of the purchasing/purchased product, while getPurchaseItem() can return null if the product was not loaded, for example.

  • Google

    • Fixed a bug with returning empty productId/sku if the user canceled the payment (changed his mind about buying and left the purchase screen).
    • Fixed an issue with reconnecting the payment service during the game, which led to blocking the request for products and making payments.

v4.3.1🔗

In this version:

Module MRGService (base):

  • Fixed an error when calling auxiliary functions related to the absence of Context before MRGService initialization was called.
  • Updated the MyTracker SDK dependency to version 2.0.10.
  • Improved integration check.

Module Billing:

  • Samsung
    • Fixed an issue with calling MRGSBillingDelegateEx when the user canceled a payment.

Module MRGSFirebaseModule

  • Fixed an error when trying to cast paymentAmount to double when it is actually an integer.

Module GDPR/CCPA:

  • Added some logs for CCPA.

Module MRGSNotifications

  • Fixed incorrect display of the remote push notification title.
  • Fixed an error creating a default channel and group for local push notifications.

v4.3.0🔗

In this version:

Module MRGService (base):

  • Added a method to open the system settings window of the application. It will be useful when working with notifications and IDFA requests. More details here
  • Improved system for tracking the duration of sessions.
  • Deprecated onStart(Activity activity) and onStop(Activity activity) methods. They no longer used and will be removed in future releases.
  • Extended the integration verification method. Now we will also check all parameters, flags, and keys on the MRGS server, and you will immediately find out about application configuration errors in the client logs, namely, correct MyTracker keys, current payment settings, validity of notification certificates, and payment verification keys.

Module Advertising:

  • Improved tracking of impression history, this way, there will be no errors with repeated display of ads that have already been viewed.
  • Changed the approach to checking ad hashes to reduce the load on MRGS servers.

Module Analytics:

  • Added getAppsFlyerId method to get a unique AppsFlyer ID.
  • Removed AppsFlyerSDK.aar dependency, now you should add the dependency in the own gradle file independently: com.appsflyer:af-android-sdk:5.4.3

Module Authentication:

  • Fixed authorization error in MyGames (earlier the token was invalid on some devices).

Module Billing:

  • Samsung
    • Fixed the problem with developerPayload.
    • Fixed the problem with MRGSBillingDelegate and MRGSBillingDelegateEx at the start of billing initialization.

Module Firebase:

  • Added some events in Firebase, sent for any purchase over $ 5,10,50,100. Read more here.
  • Added field VALUE in the event of purchases at Firebase, they need to purchase advertising.

Module GDPR/CCPA:

  • The checkIfUserGetsUnderGDPR method now require Activity instead Context.
  • Removed getAgreementVersion and setAgreementVersion(int version)methods to switch projects to the correct flow of work with GDPR. The correct flow is described in the documentation
  • All methods for working with GDPR that accept the agreement version are marked as @Deprecated. Added new methods similar to the old ones, but without the agreement version. Please translate the work to them.
  • Improved statistics in GDPR, added statistics for displaying agreements to count those users who did not agree to the GDPR and left the app.
  • Fixed the behavior of methods for CCPA - now getting a region does not depend on the GDPR methods called.
  • Fixed a discrepancy in the behavior of methods for CCPA between iOS and Android.

Module Notifications:

  • Added MRGSPushNotification.getVisibility and MRGSPushNotification.setVisibility methods to display notifications on LockScreen in Secure mode. Learn more
  • Classes MRGSPushNotifications and MRGSLocalPushService marked as @Deprecated. Instead, Use the new class MRGSNotificationCenter.
  • The new interface MRGSNotificationCenter is a union of the two old ones with a small difference in methods:
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)

Module Support:

  • w Feedback` method for displaying the feedback window in My Games Support (previously, you could open it using a category, but with a separate method, it will be easier and more reliable to open it) Read more here

v4.2.5🔗

In this version:

  • CCPA Support. Read more in the documentation CCPA
  • When authoring via VK, MRGS will report vkid to MyTracker
  • The MRGSGDPR.shouldShowGDPRForVersion method now requires Activity instead of Context

v4.2.4🔗

In this version:

We changed the bank API:

Now the entire API of our bank is standardized on all three platforms, and it has become more user-friendly and more functional.

Of the major changes:

  • A new class MRGSBankProductsRequest has appeared in which using the add methods you can add a product or an array of products of a certain type (product types have now become an enum MRGSBankProductType). This request is then passed to the new requestProductsInfo method.
  • A new class MRGSBankPurchaseRequest has appeared which allows you to more accurately configure the parameters for starting a payment
  • Added a method for starting a purchase, now they accept either a product ID, or an ID and payload, or a new class MRGSBankPurchaseRequest.

Separately about the delegate:

  • Added a completely new delegate MRGSBankDelegateEx, now it returns maximum information about the purchase or download of products.
  • To load products, there are now two callbacks - didReceiveProductsResponce and didReceiveProductsError, which receive an object of the new class MRGSBankProductsResponce, containing information about valid products of type MRGSBankProduct, as well as an array of identifiers of invalid products, and an error object in case if it happened.
  • Added 4 types of callbacks for transaction results, namely didReceiveSucessfullPurchase, didReceiveFailedPurchase, didReceivePendingPurchase, didReceiveCancelledPurchase. Each of them accepts an object of the MRGSBankPurchaseResult class, describing the result of the purchase, namely, the transaction (MRGSBankTransaction), product (MRGSBankTransaction), payload and an error with a code and description, if any. MRGSBankTransaction describes the transaction in detail, includes an identifier, additional information about the transaction for each platform (whether it was restored, date, original transaction, selected discounts, and more).
  • didReceivePendingPurchase - Protocol method, called in case of a pending payment. This can happen if, when making a purchase, a child needs to ask permission to purchase from a parent, or another option - during validation, the Internet disappeared, and a second attempt to validate will be later. Such events do not require additional actions on the part of the developers, they serve only to alert the user.
  • didReceiveCancelledPurchase - Protocol method, called when the user cancels the payment.
  • There was a callback didCompleteTransactionsRestore, which is called when the process of restoring previously purchased non-consumable purchases and active subscriptions is over (Doesn't work in Samsung Store).

Important - we left the old API, we just marked it as deprecated. We will support it for some time, but we advise you to move to a new interface, especially since the move should be simple, since the basic logic of work has not changed. We did not change the bank itself, only the external interface has changed.

Read more about using the new API in the bank documentation - https://mrgs.astrum.team/Doc/en/payments/integration/base/

  • Also fixed the error of incorrect appearance of some types of GDPR with custom layout (in particular, incorrect display of the combo-box)

v4.2.3🔗

  • Now, when sending registration and login events to MyTracker, the user set for us is automatically added to these events (done, since MyTracker changed the api for sending these events)
  • Updated MyTracker up to 2.0.9

v4.2.2🔗

  • Fixed bug in the authorization module. When logging in to Google Games, sometimes, the first time the login function is called, an error is returned, and the second time the login is done correctly.

v4.2.1🔗

In this version:

Added new module:

A new module MRGSRecommendations has been added to work with the internal RecSys system to get predictions about which product the user is most likely to want to buy. At the moment, the function works in beta mode, and the module only allows you to send the necessary events for the system to MRGS. Based on the test results, the module will be expanded and supplemented with new features.

  • Generation mode session_id is changed. We tried to make its generation more unique.Now session will expire in 5 minutes after application was minimized.
  • Added an API to enable/disable both local and server notifications. Read more about this in the advanced notification documentation.
  • Forwarded MyTracker delegate to receive attribution data (deffered deeplink)
  • The operation of the checkIntegration method has been fixed, now inside it has become asynchronous, and more accurately identifies errors associated with incorrect configuration of appId/Secret and network requests.
  • Added automatic sending of data in Firebase on the first payment made by the user
  • The checkIntegration method again returns void, not string, but for projects that want to get the results of integration checks not only in the log, but also as a string, we added another variation of the method with the callback.
  • Now, when contacting MyGames support, user can attach a video file to the ticket
  • Increased version number of the GDPR agreement

Also fixed bugs

  • Fixed rare crash in pilligrim roller widget
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)

v4.2.0🔗

In this version:

Added module MRGSAuthentication (Authorization) with the following networks included in it:

  • Facebook
  • VKontakte
  • Amazon
  • MyGames
  • Google Play Games

We remind you that the MRGSAuthentication module will help you quickly implement authorization in popular services and social networks. The main advantage is universal API - all our classes implement a set of basic authorization methods. Thus, you can configure flow authorization using an abstract object of a social network, without being tied to a specific service.

Please note that the Facebook module works regardless of the native SDK, but nevertheless can pull out authorization data from it, you can even go to our module from projects that use the native SDK now. It is also worth noting that due to the addition of new social networks, new dependencies on VKSdk and AmazonSDK have been added

For more information about the implementation of each of the modules and their use read the documentation in the corresponding section. Also, those projects that used MCSocial can now upgrade to a new authorization module.

In addition, there are some changes:

  • Method checkIntegration of class MRGSIntegrationCheck now returns string, not void, as before. (Otherwise, the behavior has not changed)
  • Added new automatic metrics in Firebase - Purchase14D and Purchase90D in case the purchase was made in the first 14 and 90 days, respectively.
  • Added sending payment information to AppsFlyer in the Samsung (Galaxy) Store
  • Updated MyTracker to version 2.0.7

Changes in GDPR!

Now MRGS itself is engaged in tracking the version of the agreement and updating it. Therefore, starting with this release, the setAgreementVersion method and all parameters of the same name passed to the methods will be ignored, and will be removed altogether in future versions.

Automatic updating of the version will allow showing the amended agreement to all users without the need to release a version, so you will no longer need to keep track of the current version of the agreement.

In the near future jur. the department will release a policy update, so it’s best if you ** release the new MRGS version as quickly as possible ** so that users can see a message about updating documents as soon as they are updated.

  • The class for working with GDPR has a new method - getAgreementTime (). It returns the current agreement date received from the server, or 0 if this information could not be obtained.

Read more about the new features and their use in the documentation.

v4.1.14🔗

Fixed error displaying incorrect text in custom server notifications

v4.1.13🔗

In this version, the logic for sending a user to MyTracker has been changed so that user bundles in 1Link are formed more correctly.

v4.1.12🔗

In this version, the url for our api has been changed due to moving to a new domain

  • When creating a channel for notifications, you can now specify the priority (Importance property)
  • Fixed a problem when a delegate was not always called about a notification
  • For server notifications, you can now specify vibrate: false in json params to disable the vibration signal

Example:

{
   "icon" : "notification_small",
   "largeIcon" : "notification_large",
   "vibrate" : false
}
  • If you specify the line TITLE as text in a custom server notification, then the text from the Title field of the notification will be substituted into this field; if you specify the line MESSAGE, the text from the Message field will be substituted

Example:

{
   "custom_notification" : {
       "layout" : "notification_custom",
       "texts" : {"title" : "$TITLE$", "text" : "$MESSAGE$"},
       "images" : {"back" : "castle"}
   },
   "icon" : "notification_small",
   "largeIcon" : "notification_large"
}

v4.1.11🔗

  • Fixed bug with setting html5Supported flag to true by default

v4.1.10🔗

  • Fixed crash in module MRGSNotifications, class MRGSLocalPushService
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.toString()' on a null object eference

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 (Source unknown:6)
java.lang.Thread.run (Thread.java:929)

v4.1.9🔗

  • Fixed duplicate message error in group notifications.
  • If the channel for notifications has already been created, then it will not be re-created when triggering the server notifications.

v4.1.8🔗

  • Updated MyTracker to version 2.0.1.
  • Moved the call to the MRGSBilling.restoreTransaction method into a separate stream, which should remove ANR messages in the Google Play console.
  • Moved the sending of the Piligrim roller display event. Now the event will be sent when the first banner is displayed.
  • Fixed a crash if MRGS GameCenter opens before initializing MRGS.
  • Fixed a rare crash in the GDPR window.

v4.1.7🔗

  • Fixed a bug that could lead to a crash if the Piligrim advertisement opens before MRGS initialization.
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🔗

  • Fixed a bug which in some cases could have lead to ANR when initializing 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🔗

  • Updated MyTracker to version 2.0.0.

v4.1.4🔗

  • MRGS now always uses the HTTPS protocol for data transfer. You can disable the android:usesCleartextTraffic flag in AndroidManifest.xml.
  • Added support for localization of GDPR. To set the desired language, before showing the agreement, call the setLacalizationLanguage method and pass the language designation in the ISO-639-1 format. You can get a list of available languages by calling the getSupportedLocalizations method.
  • Added support for PlayableAds in Piligrim.
  • Improved the display of StaticsAds and VideoAds in Piligrim.
  • Removed the purchase event sending to AppsFlyer. Now only the af_purchase event will be sent.
  • Updated AppsFlyer to version 5.1.0.
  • Added the setBufferingPeriod, setForcingPeriod and flush methods for MRGSMyTracker class.
  • Updated MyTracker to version 1.5.14.

v4.1.3🔗

  • Fixed a bug in billing that did not allow prcessing a payment with an error - Billing [MRGS] BuyItem: current user is unknown! Payment is not available!

v4.1.2🔗

  • Reduced the number of repeated requests to the MRGS server in case of subscription recovery.
  • Redesigned the user API.
  • Fixed a possible crash in 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)

New user API!

There is no more need to register and then authorize the user. We no longer need to build a complex logic around a simple user installation. Now it is (finally) enough to call the setUserId method. However, for the correct data collection on the MyTracker side, you must call two methods - trackRegistrationEvent and trackLoginEvent for the class MRGSMyTracker. Please note that the old API is completely removed from the SDK. Why did we do this? As of now, all registration/authorization events are incorrectly defined in MyTracker, with custom event names, which complicates the work of managers. Keeping the old methods could not guarantee the correct transition of projects to work with users, and the correct sending of data. Since the new API is extremely simple, it will be very easy to switch to it and implement a more correct tracking of user-related events.


v4.1.1🔗

  • Fixed display of GDPR on phones with notches.
  • Fixed incorrect GDPR behavior when replacing SSL certificate.
  • Changed the distance between the banners in the Piligrim roller.

v4.1.0🔗

  • MRGS now requires androidx libraries. Read the migration guide carefully!
  • Updated MyTracker to version 1.5.12.

v4.0.11🔗

  • Temporarily disabled the sending of logs to the server.

v4.0.10🔗

  • Reduced the number of calls to the MRGS server in case of a Piligrim loading error.

v4.0.9🔗

  • Fixed a bug with returning an empty list of products upon the first request for products from the bank.

v4.0.8🔗

  • Fixed a crash in Google Billing on the line:
MRGSGoogleBillginV2.java:648
  • URL validation in Piligrim campaigns.
  • Added three countries to GDPR - Norway, Iceland, Liechtenstein.

v4.0.7🔗

  • Fixed incorrect display of the Piligrim.
  • Added the MRGService.checkIntegration integration validation method.

v4.0.6🔗

  • New bank for payments on the Google Play Store based on the Google Billing Library 2.0.3.

Add the dependency to build.gradle

implementation 'com.android.billingclient:billing:2.0.3'

Getting in-app products from outside of the app Now on Android platform, users can get an in-app product from outside of the application. The first method to do that is to enter the promo code on Google Play Details. The second method is pre-registration (pre-purchase) of your application on Google Play (if you have set up a bonus for pre-registration) More

In order for the user to receive the reward as quickly as possible, you must call the restoreTransaction() method on the MRGSBilling class. Google recommends calling this method when you deploy the application. Remember that this method will only work correctly if you have already downloaded the list of products from Google Play using the getProductsInfoWithTypes method.

To activate a promo code inside the application, call the method:

public void redeemPromoCode(promocode)

Pending purchases
Added support for pending purchases. After the user has started the purchase process and entered the "pending" state, the purchaseIsPending method of the MRGSBillingDelegate interface will be called. As soon as the user pays for the purchase, the purchaseComplete method will be called in the application. If the application was closed at this point, you must call the restoreTransaction method upon the next launch More


v4.0.5🔗

  • Fixed the bug of sending unverified payments to AppsFlyer.

v4.0.4🔗

  • Fixed the error with incorrect processing of the MRGS server connection protocol selection setting.
  • The restoreReferer method has been added to the MRGSBroadcastReceiver class, by calling which you can get INSTALL_REFERER with which the application was installed.

v4.0.3🔗

  • MRGS will automatically switch the http/https protocol depending on the server settings during load testng .
  • Fixed a bug where, after closing the MyComSupport window, the Navigation Bar was not disappearing.

v4.0.1🔗

  • Fixed the bug of incorrect generation of OpenUDID.
  • Fixed the bug of incorrect "consumption" of goods when buying from the Samsung Store.

v4.0.0🔗

Please read the migration guide! It is located inside the documentation on the website Migration guide

  • MRGS is now split into several libraries. If your project does not use all the features of MRGS, please see the documentation. It indicates which functionality requires a specific library. Maybe you can remove something. For example, only a few projects need MRGSGameCenter.aar.
  • Added Firebase analytics. If you send the MRGSAnalytics.sendEvent()event, in addition to AppsFlyer, it will go to Firebase as well. You can it to AppsFlyer or Firebase separately, for this you need to call the MRGSAnalytics.getAppsFlyer() and MRGSAnalytics.getFirebase() methods.

  • Important! Events Purchases1D, Purchases7D, Purchases28D are dispatched to Firebase automatically. If you send them from your project, remove those to avoid duplication.

  • Updated Samsung Billing API to version 5.0. To connect Samsung Billing, do not forget to add the IAPHelper.aar file (from the libs directory in the archive) to your project.

v3.8.137🔗

  • Support for notification channels setting on Android 8.
  • Fixed a possible crash upon quickly closing the application before showing the GDPR.
  • Fixed a crash when attaching the MyComSupport file on device model CHUWI Hi10 pro.
  • The scheme of video impression tracking in the Piligrim has changed. Now information about impressions is sent earlier (in the same way as for the main video grids such as IronSource, etc.). This is done in order to track impression in the same way and reduce the time for issuing rewards for viewing.

v3.8.136🔗

  • Disabled the old Google Play Services version verification API
  • Cross-promo slider should now display correctly on Samsung S10e

v3.8.135🔗

  • Now the serverTime method returns the time correctly. After minimizing the application, the time is reset. At the next request to the MRGS server, the time will be set again.

v3.8.134🔗

  • Fixed a bug in the new GDPR API, when after calling the setUserHasAcceptedAgreementWithVersion function, the version of the agreement was not saved.
  • Added automatic sending of the event about user registration in myTracker, so that projects can count unique users and installations.
  • Now you can show your custom interface for GDPR. You no longer have to bother with HTML, its download speed and layout. We have added three new methods: two for finding out if the user is eligible for GDPR, whether he needs to see the agreement, and the third - to notify us of the agreement having been accepted. Read more about this feature in the GDPR documentation.

v3.8.132🔗

  • Fixed an incorrect file name error when attaching images from gallery to MyComSupport tickets on Google Pixel2.
  • The Piligrim static banner now has semi-transparent background.

v3.8.131🔗

  • IMPORTANT! Fixed the error with attachments in MyComSupport when the attached files would "lose" their extension. Because of this, the files displayed incorrectly in the MyComSupport admin panel.
  • Updated MyTracker to version 1.5.6, update your build.gradle file:
dependencies {
    implementation 'com.my.tracker:mytracker-sdk:1.5.6'
}

v3.8.130🔗

  • Fixed a bug where some files could not be attached to the a MyCom Support ticket with the error "file is too large".
  • Fixed a possible crash during initialization of MRGS Advertising (Piligrim) on smartphones without WebView.

v3.8.129🔗

  • MRGS transferred from the Apache HttpClient to the UrlConnection. You can now remove all dependencies from org.apache.httpcomponents and the line uuseLibrary 'org.apache.http.legacy' from build.gradle.

v3.8.128🔗

  • Removed rewarded products from GoogleBilling! And BillingAPI version downgraded from version 6 to version 3.

v3.8.127🔗

  • Fixed the problem of generating a signature for requests to MyComSupport. This error could have lead to the window with MyComSupport not opening.

v3.8.126🔗

  • MRGSGDPR now uses a real, not fake, address as baseurl when opening html from a file, which should fix the problem with displaying GDPR in certain countries.
  • Removed the callback in GoogleBillingActivity when minimizing the application.

v3.8.124🔗

  • MRGS automatically sets the customUserId field of MyTracker when authorizing a user and launching the application.
  • An authorizeUser event is now sent when authorizing a user in MyTracker.

v3.8.122🔗

  • Fixed a Piligrim bug with the banner being incorrectly rotated on Android 8.

v3.8.121🔗

  • Text metrics. Previously, you could send MRGS metrics consisting of only numeric values, now you can send metrics with a text key. They will be automatically created in the admin panel of MRGS.
  • MRGSMyTracker. We made a wrapper for sending events directly to MyTracker. Now if you need to send a custom event directly to MyTracker, bypassing MRGS, you can call the method MRGService.instance().getMyTracker().trackEvent(eventname, params).
  • Piligrim Metrics. Now you can observe the exact picture of user behavior when viewing ads. 4 types of events are now sent to our server: a crash occurred during a viewing, the user closed the application while watching ads, an error loading campaign, an error checking the hash of the campaign. Thus, the statistics will become more understandable.
  • Custom server push notifications. Now you can specify your notification markup in server push, if it is present in the resources, as well as for local notifications. To do this, in param you need to specify JSON of the following format:
{
    "custom_notification" : {
        "layout" : "<resource layout notification name>",
        "texts" : {"<TextView name inside of layout>" : "<Text line>", "<TextView name inside of layout>" : "<Text line>"},
        "image" : {"<ImageView name inside of layout>" : "<Name of drawable resource with picture>", "<ImageView name inside of layout>" : "<Name of drawable resource with picture>"}
    }
}

Example:

{
    "custom_notification" : {
        "layout" : "evo_custom_notification",
        "texts" : {"text_view1" : "Title", "text_view2" : "Message"},
        "image" : {"image_view1" : "blake_image", "image_view2" : "pilot_blade"}
    }
}
  • Fixed a bug where in the custom push for one notification a counter "2" was immidiately displayed.

v3.8.116🔗

  • Fixed a bug in the Piligrim when, when calling the canShowContent() method while no files were present, a request with information about the error could be sent to the server multiple times.

v3.8.115🔗

  • Fixed a bug with callback not coming to delegate if the user refused to make a payment.

v3.8.114🔗

  • Added sending metrics in billing.
  • The flush() method of MyTracker is called after launching the application to send launch metrics.
  • Added API for checking whether notifications for the application are enabled MRGSLocalPushService.areNotificationsEnabled(Context context).

v3.8.112🔗

  • Support for Google Rewarded Prouducts in billing.

After loading product information, you can call the isRewarded() method on MRSPurchaseItem objects. If true is returned - this is a rewarded product. Before "buying" it, you must call the loadRewardedSku method. After receiving a callback with status 0 (BILLING_RESPONSE_RESULT_OK), this product can be "bought", i.e. ads can be displayed to users.

  • When showing the Piligrim's static and video banners, you can add payload (additional developer information, which can be obtained later through the server API.

v3.8.106🔗

  • The getAdvertising and createAdvertising methods can show an exception: MRGServiceNotInitializedException if the service was not initialized before calling these methods.
  • Fixed a possible crash if the service method of the MRGService class was not called from the main thread.

v3.8.105🔗

  • Added multi-metrics. Now metrics will not be sent immediately, but accumulated and sent in batches.
  • Added rules for ProGuard.
  • Now the skipped flag is correctly switched when clicking on an advertisement (it will be false).
  • Fixed a possible crash in the Piligrim.
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🔗

  • The protocol for accessing MyCom Support has been changed. Now the signature parameter (formerly sig) uses the day of the month so that the link is valid for only one day.
  • Country request timeout for GEO IP for GDPR is reduced to 5 seconds, so that the user won't have to wait for a long time to open a window on application launch.
  • Updated external SDKs.

v3.8.103🔗

  • Fixed duplicate sending of the agreed to GDPR log.

v3.8.102🔗

  • Fixed a crash in MRGSRestClient when making requests over https on Android 7.0 and higher while using network_config.

This crash was occurring due to the lack of the required method in MRGSX509TrustManager and did not lead to the crash of the application, however, it did not make it possible to send a payment request to the MRGS server, and also generated a large number of payment error requests.

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🔗

  • Added User-Agent to GDPR requests.
  • Fixed crashes on Studio Nord reporting.
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🔗

  • Added a method in Billing to automatically recover stuck transactions after loading product information. To do this, set the flag before starting work with the bank:
MRGSBilling.instance().autoRestoreTransactions(true);
  • Fixed a possible crash in the MRGService class when processing a response about invalid signature of the request.
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🔗

  • Fixed a bug with crash inside ru.mail.mrgservice.MRGService.uploadFinished(MRGService.java:506).
  • deviceToken for Firebase notifications is sent only after MRGS initialization.

v3.8.98🔗

  • GameCenter moved to a separate project.

v3.8.97🔗

  • Added the ability to specify a counter field in Custom notifications, where the number of notifications will be inserted when grouping.
  • Removed the space in action iuas_click_campaign.
  • Uploading images to the Piligrim roller moved to a separate stream.

v3.8.95🔗

  • Logging of the GDPR acceptance agreement is sent via https.
  • When the sendPaymentInfo function is called, data is also transferred to MyTracker.
  • Removed IMEI collection even if there is a permissions READ_PHONE_STATE.

v3.8.94🔗

  • MyComSupport checkTickets will not be called unless a secret is set.
  • Removed automatic call of MyCom Support checkTickets after user authorization.
  • IDFA and OpenUDID in the request, after agreeing to the GDPR, were transferred from GET to POST, as Google showed warings about the leak of the advertising identifier.
  • Updated MyTracker to version 1.5.3.

v3.8.92🔗

  • Additional features for installing CustomView in notifications from Unity.

v3.8.91🔗

  • Updated GDPR layout for compatibility with some Android devices.

v3.8.90🔗

  • Moved the error reports when opening the Piligrim roller into different categories.

v3.8.89🔗

  • Fixed a bug in the Piligrim. If, after the correct download, the cache is empty upon trying to open the slider, the slider will not be shown. An error description is now sent to the server when the image cannot be displayed.

v3.8.88🔗

  • Changed the image selection logic for the Piligrim roller. Now for transitional resolutions, a lower one will be selected.

v3.8.87🔗

  • Disabled WebView hardware acceleration for GDPR on devices lower than Android 4.4.

v3.8.86🔗

  • Fixed display of GDPR on different devices.

v3.8.84🔗

  • Country recognition for applicability of GDPR is performed once.

Usage example:

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🔗

  • Added GDPR support. To display the agreement, you must use the GDPR class.

Usage example:

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🔗

  • Fixed a potential crash in Piligrim in the campaignComplete method.

v3.8.81🔗

  • Added support for the new MyCom Support API to check for ticket responses. Attention! Now, before checking tickets, you need to set a Secret, as was done previously, before opening the MyCom Support window:
MRGSMyComSupport.setSecret("mysecret");
MRGSMyComSupport.setTicketListener(new SupportTicketListener());
MRGSMyComSupport.checkTicketsWithDelay(context, 5*1000);
  • Fixed a banner display error in Piligrim.
  • Disabled automatic tracking of MyTracker payments (tracked manually).
  • Fixed a crash inside MRGSFileManager if AppContext was not set.
  • Fixed a possible crash in 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🔗

  • Fixed a banner display error in Piligrim.

v3.8.79🔗

  • Changed the logic for choosing the resolution of images in Piligrim for screens 1921px and higher.

v3.8.78🔗

  • Added support for uploading images in different resolutions for the roller in Piligrim.

v3.8.77🔗

  • When sending payment data to MyTracker, we check the return value.
  • Fixed a crash in MRGSGCMActivity.processDelegate(MRGSGCMActivity.java:98) if AppContext was not set.

v3.8.76🔗

  • Fixed a bug leading to incorrect counting of impressions of the first banner in Piligrim roller.

v3.8.75🔗

  • Updated MyTracker to version 1.5.2.
  • Added the ability to add additional parameters in JSON format when opening the MyCom Support window.
MRGSMyComSupportDialog dialog = new MRGSMyComSupportDialog(this);
dialog.addExtraParam("{\"vip\" : true}");

v3.8.74🔗

  • Fixed a bug when a Firebase token was used for projects on GCM.

v3.8.73🔗

  • Fixed a possible crash in MRGSAdvertisingBitmapLoader on certain large images. Actual for the MRGS Piligrim roller.

v3.8.72🔗

  • Changes to the MRGS Piligrim.

v3.8.71🔗

  • Changes to the MRGS Piligrim.
  • Rolled back MyTracker to 1.4.4. To connect this version in your project you need to insert the following into build.gradle:
dependencies {
    compile 'com.my.tracker:mytracker-sdk:1.4.4'
}

v3.8.70🔗

  • Added support for channels in server notifications on Android 8.

v3.8.69🔗

  • Added support for channels in notifications on Android 8.

Make sure that the build.gradle dependencies of the compatibility library version are 26.1.0 or higher:

compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:appcompat-v7:26.1.0'

By default, all notifications will fall into the Default channel, the Default group.

If you want to specify your group and your channel, you must specify them when creating a notification:

notification.setChannelGroupId("mrgs_default_group");
notification.setChannelGroupName("MRGS");
notification.setChannelId("mrgs_default");
notification.setChannelName("Default");

v3.8.68🔗

Important

The closePayment method in MRGSBilling is declared deprecated, due to its frequent and incorrect use. If your game does not issue rewards through the server, use the notifyMRGSAboutConsume method.


v3.8.67🔗

  • Added support for transferring additional information (developerPayload) in local and server push notifications. To use, you need to create a notification:
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);

When setting a delegate, you can now use the new interface 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());

The old MRGSPushNotificationDelegate interface still works, you can use it, you just won’t be receiving developerPayload

developerPayload can also be sent from the server side (it is called "Advanced Options" there) as a JSON object. Locally it will turn into MRGSMap.

To set the delegate on group notifications a new MRGSPushNotificationExGroupDelegate interface has also been added:

class MyNotificationGroupDelegate implements MRGSPushNotificationExGroupDelegate {
    void clickOnNotificationGroup(int groupId, List<Integer> notificationIds, List<MRGSMap>developerPayload, boolean isLocal);
        //your data in developerPayload
    }
}

MRGSLocalPushService.setGroupDelegate(new MyNotificationGroupDelegate());

The old MRGSPushNotificationGroupDelegate interface still works, you can use it, you just won’t be receiving developerPayload


v3.8.66🔗

  • Fixed a bug that could have lead to a crash in the MRGS Piligrim.

v3.8.65🔗

  • Fixed a bug that could have lead to a crash in the MRGS Piligrim.

v3.8.64🔗

  • Added the ability for CustomView in notifications to set text as a string and not id from resources.

v3.8.63🔗

  • Added the ability for CustomView to set text and images in notifications.

v3.8.62🔗

  • Updated MyTracker to version 1.4.5. To connect this version in your project you need to insert the following into build.gradle:
dependencies {
    compile 'com.my.tracker:mytracker-sdk:1.4.5'
}

Also note that, if you do not already have Google Maven Repository connected, you need to register it in the root build.gradle:

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

Otherwise, there may be an error during assembly with the message that the dependency com.android.installreferrer:installreferrer:1.0 was not found.


v3.8.61🔗

  • MinSDK downgraded to 15.

v3.8.60🔗

  • Visual changes in Piligrim.

v3.8.59🔗

  • Fixed a possible crash in MRGService.uploadFinished.

v3.8.58🔗

  • Fixed a bug when action clickPushNotification was being sent to the MRGS server without AppId.

v3.8.57🔗

  • IDFA and OpenUDID removed from GET inside POST requests. This is important if Google sends you a Warning that the application passes the advertising identifier in clear text.
  • Updated MRGS Piligrim interface.

v3.8.56🔗

  • AppsFlyer calls the trackAppLaunch method during initialization, which should solve the problem of late registration of installations.

v3.8.55🔗

  • Changed the mechanism for enabling logs in AppsFlyer.

v3.8.54🔗

  • Updated AppsFlyer to version 4.8.2.

v3.8.53🔗

  • Fixed a crash on NullPointerException in MRGSLocalPushService.java:59.

v3.8.52🔗

  • Bugs fixes.

v3.8.51🔗

  • Updated MyTarget library to version 4.6.19.
  • Updated MyTracker library to version 1.4.0.

v3.8.50🔗

  • If MyTracker is enabled, now all the MRGS metrics are translated to MyTracker by default. If you want to disable this, add the forwardMetrics parameter and set its value to false in the MyTracker section of MRGService.xml. For example: <MyTracker enable="true" debug="false" forwardMetrics="false" />. If your project initializes MRGS via code, without using an xml file, then when calling MRGService.service, you need to put the following in sdkBundle:
Bundle myTracker = new Bundle();
myTracker.putBoolean("forwardMetrics", false);
sdkBundle.putBundle("MyTracker", myTracker);

v3.8.49🔗

  • When making a payment, you can now add information (developerPayload) that you would like to receive back upon a successful operation. To do this, use either MRGSBilling.buyItem(final String id, final String type, final String developerPayload) or MRGSBilling.buyItem(final MRGSPurchaseItem purchase) method after specifying the desired value in the purchase.developerPayload field.
  • Important change for MyCom Support. Now in the input form of the user’s request, the input field should go above the keyboard.

v3.8.48🔗

  • Fixed comments from bugtesting.

v3.8.47🔗

  • Changes to build scripts.

v3.8.46🔗

  • Bugs fixes.

v3.8.45🔗

  • Bugs fixes.

v3.8.42🔗

  • Updated myTarget library to version 4.6.13.

v3.8.40🔗

  • Fixed a bug in MRGSGoogleBilling. For subscriptions during recovery, the current userid is used.

v3.8.39🔗

  • Fixed a bug in MRGSRestClient that lead to a crash in the absence of a response from DNS.

v3.8.38🔗

  • Fixed a bug with incorrect userId transfer during payments via Google Billing.

v3.8.37🔗

  • Fixed the error with multiple calls to the function MRGSBilling.getProductsInfoWithTypes.

v3.8.36🔗

  • Added subscription support. The API is very simple. First of all, you need to replace the MRGSBilling.getProductsInfo(final ArrayList<String> idList) method call with MRGSBilling.getProductsInfoWithTypes(finalArrayList<Pair<String, String>> idList) where each pair in the array consists of two rows, the first - sku name, the second - type (cons, noncons, subs).

Usage example:

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);

Otherwise, the purchase of a subscription is carried out in the same way as a regular purchase. When calling the MRGSBilling.restoreTransaction method, if the subscription is active, the purchaseComplete method of MRGSBillingDelegate will be called, if the subscription is not active, this method will not be called.


v3.8.35🔗

  • myTarget 4.6.3.
  • AppsFlyer 4.6.5.
  • Flurry 6.8.0.
  • myTracker 1.3.9.

Added support for Firebase Cloud Messaging. Even if you do not want to switch to FCM, add the dependencies in your 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'

If you want to upgrade to Firebase Cloud Messaging, fulfill these requirements:

  • Add your application to the Firebase developer console and download google-service.json.
  • In the google-service.json file in the "api_key" = [] section, replace it with "api_key" = [{"current_key" : "<Your Server API key"}]. Server API Key is available in the Firebase developer console.
  • Register the same Server API Key in the settings of your application on the website mrgs.astrum.team in the field "Key for sending PUSH notifications". Check the box next to "Send push notifications using Firebase Cloud Messaging".
  • In the root build.gradle of your project, buildscript {dependencies{}} section, add dependency:
buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
  • The google-service.json file must be placed in the app subdirectory inside your project (in the same place where build.gradle is located).
  • Edit the AndroidManifest.xml file.

Remove sections:

        <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>

And add:

        <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>
  • In the code, before calling MRGService.service(), add a call to the FirebaseApp.initializeApp(context) function;.

v3.8.34🔗

  • Fixed a crash when calling MRGSAdvertising.create(context, null, null, null);.

v3.8.33🔗

  • Added support for Interstitial API from myTarget.

To use the new API, it is important to add interstitialSlotId to the Adman section of the MRGService.xml

Working with the new API is identical to working with a regular showcase. First you need to call the method MRGSAdvertising.getLastInstance().loadInterstitial(this). After the callback onLoadComplete with the type AdvertisingType.INTERSTITIAL arrives, you can show the window using the call MRGSAdvertising.getLastInstance().openInterstitial().


v3.8.32🔗

  • Updated myTarget library to version 4.6.1.
  • Updated myTracker library to version 1.3.8.
  • Dependence on Google Play Services 9.6.

v3.8.31🔗

  • Added a function to set the header MRGSPushNotification.setTitle in local push notifications.

v3.8.30🔗

  • Updated IInAppBillingService.aidl.

v3.8.29🔗

  • Updated library versions.
  • myTarget 4.5.12.
  • myTracker 1.3.8.
  • Chartboost 6.5.1.
  • Flurry 6.6.0.
  • Google Conversions 2.2.4.

v3.8.28🔗

  • It is now possible to add a title, small and large icons to the global push notifications, if there is no title, the application name is inserted. Icons are set in the Params section of the MRGS admin panel, using the following:
{
 "icon":"ic_stat_maps_local_bar",
 "largeIcon":"ic_full"
}

where icon and largeIcon are the names of resources of the Android application.


v3.8.27🔗

  • Updated AppsFlyer to version 4.6.0.

v3.8.26🔗

The update is relevant for Android 6.0 and higher. Fixed a bug with the DeviceID generation before receiving permissions on phones (and Google account) and after receiving permissions


v3.8.25🔗

  • Now, upon sending INSTALL_REFERRER to MRGS, the original referrer also gets sent along with the parsed one.

v3.8.24🔗

  • Fixed the error leading to the exception java.lang.ClassNotFoundException:ru.mail.android.mytracker.campaign.CampaignReceiver.

v3.8.23🔗

  • Updated the MRGSAdvertising class. The handleBannerClick(NativeAppwallBanner banner) method has been added, which must be called when the myTarget advertising banner is clicked, if the developer creates a custom showcase interface.

v3.8.22🔗

  • Updated the MRGSAdvertising.LoadDelegate interface. Now the onLoadComplete method in the last parameter gets List <NativeAppwallBanner>.

v3.8.21🔗

  • MyCom Support. If upon attempting to attach a file, the user refuses access to an external storage and picks the "never ask again" option, and then tries to attach a file again, you can display a dialog instead of the Activity with a message about the need to go to the settings window.
  • Logging of completed purchases in MyTracker.

v3.8.20🔗

  • Added session ID to all the messages sent to the server.

v3.8.19🔗

  • Changed myTarget and myTracker dependencies.
  • If you use jar files, you can download them:
    compile 'com.my.tracker:mytracker-sdk:1.3.2'
    compile 'com.my.target:mytarget-sdk:4.5.6'
  • Added the function MRGSMyComSupportDialog.setRequestRationalDialogParams, with which you can set the header, dialog text and topic to explain the need for permissions (as an alternative to activation). The default buttons are OK and Cancel (localized by the system). OK will request permissions, Cancel will close the dialog window.

v3.8.18🔗

  • Added resolution processing when working with the Support window.
  • Fixed changing device id when changing user.

v3.8.17🔗

  • Fixed a crash in case of cancelling the purchase.

v3.8.16🔗

  • Added UDID generation functions for targetSdkVersion lower than 23, in order to improve compatibility.

v3.8.15🔗

  • Fixed payments on Huawei devices with OS version lower than 5.0.
  • Updated versions of myTracker and myTarget.
  • Added aar file to the archive.

PLEASE NOTE

myTracker package name has changed. Update AndroidManifest.xml It is necessary to replace <service android:name="ru.mail.android.mytracker.campaign.CampaignService"/> with <service android:name="com.my.tracker.campaign.CampaignService"/>


v3.8.14🔗

  • API Level 23 is now supported
  • The getOpenUDID call was changed, it has been made asynchronous (see Migration_ru.md)

v3.7.13🔗

  • Updated myTracker and myTarget SDKs. Added MRGSAir_watchDog function for Air SDK.

v3.7.12🔗

  • Promo code purchases are marked as promo instead of sandbox

v3.7.11🔗

  • Fixed AmazonBilling-related bugs
  • Added boolean parameter hwAcceleration (enables/disables hardware acceleration in WebView) to the MRGSMyComSupportDialog constructor. Enabled by default (as it was before), but can be disabled for specific devices (e.g. Amazon Kindle Fire HD)

v3.7.10🔗

  • Updated myTarget libraries to version 4.3.6 and myTracker to version 1.2.2

v3.7.9🔗

  • Fixed a bug with writing to the billing log

v3.7.8🔗

  • Added ability to set text and category when opening My.com Support window

v3.7.7🔗

  • Fixed the link to the activity life cycle

v3.7.6🔗

  • Fixed a bug with saving the send buffer

v3.7.5🔗

  • Fixed a minor bug in Google Billing, which led to outputting the error in the log. This does not affect payments in any way!

v3.7.4🔗

  • Fixed a typo in the name of the parameter responsible for local notifications. No changes are required in MRGService.xml.

If you were sending MRGS parameters via code, then you need to replace the parameter"localPushNotification" with "localPushNotifications" (added 's' at the end)


v3.7.3🔗

  • Updated Google Play Services to version 8115000

v3.7.2🔗

  • Updated Aps Flyer to version 2.3.1.18
  • Updated Charboost 5.5.3
  • Updated Flurry to version 6.0.0
  • Updated Google Conversion to 2.2.3
  • Updated myTarget to 4.0.16
  • Updated myTracker to 1.1.4
  • Changed the MRGSAdvertising.LoadDelegate - added the public void onVideoComplete(MRGSAdvertising.AdvertisingType type) method, which is called upon the end of the video, i.e. when you can give the reward for watching the ad
  • Added processing of invalid payment data from Samsung applications

Charboost requires the permission WRITE_EXTERNAL_STORAGE, if not set charboost will be turned off


v3.7.1🔗

  • Updated Aps Flyer to version 2.3.1.17

v3.7.0🔗

  • Updated Google Play Services to version 7571000
  • Updated android-support-v4 library
  • Implemented the latest version of Google Cloud Messaging

PUSH notifications will no longer work on Android 2.2

You need to make corrections to AndroidManifest.xml for the new GCM. For details, refer to the file Migration_ru.md, included in the MRGS archive


v3.6.5🔗

  • Fixed application crash on first launch

v3.6.4🔗

  • myTarget v 4.0.4
  • Added forced release of fullscreen banner resources in MRGSAdvertising#release

v3.6.3🔗

  • Added a check for device root state;
  • Added the ability to set the listener to receive events in the My.com support window.

Please read the MRGS manual for details regarding the last item


v3.6.2🔗

  • Fixed duplicate payment processing via a promo code;

PAY ATTENTION to the answer parameter in the purchaseComplete method in the shopping listener of the MRGSBillingDelegate. There is a response in this parameter from the MRGS server, which allows you to understand what exactly happened with the purchase and why it was successful. If the server answered “OK” (Latin), then this means that the payment is valid and you can track it to external trackers that are not tracked by the MRGS automatically. For example, on Facebook. Other options are also possible, for example, "OK. The payment already exists and is already fulfilled!".


v3.6.0🔗

  • Replaced Adman with myTarget 4.0.1;

PLEASE NOTE that the Adman library no longer exists. Therefore, in the project you need to replace adman.jar with myTarget.jar. Also, in the code you should obstain from calls MRGSAdvertising.releaseShowcase() and MRGSAdvertising.releaseFullscreen(). Instead, you should call the single method MRGSAdvertising.release(). It should be understood that the MRGSAdvertising instance is tied to activity and, as a result, to its life cycle. Therefore, it is necessary to call release() in the method paired to createInstance() (from the point of view of the activity life cycle). For example, if you create an instance in onCreate, then the resources should be released in onDestroy.


v3.5.3🔗

  • Updated myTracker to version 1.0.19;
  • Fixed a crash when making a payment via a promo code;
  • Fixed a crash if the game has more than 15 in-game purchases.

v3.5.2🔗

  • Fixes in support My.com rendering

If you are using My.Com Support, then it is RECOMMENDED to add the following attribute in the application tag in AndroidManifest.xml

android:hardwareAccelerated="true"

v3.5.1🔗

  • Removed the ability to send files to the MRGS server;
  • Fixed a crash in Samsung billing for Android 5.0 and higher.

v3.5🔗

  • Fixed Amazon payments;
  • Fixed filling transactionId field in Amazon payments.

v3.4.13🔗

  • Updated myTracker to version 1.0.14;

v3.4.12🔗

  • More detailed application launch metrics

v3.4.11🔗

  • Fixed a problem with "twitching" rendering of the My.com Support window;
  • Added a download indicator on the My.Com Support window;

v3.4.10🔗

  • Updated myTracker to version 1.0.12;
  • Sending to the server prices and currency codes upon purchase;
  • Updated Amazon in-app to version 2.0.61;

v3.4.9🔗

  • Added the ability to create any number of Adman’s showcases;

v3.4.8🔗

  • Sending IMEI in each request;
  • Fixed a crash in Google Billing when the service is unexpectedly disabled;

v3.4.7🔗

  • Fixed a crash if ArrayBlockingQueue was corrupted in the system

v3.4.6🔗

  • Updated myTracker to version 1.0.11

v3.4.5🔗

  • Tracking of clicks on server push notifications;
  • Fixed getting Advertising ID for Android versions lower than 4.0.

v3.4.4🔗

  • Added cache for OpenUDID’s.

v3.4.3🔗

  • Reduced service initialization time.

v3.4.2🔗

  • Fixed offer caching in the Adman showcase

v3.4.1🔗

  • Fixed freezing in the absence of the Internet signal when the geodata collection is turned on.

v3.4.0🔗

  • Fixed showcase download on older Android versions;
  • Removed the old MRGSAdman implementation and all methods associated with it in the MRGService (had “adman” prefix). Instead of these methods, you should use the MRGSAdvertising class, which implements similar functionality;
  • In Adman’s callback onNoAdd() added an advertising type so that you can understand which data is missing: for showcase or banners;
  • Updated Adman to version 2.1.37;

v3.3.10🔗

  • Fixes for Google billing for Android 5.0

v3.3.9🔗

  • Added a callback for Adman in the absence of advertising.

v3.3.8🔗

  • Fixed the situation when the application would freeze when an unhandled exception occurs;
  • Fixed a crash in Adman when the slot for full-screen banners was not installed.

v3.3.7🔗

  • Added the ability to programmatically set the installation source for preinstalled applications

There are two ways to set the installation source:

  1. Using the file MRGService.xml: in the Options tag, add the tag utmSource, with the source. For example:
    <utmSource>test-utm-source</utmSource>
  2. Programmatically. Transfer options parameter to MRGSerivce.service() as a Bundle, in which put the "utmSource" key.

v3.3.5🔗

  • Updated Google Play Services to version 6171000
  • Updated Google Analytics to version 4
  • Fixed a crash on login in Samsung
  • Added a mechanism for forwarding a preset source into external trackers

PLEASE NOTE

  1. Replace in AndroidManifest.xml <service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
    with <service android:name="com.google.android.gms.analytics.CampaignTrackingService"/>
  2. Delete libGoogleAnalyticsServices.jar from the project;
  3. Add google-play-services.jar (and preferably resources for the project)

v3.3.4🔗

  • Updated Flurry to version 4.2.0

v3.3.3🔗

  • Added methods to close the Adman and free up resources

The closeShowcase() and closeFullscreen() methods close the window and the banner, respectively. They are recommended to be called in the onStop() method of Activity.

The releaseShowcase() and releaseFullscreen() methods release the resources occupied by the offerwal and banner, respectively. It is recommended to free banner resources immediately after it is closed, since a picture can take up a lot of memory. Subsequent calls to loadShowcase() and loadFullscreen() will load the necessary resources again, so you do not need to recreate the MRGSAdvertising instance.


v3.3.2🔗

  • Updated Adman to version 2.1.35.
  • Full screen Adman banners.

The MRGSAdman class is marked obsolete and will be removed soon. The same thing will happen with methods with the Adman prefix in MRGService. Instead, use the MRGSAdvertising class. You need to create an instance only in the activity where you plan to use an offerall or banners. Also, the programmer decides when to start downloading data.

Example of use:

final MRGSAdvertising adman = MRGSAdvertising.createInstance(this);
adman.setShowcaseTitle("More Games!");
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) {
    }
});

For banners, use the loadFullscreen() and openFullscreen() methods.

Also in MRGService.xml in the Adman section you need to add the attribute fullscreenSlotId, in which register a slot for full-screen banners.

For convenience, added a MRGSAdvertising.getLastInstance() method, which returns the last created instance. This can help avoid creating a new field in the Activity to hold the MRGSAdvertising instance.


v3.3.1🔗

  • Fixed a crash when push notifications did not have an icon.

v3.3.0🔗

  • Changes in context transfer to MRGS.
  • Fixes in callback for clicking on push notifications.
  • Bug fix of icons for server push notifications.
  • Updated Adman to version 2.1.33.
  • Updated myTracker to version 1.0.9.
  • Added AndroidManifest validator to the archive.

AndroidManifest.xml requires some changes:

  1. Delete the service <service android:name="ru.mail.mrgservice.MRGSLocalPushService"/>
  2. Rename the service package <service android:name="com.my.android.mytracker.campaign.CampaignService"/>
    to <service android:name="ru.mail.android.mytracker.campaign.CampaignService"/>
    If you plan on using push notification grouping, you should also add the following receiver to the manifest <receiver android:name="ru.mail.mrgservice.MRGSNotificationDeleteReceiver"/>
    To verify that the AndroidManifest.xml is correct, use the mrgsmanifest utility. When launched without parameters, it will tell you how to start it correctly.

Attention

Changed the application context storage engine of MRGS. Now you need to transfer this context as early as possible, before any call to the MRGS. You can do this in the onCreate method of the application by calling MRGService.setAppContext(getApplicationContext());
Or you can uninherit your application from MRGSBaseApplication.
Additionally, you need to remove the method call MRGSLocalPushService.runService(...).

DEPRECATED

Please note that some methods have been marked as deprecated. For example, methods for working with local push notifications. This means that in future releases these methods will be removed from the MRGS.


v3.2.17🔗

  • Added the ability to completely turn off push notifications

v3.2.16🔗

  • Fixed a crash when registering pushes
  • Updated Adman to version 2.1.32
  • Fixed a bug with setting the window title in Adman
  • Added the ability to initialize Adman only in the required activities
  • Bug fixes in the geolocation manager

Attention

Ideally, Adman should be initialized only on those activities where it is planned to showcase the showcase. If the showcase is not required for an activity, then the following code should be called in its onStart() method: MRGService.instance().onStart(this, false);
instead of
MRGService.instance().onStart(this);


v3.2.15🔗

  • Added push notification grouping
  • Fixed a crash when adding entries to PayLog
  • Updated myTracker to version 1.0.7
  • Updated Adman to version 2.1.30

v3.2.14🔗

  • Fixed a crash found using ICQ (checkPermission)
  • Added notifications with support of the large text

v3.2.13🔗

  • Fixed file upload in MyComSupport
  • Fixed a crash found using ICQ (getCountry)

v3.2.12🔗

  • Added support for large icons in push notifications, usually used to display in the system status bar and should, at the request of Google, be 24x24 (and not colored), the large icon is visible when the notification area is being maximized. If you do not add the new parameters, everything will behave as before.
  • Added the optional setting parameter pushLargeIcon in MRGService.xml
  • Added optional JSON largeIcon parameter for external notifications

v3.2.11🔗

  • Fixed file upload in MyComSupport
  • Added support for 4.4 in the upload

v3.2.10🔗

  • The Back button in MyCom Support is now processed correctly
  • External links in MyCom Support now open in the browser

v3.2.8🔗

  • Fixed a crash during delayed push notification initialization

v3.2.7🔗

  • Fixed a crash when checking ticket updates in My.com Support

v3.2.6🔗

  • Added software check for required libraries
  • Added the ability to attach files to a ticket in My.com Support

ATTENTION

For My.com Support to work correctly, you need to register the following activity in AndroidManifest: <activity android:name="ru.mail.mrgservice.MRGSMyComSupportUtilActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"/> And add the new permission: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


v3.2.5🔗

  • Bug fixes associated with the My.com Support window

v3.2.4🔗

  • Bug fixes associated with the My.com Support window
  • Updated Chartboost to version 5.0.2
  • Updated myTracker to version 1.0.5

v3.2.0🔗

  • Work with external SDKs remade on reflection.
  • Reduced initialization time of MRGS.
  • Fixed a bug with sending applicationExit action to the MRGS server.
  • Sending the online action to the MRGS server.

v3.1.8🔗

  • Fixes for ticket notifications in My.com Support.
  • Fixes in the My.com Support window on older versions of Android.
  • Added PACKAGE_REMOVED processing for AppsFlyer.

v3.1.7🔗

  • New My.com Support window.
  • Payment tracking in Google Conversion.
  • Updated Chartboost to version 5.0.

v3.1.5🔗

  • Reduced uptime in the main thread and increased overall performance
  • Added the ability to forward install referrer to external receivers

To forward install referrer to external receivers you need to add the lines similar to these into the <application> tag of the AndroidManifest:

<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🔗

  • Tracking the first launch in Google Conversion
  • Tracking of the effective registration in Google Conversion
  • Increased performance when collecting device memory data
  • Increased productivity when working with SharedPreferences
  • Fixed a crash when billing is turned off (Air)

v3.1.3🔗

  • Fixed a crash when collecting information about the device during the work of MRGSGCMIntentService with missing context
  • Updated Chartboost to version 4.1.2
  • Fixes in registering push notifications in the client
  • Fixed logic for applications with multiple activities
  • Updated myTracker to version 1.0.3

v3.1.2🔗

  • Added the ability to programmatically set external SDK parameters

v3.1.1🔗

  • Updated myTracker to version 1.0.2

v3.1.0🔗

  • Ability to mark an application as “updated"
  • Updated Google Conversion Tracking from version 1.1.1 to 2.2.0
  • Automatic data collection via Google Conversion Tracker
  • Integrated MyTracker version 1.0.1
  • Updated Adman to version 2.1.23

!!! ATTENTION !!!

The following changes must be made to AndroidManifest: Delete:

<service android:name="com.my.android.adman.services.AdmanService" android:enabled="true"/>

Add:

<service android:name="com.my.android.mytracker.campaign.CampaignService" />

Additionally, rename AdmanTracker into MyTracker in MRGService.xml


v3.0.30🔗

  • Correct sending of Advertising ID to the server upon the application launch

v3.0.29🔗

  • Fixed a crash when billing is disabled
  • Sending of UDID at application start

v3.0.28🔗

  • Fixed a crash when Samsung billing is enabled on a non-Samsung device

v3.0.27🔗

  • Fixed the processing of product purchase error (now null can be received in the callback of the item parameter in MRGSBillingDelegate.purchaseFail)

v3.0.26🔗

  • Updated AppsFlyer to version 2.3.1.8
  • Updated FlurryAnalytics to version 4.1.0
  • Updated Chartboost to version 4.1.1

v3.0.25🔗

  • Emergency Adman update

v3.0.24🔗

  • Now the MRGS does not receive the user's phone number (per Google request)

v3.0.23🔗

  • Updated Adman to version 2.1.14

v3.0.20🔗

  • Fixed a crash when saving the referrer
  • Added the method for adding Samsung product information

v3.0.18🔗

  • Updated Adman to 2.1.10
  • Removed the obsolete MRGSMoreGames class

v3.0.17🔗

  • Added methods for serializing MRGSPurchaseItem to string and vice versa

v3.0.16🔗

  • Fixed field names for products in the store (for AIR)

v3.0.15🔗

  • Fixed an error in payment callbacks.

v3.0.14🔗

  • Updated Adman to version 2.1.6

v3.0.13🔗

  • Updated Adman to version 2.1.5

v3.0.12🔗

  • Payment tracking only in case of successful validation on the MRGS server

v3.0.11🔗

  • Fixed a crash when processing responses from the server

v3.0.10🔗

  • Added validation of e-mail addresses in the feedback sending window. To change the text of the error message, you can run the following code:
MRGSSendFeedbackActivity fb = MRGSSendFeedbackActivity.create();
fb.setFeedBackEmailNotValid(ERROR_TEXT);
fb.open();

v3.0.9🔗

  • Fixed a bug with the MRGSRate window (When two buttons were displayed, the Cancel button did not behave correctly)

v3.0.8🔗

  • Fixed a bug with a crash at startup with the Internet turned off

v3.0.7🔗

  • Fixed an error with payment recovery

v3.0.6🔗

  • Updated the Adman to version 2.0.14

v3.0.5🔗

  • Fixed bugs with the server push notification processing
  • Now you can set the icon for push notifications
  • Updated Flurry to version 3.4.0
  • Embedded Google Conversion

v3.0.4🔗

  • New MRGSSocial class Intended for sending social data about the user to the MRGS

v3.0.3🔗

  • Updated external libraries: AdMan (2.0.10)

v3.0.2🔗

  • Updated Adman to version 2.0.8
  • Fixed a crash when calling Adman methods


Last update: 2025-04-14
Created: 2020-03-02