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 (%) patternfor MyGames authorization.
Billing-catappult module:
- Added support for Catappult.
Bank module:
- Fixed possible loss of
deviceIdin http requests for payment validation.
Notifications module:
- Fixed crash when clicking on notification if
developerPayloadcontains 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
MRGSProductInfoclass to send new format product information - Updated
androidx.core:core:1.9.0toandroidx.core:core-ktx:1.13.1 - Updated
com.google.android.gms:play-services-ads-identifierfrom 18.0.1 to 18.1.0. - Updated
com.google.android.gms:play-services-appsetfrom 16.0.2 to 16.1.0. - Updated
androidx.appcompat:appcompatfrom1.6.1to1.7.0 - Updated
kotlinfrom1.8.22to1.9.23 - Improved thread queue, fixed
Thread pool blocking queue is fullerror
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-v2from20.1.0to20.1.2
Advertising module:
- Removed dependency
androidx.localbroadcastmanager:localbroadcastmanager. - Updated
androidx.recyclerview:recyclerviewfrom1.2.1to1.3.2. - Updated
androidx.vectordrawable:vectordrawablefrom1.1.0to1.2.0 - Fixed getting video file name from
creative_video_filevalue inMRGSAdvertisingCampaign.
Bank module:
- Updated
com.android.billingclient:billingfrom6.0.1to7.1.1. - Updated
com.facebook.android:facebook-gamingservicesfrom16.0.1to17.0.2
GDPR module:
- Updated
com.bigossp:bigo-adsfrom4.7.0to5.0.2. - Updated
com.moloco.sdk.adapters:moloco:2.1.1.0tocom.moloco.sdk:moloco-sdk:3.2.0 - Updated
com.tappx.sdk.android:tappx-sdkfrom4.0.6to4.1.6 - Updated
com.unity3d.ads:unity-adsfrom4.4.1to4.12.3 - Updated
com.tapjoy:tapjoy-android-sdkfrom12.11.0to14.1.0 - Updated
com.my.target:mytarget-sdkfrom5.16.2to5.22.1 - Updated
com.vungle:publisher-sdk-android:6.12.0tocom.vungle:vungle-ads:7.4.1 - Updated
com.fyber:fairbid-sdkfrom3.33.1to3.55.0 - Updated
com.facebook.android:facebook-corefrom15.1.0to17.0.2 - Updated
com.chartboost:chartboost-sdkfrom9.1.1to9.7.0 - Updated
com.applovin:applovin-sdkfrom11.6.0to13.0.0 - Fixed Activity leak in CCPA.
Notifications module:
- Updated
com.google.firebase:firebase-messagingfrom 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:browserfrom1.5.0to1.8.0. - Updated
androidx.recyclerview:recyclerviewfrom1.2.1to1.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 Mintegraldependencies
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
developerPayloadinOnestoreBilling- reduced to 200 characters. - Fixed
developerPayloaddisappearance when resuming the application afteronPause. - Fixed a bug where
transactionIdfrom Samsung Galaxy Store could not be sent to Appsflyer. - Fixed a
thread race conditionthat could result indeveloperPayloadbeing lost when validating a payment.
Didomi module:
- Updated
io.didomi.sdk:androidfrom2.10.1to2.13.0
Firebase module:
- Updated
com.google.firebase:firebase-analyticsfrom22.1.0to22.1.2
Notifications module:
- Added
try/catchblocks 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
waitForTCFfield tomrgs_dma_startevent.
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.ToponPtefor custom logs. - Fixed a duplicate value error when using
MRGService#setHost, which led to broken network requests.
Analytics module:
- Removed the
com.appsflyer:adrevenuedependency. - Updated
com.appsflyer:af-android-sdkfrom6.14.2to6.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:androidfrom2.7.0to2.10.1
Firebase Module:
- Updated
com.google.firebase:firebase-analyticsfrom22.0.1to22.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.0and below.
Authentication module:
- Changed minimum required version of Android from
4.4 (19 api)to5.0 (21 api)for the MRGSGoogleSignIn module - Updated
com.google.android.gms:play-services-gamesfrom23.1.0to23.2.0. - Updated
com.google.android.gms:play-services-authfrom20.6.0to21.2.0. - Changed minimum required version of Android from
4.4 (19 api)to5.0 (21 api)for the MRGSGooglePlay module - Updated
com.google.android.gms:play-services-games-v2from17.0.0to20.1.0
Module Appsflyer:
- Updated
com.appsflyer:af-android-sdkfrom6.14.0to6.14.2.
Module Bank:
- Fixed a bug where
MRGSBillingDelegate#onReceiveFailedPurchasereturned the result without an error for the new private implementation of Google payments.
Module Didomi:
- Updated
io.didomi.sdk:androidfrom2.5.1to2.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
isLoggedInmethod 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.ConcurrentModificationExceptionerror in MRGSTracker.
Module Bank:
- Added automatic closing of TopUp (WebView) upon successful purchase
Firebase module:
- Updated
com.google.firebase:firebase-analyticsfrom22.0.0to22.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 theupdateHwMemoryUse()method.
Authentication (Facebook) module:
- Graph Api version used raised to 19
Analytics module:
- Fixed a bug where events sent during the active
waitForCustomerUserIdmode were lost. - Fixed a bug where AppsFlyer would start sending analytics after the
waitForCustomerUserIdmode was removed, but the user agreement (DMA) had not yet been received. The problem only occurred when using thewaitForCustomerUserIdmode.
Module Bank:
- Added new fields
isSandbox(whether the payment was made in the test environment) andusd(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
ANRwhen callingMRGSTracker#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-sdkfrom6.13.0to6.14.0.
Didomi module:
- Updated
io.didomi.sdk:androidfrom2.4.0to2.5.1.
Firebase module:
- Updated
com.google.firebase:firebase-analyticsfrom21.6.2to22.0.0. - Changed minimum required Android version from
4.4 (19 api)to5.0 (21 api).
Notification module:
- Updated
com.google.firebase:firebase-messagingfrom23.1.2to24.0.0. - Changed minimum required Android version from
4.4 (19 api)to5.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
firebaseInstanceIdto MRGS events - Added flag to disable auto-tracking of payments from a remote config.
- Changed the way
sessionIdis generated from MD5 to UUID v4 to reduce collisions.
Module Bank:
- Changed the behavior of the
restoreTransactionmethod 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 callingrequestProducts, and will return an error inonReceiveFailedPurchaseif 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:androidfrom1.90.0to2.4.0.
Firebase module:
- Updated
com.google.firebase:firebase-analyticsfrom 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
NullPointerExceptionandANRinTransferManager. - 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 taskerror, 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#setAnalyticsCollectionEnabledwithtrue, after each call toFirebaseAnalytics#setConsent.
Firebase module:
- Updated
com.google.firebase:firebase-analyticsfrom 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 classerrors 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
MRGSAppsFlyerParamsto 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: Nif 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
hashchecking for downloadedAdTechads.
Analytics module:
-
Updated
com.appsflyer:af-android-sdkfrom6.12.1to6.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-analyticsfrom21.3.0to21.5.1.
Didomi module:
-
Added a new
MRGSDidomi#reset()method. -
Updated
io.didomi.sdk:androidfrom1.89.0to1.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.1to6.1.0. -
Updated Amazon IAP SDK from
2.0.76to3.0.4. -
Fixed an issue when MRGSBank completed operations incorrectly with empty receipt, as a result
callbackcould be called several times. - Fixed long validation if transaction cache contains the same
userandtransaction id.
Didomi module:
- Added a new
MRGSDidomi#shouldUserStatusBeCollected()method. -
Supported
Activityfrom Android SDK to work with Didomi SDK for projects which don't useAndroidxlibraries. -
Update
io.didomi.sdk:androidfrom1.87.0to1.89.0.
GDPR module:
- Changed conditions for showing CCPA button, now it has the same behavior as on
iOS.
Notifications module:
-
Supported different notification styles and improved supporting of custom notifications.
-
Fixed incorrect behavior for Android 13 and
deferredPushStartflag 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
applicationRunevent wasn't sent, and installations were not tracked in 1Link. -
Fixed an
ANRwhen callingMRGSDevice#getHwMemoryUse()method. - Fixed a rare issue
IndexOutOfBoundsExceptionwhen callingMRGSDevice#getHwMemoryUse()method.
Advertising module:
- Fixed an
ANRduring loading ads.
Showcase module:
- Fixed an
ANRduring 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_LOGINerror during OneStore IAP SDK initialization. -
Fixed an issue when empty
developerPayloadwas 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:androidfrom1.85.1to1.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 inMRGService.
Advertising module:
- Improved caching of video ads for AdTech.
Authentication module:
- Fixed sending of
socialLoginandsocialUserevents when GooglePlayGamesV2 was used.
Didomi module:
- Added new MRGSDidomi module to support TCF.
Firebase module:
- Changed behavior of sending
mrgs_valid_inapp_N_dollars_plusevent. 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
gothamtoopen-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 readisEUOnlyflag fromMRGSGDPR#onlyEU(boolean)instead of reading passed value. Now it will read passed value and ignoreMRGSGDPR#onlyEU(boolean). - Fixed
ClassCastExceptionforMRGSGDPR#getAgreementTime(Context)andMRGSGDPR#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 handlenullvalues. -
Fixed an issue when new
MRGSGDPR#ShowAgreement()method didn't readMRGSGDPRShowParam#isAutomaticCOPPAFlowEnabledvalue. - 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 frommrgsgdpr_langs.jsonSDK file. -
Added a new
MRGSGDPRAgreementclass that describes information of current GDPR agreement from MRGS console. - Added a new
MRGSGDPRAcceptedAgreementclass that describes information of accepted agreement by user. - Added a new
MRGSGDPRLocalizationclass that contains properties to localizehtmlpage of MRGSGDPR SDK. - Added a new
MRGSGDPRShowParamsclass that contains properties to change showing behavior of MRGS GDPR window. - Added a new
MRGSGDPRShowReasonenum 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. UseMRGSGDPRShowParams#withAdvertising(boolean)instead. - Deprecated
MRGSGDPR#enableAutomaticCOPPAFlow(String, String)method. UseMRGSGDPRShowParams#setAutomaticCOPPAFlowEnabled(boolean)instead. - Deprecated
MRGSGDPR#setLocalizationLanguage(String)method. UseMRGSGDPRShowParams#setLocalization(MRGSGDPRLocalization). - Deprecated
MRGSGDPR#setUseWebViewForExternalLinks(boolean)method. UseMRGSGDPRShowParams#setUseWebViewForExternalLinks(boolean)instead. - Deprecated
MRGSGDPR#getAgreementTime(Context)method. UseMRGSGDPR#getAcceptedAgreement(Context)instead. - Deprecated
MRGSGDPR#getAgreedVersion(Context)method. UseMRGSGDPR#getAcceptedAgreement(Context)instead. - Deprecated
MRGSGDPR#getSupportedLocalizations(Context)method. UseMRGSGDPR#getLocalizations(Context)instead. - Deprecated
MRGSGDPR#showDefaultAgreementAtActivity(Activity, String)method. UseMRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams)instead. - Deprecated
MRGSGDPR#showAgreementAtActivity(Activity, String, String)method. UseMRGSGDPR#showAgreement(Activity, MRGSGDPRShowParams)instead. - Deprecated
MRGSGDPR#checkIfUserGetsUnderGDPR(Activity, String, MRGSGDPRAsyncStatus)method. UseMRGSGDPR#shouldShowAgreement(Activity, BiConsumer<MRGSGDPRShowReason, MRGSGDPRAgreement>)instead. - Deprecated
MRGSGDPR#shouldShowGDPR(Activity, String, boolean, MRGSGDPRAsyncStatus)method. UseMRGSGDPR#shouldShowAgreement(Activity, BiConsumer<MRGSGDPRShowReason, MRGSGDPRAgreement>)instead. - Deprecated
MRGSGDPR#setUserHasAcceptedAgreement(Context, boolean, boolean, String)method. UseMRGSGDPR#onAgreementAccepted(Context, boolean). - Deprecated
MRGSGDPR.MRGSGDPRDelegateinterface. UseMRGSGDPR.OnShowListenerinstead.
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
NullPointerExceptionwhen 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:corefrom1.7.0to1.9.0. - Updated
androidx.appcompat:appcompatfrom1.4.2to1.6.1.
MRGService module:
-
Added a new
MRGSGeoIpInfo#getCity()method to get city name. -
Updated
com.huawei.hms:ads-identifierfrom3.4.58.301to3.4.62.300. - Updated
com.huawei.hms:opendevicefrom6.9.0.300to6.11.0.300. - Fixed an issue when
MRGService#getServerTime()could return0. 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 eventsfor AdTech -
Fixed an issue
Not attached to Activity. - Fixed an issue when
onSaveInstanceStatewas called beforeVideoAdFragmentclosing.
Authentication module:
- Updated
com.google.android.gms:play-services-authfrom20.4.0to20.6.0. -
Updated
androidx.browser:browserfrom1.3.0to1.5.0. -
Fixed an issue when
onSaveInstanceStatewas called beforeMyGamesLoginFragmentclosing.
Bank module:
-
Updated
com.huawei.hms:iapfrom6.1.0.300to6.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
NullPointerExceptionwhen 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:pushfrom6.7.0.300to6.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:
Advertising module:
GDPR module:
-
Supported CCPA for new libraries: Tappx and Ogury.
-
Fixed a rare
NullPointerExceptionerror when trying to show GDPR withFragmentDialog(WebView). - Fixed a
ActivityNotFoundExceptionerror 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
proguardrules for aggressiveobfuscation(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
ISMRGSCustomAdaptermodule - it's across-promowithDSPforIronSource.
MRGService module:
- Fixed an issue with duplicates of MRGS logs in Logcat.
Bank module:
- Updated
com.android.billingclient:billingfrom4.1.0to6.0.1.
GDPR module:
- Added a new
MRGSGDPR#setBackgroundColor(float, float, float, float)method to changebackgroundinWebView.
Analytics module:
- Updated
AppsFlyer SDKfrom6.12.0to6.12.1.
Firebase module:
- Updated
Firebase SDKfrom10.12.0to10.13.0.
Authentication module:
- Updated
VKId SDKfrom0.102.0to0.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#GetAdvertisingIdcan returnnullintocallback.
Analytics module:
- Updated
com.appsflyer:af-android-sdkfrom6.11.1to6.12.1.
Firebase module:
- [iOS] Updated
Firebase SDKfrom10.10.0to10.12.0.
GDPR module:
- Extended a list of states for supporting CCPA: Connecticut(
CTDPA) and Colorado(CPA).
MyTracker module:
- Updated
com.my.tracker:mytracker-sdkfrom3.0.11to3.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-sdkfrom6.11.0to6.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
callbackwas called twice after authentication in Facebook.
Notifications module:
- Added a new
MRGServiceParams#setClearNotificationTrayEnabled(boolean)method to control of removingpush-notificationsat 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-gamingservicesfrom11.2.0to16.0.1.
MRGService module:
- Improved detection of geo-positioning by IP.
-
MRGSDevice#getReachabilitymethod will return1(slow connection) for mobile internet. It used to return2for mobile and wi-fi connection. -
Fixed an internal issue of incorrect validation of passed params for
MRGSTracker#trackAdRevenuemethod.
GDPR module:
- Fixed an issue for UI in
MRGSCOPPA.
Analytics module:
- Added sending test purchases to AppsFlyer. Such purchases will be sent with
revenue0. -
Supported sending
Amazonpurchases toAppsFlyer. -
Updated*
com.appsflyer:af-android-sdkfrom6.10.2to6.11.0. -
Fixed a potential error which can lead to crashes.
Authentication module:
- Added
MRGSAuthentication#login(Activity, MRGSLoginCallback)andMRGSAuthentication#login(Activity, List<String>, MRGSLoginCallback)method for stable authentication. The old methods were marked asdeprecated.
Firebase module:
- Added sending test purchases to AppsFlyer. Such purchases will be sent with
revenue0.
IronSource module:
-
Supported auto-setting segments into IronSource according to with settings from MRGS console.
-
Fixed a crash after failed casting
ImpressionData.revenuetodouble, if there was notrevenueinImpressionData.
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
MRGSIronSourcemodule 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 sendimpression-leveldata of advertising revenue to MRGS. -
Updated
com.huawei.hms:opendevicefrom6.7.0.300to6.9.0.300.
Analytics module:
-
Supported sending
impression-leveldata of advertising revenue to AppsFlyer. It can be enabled/disabled in MRGS console of project section. -
Updated
com.appsflyer:af-android-sdkfrom6.9.3to6.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-analyticsfrom21.2.0to21.2.2.
Notifications module:
- Updated
com.google.firebase:firebase-messagingfrom23.1.1to23.1.2. - Updated
com.huawei.hms:pushfrom6.7.0.300to6.9.0.300.
MyTracker module:
- Updated
com.my.tracker:mytracker-sdkfrom3.0.10to3.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)andMRGSMyGames#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()return0because 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_purchaseandaf_subscribewere sent).
Firebase module:
- Added a new
MRGSFirebase#getAppInstanceId(Consumer<String>)method to getappInstanceIdfromFirebase 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
MRGSTrackerProfileclass 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
appsflyerIdfor 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_trialandaf_subscribeinAppsFlyer - 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
ANRwhen trying to getUser 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 13support - 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
deprecatedfunctionality. - 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:agcpfrom 1.6.0.300 to 1.7.3.300 - Updated
com.huawei.hms:ads-identifierfrom 3.4.39.302 to 3.4.58.301 - Updated
com.huawei.hms:opendevicefrom 5.1.1.307 to 6.7.0.300 - Updated
com.huawei.hms:pushfrom 6.1.0.300 to 6.7.0.300 - Updated
com.huawei.hms:iapfrom 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-messagingfrom23.1.0to23.1.1. - Updated
com.google.firebase:firebase-messagingfrom23.0.6to23.1.0.
Support module:
- Added a new class
MRGSMyGamesSupportwith 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 asDeprecated
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
useDeviceIdAsUserIdyou 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-sdkfrom6.8.2to6.9.3.
Firebase module:
- Added method
setUserProperties - Updated
com.google.firebase:firebase-analyticsfrom21.1.0to21.2.0.
Authentication module:
- Added authorization support for GooglePlayGamesV2.
- The
MRGSAuthenticationFacebookauthorization has been moved into its own moduleMRGSAuthenticationFacebookModule. - The
MRGSAuthenticationAmazonauthorization has been moved into its own moduleMRGSAuthenticationAmazonModule. - 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-authfrom20.3.0to20.4.0. - Updated
com.google.android.gms:play-services-gamesfrom22.0.1to23.1.0.
Module MyTracker:
- Updated
com.my.tracker:mytracker-sdkfrom3.0.9to3.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_levelfield 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:
- Returned default behavior for changing subscription from DEFERRED to IMMEDIATE_WITH_TIME_PRORATION.
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. TheMRGSMyTrackerParamsclass has moved into the MRGSMyTracker module. - Work with VK authorization moved to a separate module
MRGSAuthenticaitonVK. TheMRGSVKontakteParamsclass has moved to the MRGSAuthenticationVK module. - Changed all package names from
ru.mail.mrgservicetogames.my.mrgs - removed references to
VK/MyTrackerfrom 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#VKPlayModeremoved. UseMRGSMyGamesParams#CustomHost.
Support module:
- Enum
ru.mail.mrgservice.MRGSMyComSupport.Credential.SocialNetwork.VKremoved.
Authentication module:
- Enum
MRGSAuthenticationNetworkremoved, 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.comto 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
appsflyerIdparameter 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_GAMEis tagged@Deprecated, useBillingSubstitution.MY_GAMESinstead.
Analytics module:
- Added ability to automatically set UserID in AppsFlyer instead of deviceId. See AppsFlyer connection documentation for details.
- Added ability to delay AppsFlyer start until UserID is set. See AppsFlyer connection documentation for details.
- Added sending of cumulative session events (10/30/60/90/180 minutes) for new users. For details, see in the AppsFlyer connection documentation.
- Added enrichment of all requests in MRGS with the AppsFlyerID field.
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()andMRGServiceParams#setUseMyGamesBillingOnly(boolean)methods, useMRGServiceParams#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-sdkfrom3.0.8to3.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-sdkfrom3.0.7to3.0.8.
Analytics module:
- Updated
com.appsflyer:af-android-sdkfrom6.8.0to6.8.2.
Authentication module:
- Added a new method
MRGSMyGames#setHideBrandOccurrences(boolean)to hide all brand mentions MY.GAMES when logging in viaIMRGSAuthenticationMyGames. 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:billingfrom3.0.3to4.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:appcompatfrom1.4.2to1.3.1, because it requiredcompileSdkVersionnot lower than 31.
MRGService module:
- Fixed an issue when
MRGSDevice#getOpenUDID(Callback)returns invalidOpenUDIDas "0000-0000".
Authentication module:
- Downgraded
com.vk:android-sdk-corefrom3.5.2to3.4.1, because it requiredcompileSdkVersionnot lower than 31. - Downgraded
androidx.browser:browserfrom1.4.0to1.3.0, because it is not compatible withandroid gradle plugin/gradle 4.0/6.1.1and 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:appcompatfrom1.2.0to1.4.2.
MRGService module:
- Updated
com.my.tracker:mytracker-sdkfrom3.0.4to3.0.7
Bank module:
- Added support for remote
Market|MyGamesshowcase title change.
Notifications module:
- Updated
com.google.firebase:firebase-messagingfrom22.0.0to23.0.6.
Analytics module:
- Updated
com.appsflyer:af-android-sdkfrom6.5.2to6.8.0
Firebase module:
- Updated
com.google.firebase:firebase-analyticsfrom19.0.2to21.1.0.
Authentication module:
- Added sending user info when logging in via Vk social network.
- Updated
com.vk:android-sdk-corefrom3.3.0to3.5.2 - Updated
com.google.android.gms:play-services-authfrom19.2.0to20.2.0. - Updated
com.google.android.gms:play-services-gamesfrom21.0.0to22.0.1. - Updated
androidx.browser:browserfrom1.3.0to1.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.ActivityResultListenerremoved. - Interface
Printableremoved. - Interface
MRGSIntegrationCheck.MRGSIntegrationCheckListenerremoved. - Class
MRGSX509ExtendedTrustManagerremoved. - Class
MRGSX509TrustManagerremoved. - Class
MRGSAirLogremoved. -
Class
MRGSExtSDKremoved. -
Method
MRGService#instance()renamed toMRGService#getInstance(). - Method
MRGService#checkIntegration(MRGSIntegrationCheck.MRGSIntegrationCheckListener)removed. UsecheckIntegration(@Nullable Consumer<MRGSIntegrationCheckResult>)instead. - Method
MRGService#initialized()removed. UseMRGService#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. UseMRGSSharedPreferences#newInstance(String)instead. - Method
MRGService#getSharedPreferences(Context, String)removed. UseMRGSSharedPreferences#newInstance(Context, String)instead. - Method
MRGService#sendHandleException(String)removed. UseMRGSCrashReports#sendHandleException(String)instead. -
Method
MRGService#sendHandleException(String, String)removed. UseMRGSCrashReports#sendHandleException(String, String)instead. -
Method
MRGSLog#log(String)removed. -
Method
MRGSMetrics.addPurchase(String, String, String)removed. UseMRGSMetrics.addPurchase(MRGSPurchaseEvent)instead. -
Method
MRGSUsers#instance()renamed toMRGSUsers#getInstance(). -
Method
MRGSUsers#getCurrentUser()now returns MRGSUser instead of MRGSMap. -
Method
MRGSDevice#instance()renamed toMRGSDevice#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 toMRGSDevice#getDeviceIdOrUUID(). -
Method
MRGSApplication#instance()renamed toMRGSApplication#getInstance(). -
Method
MRGSApplication#getApplicationBundleName()will not return any more null. -
Method
MRGSServerData#instance()renamed toMRGSServerData#getInstance().
Advertising module:
-
Now the SDK can be downloaded via Maven repository. Learn more.
-
Class
ru.mail.mrgservice.MRGSAdvertisingConstsremoved. - Class
MRGSAdvertisingFactorymoved fromru.mail.mrgservicetoru.mail.mrgservice.advertising. - Const
MRGSAdvert.SHOW_FULLSCREENmarked as@Deprecatedand well be deleted soon. - Method
MRGSAdvert#showContent(int, String)marked as@Deprecatedand well be deleted soon.
Analytics module:
-
Now the SDK can be downloaded via Maven repository. Learn more.
-
Class
MRGSGoogleConversionremoved. - Class
MRGSAnalyticsmoved fromru.mail.mrgservicetoru.mail.mrgservice.advertising. -
Class
MRGSAppsFlyermoved fromru.mail.mrgservicetoru.mail.mrgservice.advertising. -
Method
MRGSAnalytics#getGoogleConversion()removed. - Method
MRGSAppsFlyer#setCustomerUserId(String)removed. UseMRGSAppsFlyer#forceCustomerUserId(String)instead.
Authentications module:
-
Now the SDK can be downloaded via Maven repository. Learn more.
-
Class
MRGSAmazonmoved fromru.mail.mrgservice.amazontoru.mail.mrgservice.authentication.amazon. - Class
MRGSFacebookmoved fromru.mail.mrgservice.facebooktoru.mail.mrgservice.authentication.facebook.. - Class
MRGSGoogleGamesmoved fromru.mail.mrgservice.googlegamestoru.mail.mrgservice.authentication.googlegames. - Class
MRGSMyGamesmoved fromru.mail.mrgservice.mygamestoru.mail.mrgservice.authentication.mygames. - Class
MRGSVKmoved fromru.mail.mrgservice.vktoru.mail.mrgservice.authentication. - Class
MRGSUseris interface now, and also moved fromfrom ru.mail.mrgservicetoru.mail.mrgservice.authentication.amazon. - Class
FacebookUserremoved. - Class
MRGSCredentialsis interface now. -
Class
MRGSAuthInfomarked ad @Deprecated. UseMRGSAccessTokeninstead. -
Interface
MRGSAuthentication.ExternalLogoutCallbackmarked as @Deprecated. UseMRGSAuthentication.OnExternalLogoutListenerinstead. - Interface
MRGSSocialmoved fromru.mail.mrgservice.socialtoru.mail.mrgservice.authentication. - Interface
MRGSScoremoved fromru.mail.mrgservice.gamestoru.mail.mrgservice.authentication. - Interface
MRGSLeaderBoardsmoved fromru.mail.mrgservice.gamestoru.mail.mrgservice.authentication. - Interface
MRGSAchievementsmoved fromru.mail.mrgservice.gamestoru.mail.mrgservice.authentication. -
Interface
MRGSAuthInfoCallback.javaremoved. -
Enum
MRGSAuthenticationNetwork.MRGSAuthenticationNetworkAmazonrenamed toMRGSAuthenticationNetwork.AMAZON. - Enum
MRGSAuthenticationNetwork.MRGSAuthenticationNetworkFacebookrenamed toMRGSAuthenticationNetwork.FACEBOOK. - Enum
MRGSAuthenticationNetwork.MRGSAuthenticationNetworkGoogleGamesrenamed toMRGSAuthenticationNetwork.GOOGLE_GAMES. - Enum
MRGSAuthenticationNetwork.MRGSAuthenticationNetworkMyGamesrenamed toMRGSAuthenticationNetwork.MY_GAMES. - Enum
MRGSAuthenticationNetwork.MRGSAuthenticationNetworkVKontakterenamed toMRGSAuthenticationNetwork.VKONTAKTE. -
Enum
MRGSAuthenticationNetwork.Unknownrenamed toMRGSAuthenticationNetwork.UNKNOWN. -
Method
MRGSAuthentication#loginWithScopes(List<String>, MRGSLoginCallback)marked as @Deprecated. UseMRGSAuthentication#login(List<String>, MRGSLoginCallback)instead. - Method
MRGSAuthentication#getAuthInfo(BiConsumer<MRGSAuthInfo, MRGSError>)marked as @Deprecated. UseMRGSAuthentication#getAccessToken(BiConsumer<MRGSAuthInfo, MRGSError>)instead. - Method
MRGSAuthentication#getUserAvatar(MRGSUser, MRGSAvatarCallback, int, int)marked as @Deprecated. UseMRGSAuthentication#getUserAvatar(MRGSUser, int, int, MRGSAvatarCallback)instead. -
Method
MRGSAuthentication#setOnExternalLogoutCallback(ExternalLogoutCallback)marked as @Deprecated. UseMRGSAuthentication#setOnExternalLogoutListener(OnExternalLogoutListener)instead. -
Method
MRGSAmazon#tryUpdateToken()removed. UseMRGSAmazon#getAccessToken(BiConsumer<MRGSAccessToken, MRGSError>)instead. -
Method
MRGSAchievement#achievementId()marked as @Deprecated. UseMRGSAchievement#getAchievementId()instead. - Method
MRGSAchievement#name()marked as @Deprecated. UseMRGSAchievement#getName()instead. - Method
MRGSAchievement#description()marked as @Deprecated. UseMRGSAchievement#getDescription()instead. - Method
MRGSAchievement#state()marked as @Deprecated. UseMRGSAchievement#getState()instead. - Method
MRGSAchievement#currentSteps()marked as @Deprecated. UseMRGSAchievement#getCurrentSteps()instead. - Method
MRGSAchievement#totalSteps()marked as @Deprecated. UseMRGSAchievement#getTotalSteps()instead. -
Method
MRGSAchievement#completionPercent()marked as @Deprecated. UseMRGSAchievement#getCompletionPercent()instead. -
Method
MRGSCredentials#setUserId(String)removed. - Method
MRGSCredentials#setUser(MRGSUser)removed. - Method
MRGSCredentials#setAuthInfo(MRGSAuthInfo)removed. -
Method
MRGSCredentials#getAuthInfo()marked as @Deprecated. UseMRGSCredentials#getAccessToken()instead. -
Method
MRGSLeaderboard#leaderboardId()marked as @Deprecated. UseMRGSLeaderboard#getLeaderboardId()instead. -
Method
MRGSLeaderboard#name()marked as @Deprecated. UseMRGSLeaderboard#getName()instead. -
Method
MRGSScore#leaderboardId()marked as @Deprecated. UseMRGSScore#getLeaderboardId()instead. - Method
MRGSScore#rank()marked as @Deprecated. UseMRGSScore#getRank()instead. - Method
MRGSScore#displayRank()marked as @Deprecated. UseMRGSScore#getDisplayRank()instead. - Method
MRGSScore#rawScore()marked as @Deprecated. UseMRGSScore#getRawScore()instead. - Method
MRGSScore#displayScore()marked as @Deprecated. UseMRGSScore#getDisplayScore()instead. -
Method
MRGSScore#player()marked as @Deprecated. UseMRGSScore#getPlayer()instead. -
Method
MRGSUser#userId()marked as @Deprecated. UseMRGSUser#getUserId()instead. - Method
MRGSUser#nick()marked as @Deprecated. UseMRGSUser#getNickName()instead. - Method
MRGSUser#firstName()marked as @Deprecated. UseMRGSUser#getFirstName()instead. - Method
MRGSUser#lastName()marked as @Deprecated. UseMRGSUser#getLastName()instead. - Method
MRGSUser#middleName()marked as @Deprecated. UseMRGSUser#getMiddleName()instead. - Method
MRGSUser#fullName()marked as @Deprecated. UseMRGSUser#getFullName()instead. - Method
MRGSUser#displayName()marked as @Deprecated. UseMRGSUser#getDisplayName()instead. - Method
MRGSUser#gender()marked as @Deprecated. UseMRGSUser#getGender()instead. - Method
MRGSUser#birthDate()marked as @Deprecated. UseMRGSUser#getBirthDate()instead. - Method
MRGSUser#location()marked as @Deprecated. UseMRGSUser#getLocation()instead. - Method
MRGSUser#socialId()marked as @Deprecated. UseMRGSUser#getSocialId()instead.
Billing module:
-
Now the SDK can be downloaded via Maven repository. Learn more.
-
Class
MRGSBillingmoved fromru.mail.mrgservicetoru.mail.mrgservice.billing. - Class
MRGSPurchaseItemrenamed toMRGSBillingProductand moved fromru.mail.mrgservicetoru.mail.mrgservice.billing. - Class
MRGSBillingEntitiesmoved fromru.mail.mrgservicetoru.mail.mrgservice.billing. - Class
MRGSMyGamesBillingmoved fromru.mail.mrgservicetoru.mail.mrgservice.billing. - Interface
MRGSBillingDelegateremoved. -
Interface
MRGSBillingDelegateExrenamed toMRGSBillingDelegateand moved fromru.mail.mrgservicetoru.mail.mrgservice.billing. -
Method
MRGSBilling#instance()renamed toMRGSBilling#getInstance(). - Method
MRGSBilling#requestProductsInfoWithRequest(MRGSBankProductsRequest)renamed toMRGSBilling#requestProductsInfo(MRGSBankProductsRequest). - Method
MRGSBilling#buyItem(String sku, final String type)removed. UseMRGSBilling#buyItem(String sku)instead. - Method
MRGSBilling#buyItem(String sku, String type, String developerPayload)removed. UseMRGSBilling#buyItem(String sku, String developerPayload)instead. - Method
MRGSBilling#buyItem(final MRGSPurchaseItem purchase)removed. UseMRGSBilling#buyItem(MRGSBankPurchaseRequest)instead. - Method
MRGSBilling#setDelegate(MRGSBillingDelegateEx)removed. - Method
MRGSBilling#changeItem(String, String, String)removed. UseMRGSBilling#buyItem(MRGSBankPurchaseRequest)instead. - Method
MRGSBilling#changeItem(String, String, String, String)removed. UseMRGSBilling#buyItem(MRGSBankPurchaseRequest)instead. - Method
MRGSBilling#changeItem(MRGSPurchaseItem, MRGSPurchaseItem)removed. UseMRGSBilling#buyItem(MRGSBankPurchaseRequest)instead. - Method
MRGSBilling#getProductsInfo(ArrayList<String>)removed. UseMRGSBilling#requestProductsInfo(MRGSBankProductsRequest)instead. - Method
MRGSBilling#getProductsInfoWithTypes(ArrayList<Pair<String, String>>)removed. UseMRGSBilling#requestProductsInfo(MRGSBankProductsRequest)instead. - Method
MRGSBilling#getProductsInfoFromPurchaseInfo(ArrayList<MRGSBillingProduct>)removed. UseMRGSBilling#requestProductsInfo(MRGSBankProductsRequest)instead. - Method
MRGSBilling#notifyMRGSAboutConsume(MRGSPurchaseItem)changed onMRGSBilling#notifyMRGSAboutConsume(String sku, String transactionId) -
Method
MRGSBilling#closePayment(MRGSPurchaseItem)removed. UseMRGSBilling#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. UseMRGSBankTransaction#getTransactionIdentifier()instead. - Method
MRGSBillingProduct#getTransactionReceipt()removed. - Method
MRGSBillingProduct#getResultCode()removed. - Method
MRGSBillingProduct#getRawPurchaseInfo()removed. UseMRGSBankTransaction#getRawPurchaseResult()instead. - Method
MRGSBillingProduct#getDeveloperPayload()removed. UseMRGSBankPurchaseResult#getDeveloperPayload()instead. - Method
MRGSBillingProduct#setDeveloperPayload(String)removed. -
Method
MRGSBillingProduct#getUserId()removed. -
Method
MRGSBillingDelegate#onReceiveProductsResponcerenamed toMRGSBillingDelegate#onReceiveProductsResponse. - Method
MRGSBillingDelegate#onReceiveSuccessfullPurchaserenamed toMRGSBillingDelegate#onReceiveSuccessfulPurchase.
Firebase module:
-
Now the SDK can be downloaded via Maven repository. Learn more.
-
Class
MRGSFirebaseAnalyticsmoved fromru.mail.mrgservicetoru.mail.mrgservice.firebase.
GDPR module:
-
Now the SDK can be downloaded via Maven repository. Learn more.
-
Class
MRGSGDPRmoved fromru.mail.mrgservicetoru.mail.mrgservice.gdpr. - Class
MRGSGDPR.MRGSGDPRFactoryremoved. UseMRGSGDPR#getInstance()instead. -
Interface
MRGSCOPPA.OnResponseCallbackremoved from the public API, as it's intended for internal work. -
Method
MRGSGDPR#showAgreementAtActivity(Activity, String, String, int)removed. UseMRGSGDPR#showAgreementAtActivity(Activity, String, String)instead. - Method
MRGSGDPR#shouldShowGDPRForVersion(Activity, String, int, boolean, MRGSGDPRAsyncStatus)removed. UseMRGSGDPR#shouldShowGDPRForVersion(Activity, String, boolean, MRGSGDPRAsyncStatus)instead. - Method
MRGSGDPR#setUserHasAcceptedAgreementWithVersion(Context, int, boolean, boolean, String)removed. UseMRGSGDPR#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
MRGSGDPRmoved fromru.mail.mrgservicetoru.mail.mrgservice.gdpr. - Class
MRGSPushNotificationsremoved. UseMRGSNotificationCenterinstead. - Class
MRGSLocalPushServiceremoved. UseMRGSNotificationCenterinstead. - Class
MRGSLocalPushAutoStartReceiverremoved. - Class
MRGSPushNotification.MRGSPushNotificationChannelremoved. Useru.mail.mrgservice.MRGSNotificationChannelinstead. -
Class
MRGSPushNotification.MRGSPushNotificationChannelsGroupremoved. Useru.mail.mrgservice.MRGSNotificationChannelGroupinstead. -
Interface
MRGSPushNotificationHandler.MRGSPushNotificationDelegateremoved. -
Interface
MRGSPushNotificationHandler.MRGSPushNotificationDelegateExrenamed toMRGSPushNotificationHandler.MRGSPushNotificationDelegate. -
Interface
MRGSPushNotificationHandler.MRGSPushNotificationGroupDelegateremoved. -
Interface
MRGSPushNotificationHandler.MRGSPushNotificationExGroupDelegaterenamed toMRGSPushNotificationHandler.MRGSPushNotificationGroupDelegate. -
Method
MRGSNotificationCenterImpl.getInstance()removed. UseMRGSNotificationCenter.getInstance()instead. - Method
MRGSPushNotification.getCutomTextStrings()renamed toMRGSPushNotification.getCustomTextStrings(). - Method
MRGSPushNotificationHandler#setDelegate(MRGSPushNotificationDelegateEx)removed.
Recommendations module:
-
Now the SDK can be downloaded via Maven repository. Learn more.
-
Class
MRGSRecommendationsmoved fromru.mail.mrgservicetoru.mail.mrgservice.recsys. -
Method
MRGSRecommendations#offerView(String, MRGSMap)removed. UseMRGSRecommendations#trackEvent(MRGSRecSysEvent)instead. - Method
MRGSRecommendations#offerClick(String, MRGSMap)removed. UseMRGSRecommendations#trackEvent(MRGSRecSysEvent)instead. - Method
MRGSRecommendations#offerBuy(String, MRGSMap)removed. UseMRGSRecommendations#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. UseMRGSMyComSupportDialog(Activity)instead. - Constructor
MRGSMyComSupportDialog(Activity, String, boolean)removed. UseMRGSMyComSupportDialog(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 to0when 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 unmarshallingforVkauthentication.
Bank module:
- Added sending of
version numberandbuildto 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@Deprecatedand will be removed shortly. UseMRGSApplication#getInstance()instead of the old method. - The
MRGSDevice#instance()method is marked@Deprecatedand will be removed shortly. UseMRGSDevice#getInstance()instead of the old method. - The
MRGService#instance()method is marked@Deprecatedand will be removed shortly. UseMRGService#getInstance()instead of the old method. - The
MRGSServerData#instance()method is@Deprecatedand will be removed shortly. UseMRGSServerData#getInstance()instead of the old method. - The
MRGSUsers#instance()method is@Deprecatedand will be removed shortly. UseMRGSUsers#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
@Deprecatedand 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(). UseMRGSBilling#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_STORAGEfrom 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.2to3.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.0to6.5.2. Learn more. - Added additional sending of payment data such as:
af_content_id(sku of a product) andaf_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.1to1.2.0because 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.1to3.0.2. Learn more. - Updated Appset Id SDK from
16.0.0to16.0.1.
Analytics module:
- Updated AppFlyer SDK from
6.3.2to6.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
callbackmethods could returndeveloperPayloadwith 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#showCOPPAFlowIfNeededif 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
callbackmethods could returndeveloperPayloadwith 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#showCOPPAFlowIfNeededif 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, useMRGSDevice#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, useMRGSAppsFlyer#forceCustomerUserId(String)instead.
Bank module:
- Fixed a bug with json parsing when
JSONObject.optstringcould 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
openingandacceptingGDPR 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.0to3.0.1. - Updated
com.google.gms:google-servicesfrom4.3.5to4.3.10. - Updated
com.huawei.agconnect:agcpfrom1.4.1.300to1.6.0.300. - Updated
com.huawei.hms:ads-identifierfrom3.4.34.301to3.4.39.302. - Updated
com.huawei.hms:opendevicefrom5.0.4.300to5.1.1.307. - Fixed a rare error that caused
mrgsmetrics#addpurchaseto lose events that did not have time to go away during the game session after restarting the application.
Advertising module:
- Updated
androidx.appcompat:appcompatfrom1.2.0to1.3.1. - Updated
androidx.recyclerview:recyclerviewfrom1.0.0to1.2.1.
Analytics module:
- Updated
androidx.appcompat:appcompatfrom1.2.0to1.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.0to11.0. - Updated
androidx.appcompat:appcompatfrom1.2.0to1.3.1. - Updated
androidx.browser:browserfrom1.0.0to1.3.0. - Updated
com.google.android.gms:play-services-authfrom18.0.0to21.0.0. - Updated
com.google.android.gms:play-services-gamesfrom19.0.0to19.2.0. - Updated
com.vk:androidsdk:2.7.0fromcom.vk:android-sdk-core:3.3.0. Attention!!! Now VK authorization is requiredminSdkVersion="21"(Android 5.0+) to work. - Fixed
NullPointerExceptioninCustomTabMainActivitywhen 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:appcompatfrom1.2.0to1.3.1. - Updated
com.huawei.hms:iapfrom5.1.0.300to6.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:appcompatfrom1.2.0to1.3.1. - Updated
com.google.firebase:firebase-analyticsfrom18.0.2to19.0.2.
GameCenter module:
- Updated
androidx.appcompat:appcompatfrom1.2.0to1.3.1. - Updated
androidx.recyclerview:recyclerviewfrom1.0.0to1.2.1.
GDPR module:
- Updated
androidx.appcompat:appcompatfrom1.2.0to1.3.1.
Notifications module:
- Now
MRGSPushNotification#setCustomViewImagewill search for the image not only in drawable but also in mipmap if the image was not in drawable. - Updated
androidx.appcompat:appcompatfrom1.2.0to1.3.1. - Updated
com.google.firebase:firebase-messagingfrom21.0.1to22.0.0. - Updated
com.huawei.hms:pushfrom5.0.4.302to6.1.0.300.
Recommendations module:
- Updated
androidx.appcompat:appcompatfrom1.2.0to1.3.1.
Showcase module:
- Updated
androidx.appcompat:appcompatfrom1.2.0to1.3.1. - Updated
androidx.recyclerview:recyclerviewfrom1.0.0to1.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#getSecretmethod, and it will be removed by the end of the year. - Deprecated
MRGSMyComSupport#setSecretmethod, and it will be removed by the end of the year. - Deprecated
MRGSMyComSupportDialog.Builder#setSecretmethod, and it will be removed by the end of the year. - Updated
androidx.appcompat:appcompatfrom1.2.0to1.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 idwas 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 requestwhen multiple calls to theisBillingAvailablemethod 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.NullPointerExceptionin 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.0to11.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 onSaveInstanceStatewhen 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 notificationsortrying 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:
- Added support Facebook Login For Gaming.
- Added support for authorization in Facebook Cloud. Learn more.
Bank module:
- Added support for Facebook Cloud billing. Learn more
GDPR module:
- Added support for the COPPA law. Learn more.
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#addMetricclass.
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#adMetricmethod, 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
StringtoMRGSMapwhen checking integration, if the server did not returnresponse.
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
idfaconsisting of only zeros for theHuaweistore. Now, for more accurate statistics, you need to addedcom.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!!!
- Fixed login error for target 30+ (Android 11+) due to missing entry
-
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 Payloadwhen calling the function-transaction recovery.
- Fixed error setting
Firebase module:
- Fixed NullPointerException if the module was added but the
Firebase SDKwasn't, then in some cases the module could throw an error.
GDPR module:
- Changed behavior for the time of sending the
GDPR acceptanceevent, 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 versionseparately for each application. Now for each application, you can specify theGDPR versionin the config on the MRGS server.
MyGamesSupport module:
- Fixed an error for the new widget, due to which the
extra_paramsfield was passed to thelocalefield and was not processed on the server.
Showcase module:
- Removed a timer that blocked banner clicks if
click_timewas sent from the server greater than 0. - Changed a behavior of sending the number of
banner clickevents for one display of the showcase. Previously, it was possible to send no more than oneclick eventfor 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
Japaneselanguage. - Fixed a bug with text transfer for the
Koreanlanguage inWebView. - Added animation of "clicking" on the
GDPRacceptance button in theWebView. - Changed behavior of displaying
GDPRinWebView. NowGDPRis shown by default without Ad permission. - Fixed a bug that allows the server to downgrade the
GRDPversion on the client. Now the version can only be upgraded.
MyGamesSupport module:
- Fixed an error of sending the support window
closingevent if you return to the application by clicking the icon, and themanifestdoes not have a standardlaunchModeset for this event. - Fixed a bug with requesting the
widget version. Now thewidget versionis 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
closingevent if you return to the application by clicking the icon, and themanifestfor this event is not set to the standardlaunchMode. 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, somebuyItem,MRGSBillingDelegateand etc.) - end of 2021. - Old MRGSNotifications API (class
MRGSLocalPushServiceand etc.) - end of 2021. MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature)- end of 2021.- GDPR - methods including
agreementVersion(showAgreementFromFileand 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
threadswhen returning the result from theAndroid.mainthread to theUnity.mainthread. -
Facebook
- Fixed bug when trying to invite friends.
Billing module:
- Amazon
- Updated
In-app purchases SDKfrom2.0.61to2.0.76. - Added supporting for the new MRGSBilling API, which was previously added for Google, Huawei, and Samsung but was not added for Amazon.
- Updated
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, somebuyItem,MRGSBillingDelegateand etc.) - end of 2021. - Old MRGSNotifications API (class
MRGSLocalPushServiceand etc.) - end of 2021. MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature)- end of 2021.- GDPR - methods including
agreementVersion(showAgreementFromFileand 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.
- Added a new
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 theGoogle Play Store, then the transition to theGoogle Play Storewill 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, somebuyItem,MRGSBillingDelegateand etc.) - end of 2021. - Old MRGSNotifications API (class
MRGSLocalPushServiceand etc.) - end of 2021. MRGSMetrics.AddPurchase(string skuDetails, string purchaseData, string dataSignature)- end of 2021.- GDPR - methods including
agreementVersion(showAgreementFromFileand 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
codeinstead ofxml 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 withoutMRGSAuthenticationNetwork.
- Fixed an issue where
Billing module:
- Google
- Updated Google Billing SDK from
2.0.3to3.0.3.
- Updated Google Billing SDK from
MyGamesSupport module:
- Added new
MRGSMyComSupport.getMyComSupport().setCustomUserId(String)method, in case you need to open a support with a differentuserIdthanMRGSUsers.instance().setUserId(String).
Notifications module:
- Fixed a bug that did not display a
notification iconthat was set at the time of initialization of the MRGS SDK, if it was put through thecodeinstead of thexml 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
MRGSLocationServiceclass - responsible for determining the user's location, as this class has not been performing its functionality for a long time. - Removed
MRGSPackageRemoveReceiverclass - responsible for tracking deleted apps from the device, since this class has not been performing its functionality for a long time. - Removed
MRGService.MRGServiceNotInitializedExceptionclass - 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
MRGSMyTrackerclass could exist instead of one.
Billing module:
- Removed
<uses-permission android:name="com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR" />from manifest, since the billing ofbazaaris 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
IllegalStateExceptionwhen trying to displayFragmentafteronSaveInstanceState. - Fixed error
NullPointerExceptionwhen trying to open a support whileMyGamesSupportmodule 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 SDKfrom2.1.0to2.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:
Advertising module:
- Fixed incorrect behavior. If an error occurred while loading the content,
LoadDelegate.onAdvertisingLoadingErrorwas 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 theMRGSsection of the Crashes.
MyGamesSupport module:
- Fixed the
NetworkOnMainThreadExceptionerror when trying to request the number of unread messages from the old widget. Because of this error, it always returnedfalseforTicketListenerand0forTicketCallback. - 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
NoSuchElementExceptioninMRGSUsers.setUserId()when calling theMRGSUsers.setUserId()andMRGSUsers.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
IllegalStateExceptionwhen trying to view ads. - Fixed a rare error
MissingWebViewPackageExceptionwhen trying to view ads. - Removed supporting of Banner carousel (roller).
Analytics module:
- Updated
AppsFlyer SDKfrom6.1.1to6.2.3. - Added an ability to disable payment tracking. Learn more in documentation
- Added the ability to duplicate sending events from
MRGSMetrics(sent viaMRGSMetrics.addMetric()), intoAppsFlyer. Learn more in documentation
Billing module:
- Samsung
- Fixed error
NullPointerExceptionwhen the user canceled the payment.
- Fixed error
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:
- Added a new
Showcasemodule. Learn more in documentation.
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
Appsflyerversion 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
NullPointerExceptionwhen calling thecheckTicketsmethod 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.ConcurrentModificationExceptionwhen 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
NullPointerExceptionerror 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
AppsfalyerSDK updated from5.4.1to6.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
ConcurrentModificationExceptionwhen restoring transactions.
- Fixed crash of
-
Huawei
- Fixed crash of
ConcurrentModificationExceptionwhen 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.
- Fixed crash of
Firebase module:
- Updated
FirebaseAnalyticsSDK from17.2.1to18.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 GDPRmetric 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 MessagingSDK from20.0.0to21.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
nullfromActivityLifecycleCallbackswas passed instead ofActivity. - 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: LoginResultReceiverwhen trying to log in.
- Fixed rare crash
-
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 toMRGSBillingDelegateEx.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.
- Fixed an incorrect behavior where all errors when requesting products were passed to
-
Huawei
- Added support for Huawei In-App Purchases. See Environment settings and [Adding Huawei payments](https://mrgs.astrum.team/Doc/en/payments/integration/enhanced/android/#huawei.
MyGamesSupport module:
- Fixed an issue with missing default text in the dialog when requesting permissions.
Notifications module:
- Fixed crash
ConcurrentModificationException. - Added support for Huawei Push Kit. See Environment settings And SDK integration.
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
NoSuchElementExceptionerror when canceling a purchase if the developerPayload was not passed.
- Fixed the
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
ActivityNotFoundExceptioncrash 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
MRGSAuthenticationNetworkdue 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 theMRGSBankPurchaseResultclass of the new bank delegate. This method returns the identifier of the purchasing/purchased product, whilegetPurchaseItem()can return null if the product was not loaded, for example. -
Google
- Fixed a bug with returning empty
productId/skuif 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.
- Fixed a bug with returning empty
v4.3.1🔗
In this version:
Module MRGService (base):
- Fixed an error when calling auxiliary functions related to the absence of
ContextbeforeMRGServiceinitialization was called. - Updated the MyTracker SDK dependency to version 2.0.10.
- Improved integration check.
Module Billing:
- Samsung
- Fixed an issue with calling
MRGSBillingDelegateExwhen the user canceled a payment.
- Fixed an issue with calling
Module MRGSFirebaseModule
- Fixed an error when trying to cast
paymentAmountto 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)andonStop(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
getAppsFlyerIdmethod 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
MRGSBillingDelegateandMRGSBillingDelegateExat the start of billing initialization.
- Fixed the problem with
Module Firebase:
- Added some events in Firebase, sent for any purchase over $ 5,10,50,100. Read more here.
- Added field
VALUEin the event of purchases at Firebase, they need to purchase advertising.
Module GDPR/CCPA:
- The
checkIfUserGetsUnderGDPRmethod now require Activity instead Context. - Removed
getAgreementVersionandsetAgreementVersion(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.getVisibilityandMRGSPushNotification.setVisibilitymethods to display notifications on LockScreen in Secure mode. Learn more - Classes
MRGSPushNotificationsandMRGSLocalPushServicemarked as @Deprecated. Instead, Use the new classMRGSNotificationCenter. - The new interface
MRGSNotificationCenteris 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.shouldShowGDPRForVersionmethod 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
MRGSBankProductsRequesthas appeared in which using theaddmethods you can add a product or an array of products of a certain type (product types have now become an enumMRGSBankProductType). This request is then passed to the newrequestProductsInfomethod. - A new class
MRGSBankPurchaseRequesthas 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 -
didReceiveProductsResponceanddidReceiveProductsError, which receive an object of the new classMRGSBankProductsResponce, containing information about valid products of typeMRGSBankProduct, 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 theMRGSBankPurchaseResultclass, describing the result of the purchase, namely, the transaction (MRGSBankTransaction), product (MRGSBankTransaction), payload and an error with a code and description, if any.MRGSBankTransactiondescribes 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
checkIntegrationmethod 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
checkIntegrationmethod 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:
- 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: falsein json params to disable the vibration signal
Example:
- 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
setLacalizationLanguagemethod and pass the language designation in the ISO-639-1 format. You can get a list of available languages by calling thegetSupportedLocalizationsmethod. - 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,setForcingPeriodandflushmethods 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:
- 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.checkIntegrationintegration 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
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:
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:
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.httpcomponentsand 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
getAdvertisingandcreateAdvertisingmethods can show an exception:MRGServiceNotInitializedExceptionif the service was not initialized before calling these methods. - Fixed a possible crash if the
servicemethod 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:
- 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
campaignCompletemethod.
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:
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:
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:
Also note that, if you do not already have Google Maven Repository connected, you need to register it in the root build.gradle:
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
forwardMetricsparameter 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 callingMRGService.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)orMRGSBilling.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 withMRGSBilling.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:
- 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.setTitlein 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:
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
MRGSAdvertisingclass. ThehandleBannerClick(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.LoadDelegateinterface. Now theonLoadCompletemethod in the last parameter getsList <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:
- 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
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:
- Using the file MRGService.xml: in the Options tag, add the tag utmSource, with the source. For example:
<utmSource>test-utm-source</utmSource> - 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
- Replace in AndroidManifest.xml
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
with<service android:name="com.google.android.gms.analytics.CampaignTrackingService"/> - Delete libGoogleAnalyticsServices.jar from the project;
- 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:
- Delete the service
<service android:name="ru.mail.mrgservice.MRGSLocalPushService"/> - 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
Created: 2020-03-02