Releases
Releases 4.6:
4.6.2
What changed
- Cleared some parameters for in-app tracking and added xml documentation;
- Added public method MagifyManager.IsApplicationInstalled().
4.6.1
What changed
- Support of Aghanim web store;
- Added UPM as a source of External dependency manager dependency;
- Made improvement to be more likely to be able to send a request to save progress when app is going to the background;
- Renamed sync-state and social-auth related API.
4.6.0
What changed
- Added full Unity 6 support.
4.6.1 Alpha Deprecated
What changed
- Added more protection of native android library code from stripping. Be careful when using this release: it's not fully tested and may contain critical bugs.
4.6.0 Alpha Deprecated
What changed
- Added experimental Unity 6 support for Android platform only. Be careful when using this release: it's not fully tested and may contain critical bugs.
Releases 4.5:
4.5.7
What changed
- Added opportunity for to set custom Client ID based on any not empty string;
- Made TrustedPurchaseRecord.StoreFront an optional parameter.
4.5.6
What changed
- Allowed to use
CustomAndroidId,CustomBuildNumberandCustomAppVersionin UnityEditor (withUNITY_EDITORdefine active).
4.5.5
What changed
- Added
MAGIFY_DEBUGdefine symbols, that allows to use CustomAndroidId, CustomBuildNumber and CustomAppVersion (orMagifyDebugConfigfor MagifyManager integration).
4.5.4
What changed
- Added opportunity to set custom application version on SDK initialization (read more);
- Added API to make SDK ignore some features from different source (default\current config);
- Added
UsedApplicationDefaultFeaturesevent for tracking of features, that user got from the default config; - Added
Client-Timezoneheader for web-requests to determine the client's time zone and provide better segmentation; - Added handling of exceptions thrown during native
SetLastAccessTime()methods invocation; - Added
NullReferenceExceptionhandling during purchases verification process; - Added check for the number of local variables before preparing the localized strings for further use (bundles building);
- Added tests for application config hanlders;
- Fixed other minor bugs.
4.5.3
What changed
- Added support of verified (trusted) purchases that the Magify SDK can trust and not request verification on the Magify services side (see here);
- Opportunity to track purchases with no validation (see here);
- Added context loading and handling to the Magify basic integration;
- Added features and stored features scopes parsing to the Magify basic integration;
- Added content scope parsing to the Magify basic integration;
- Added cloning of incoming mutable collections in public
MagifyManagerandMagifyServiceAPI.
4.5.2
What changed
- Based on the initial feedback from various users, the compatibility of the reactive API has been improved.
4.5.1
What changed
- Removed dependency on
UniRx; - Added
IsBasicIntegrationflag for analytic models to determine which version of SDK is being used; - Change production endpoint url to
api.magify.com; - Change staging endpoint url to
api.jx-staging.magify.com; - Configured assembly definition files to avoid errors on first import.
4.5.0
What changed
- Server-interactions module has been refactored and optimized;
- Added check whether
DateTimewas parsed successfully fromIServerTimeProviderimplementation; - Added opportunity to set custom prefix for Magify's logs via
MagifyManager.Logging.SetCustomPrefixSource(); - Added
MagifyManager.FirstLaunchDateproperty andMagifyManager.TweakFirstLaunchDate()method for testing purposes. This method allows to permanently tweak the date of the first app launch; - Added piece of
NotNullandCanBeNullattributes to clarify API contracts; - Added lots of tests for web requests and response handlers;
- Fixed minor bugs.
Releases 4.4:
4.4.14
What changed
- General prefs' storage has been protected from conflicts during migrations.
4.4.13
What changed
- Fixed first launch after migration from old native SDK to the version with sync progress and then to a latest version.
4.4.12
What changed
- Fixed infinitive awaiting in the
AwaitInitialConfigParsing()method.
4.4.11
What changed
- Added new callbacks for config and for features to provide more control over their parsing.
4.4.10
What changed
- Optimized the generation process of
ClientIdin base SDK; - Handled binary storages loading errors during SDK initialization.
4.4.9
What changed
- Changed Purchaser service visibililty level to public.
4.4.8
What changed
- Added
SkipClientIdFromCloudLoadingandClientIdFromCloudLoadingTimeoutconfiguration options to provide control of loading ofClientIdfrom native cloud storage; - Fixed 'missing reference error' when only Max mediator define symbols were added for Magify Service.
4.4.7
What changed
- Fixed errors with access to native Android API;
- Fixed editor error with fake cloud storage.
4.4.6
What changed
- Fixed
NullReferenceExceptionwhen returned value ofMagifyEditorMoq.RegisteredLtoOffers()is null; - Added
MagifyServerTimeProviderfor getting server time from Magify Server.WorldTimeApiServerTimeProviderwas deleted; - Fixed an infinitive loop when ATT status passed right on initialization;
- Fixed a situation when the Android build number (version code) requested from the thread pull returned '0';
- Clarified error logs during sync state process.
4.4.5
What changed
- Improved handling of errors of writing to storage on disk;
- Fixed infinitive loop on SDK termination if there was token loading;
- Added handling of the "Additional text encountered after finished reading JSON content" exception during migration from old android SDK;
- Optimized SDK's initialization;
- Fixed a vulnerability that may prevent migration from old native SDK from happening;
- Improved OnConfigLoaded callback to allow requesting a campaign from its subscribers;
- Added thread safety and check for storing and deleting caches for CacheContent;
- Adapted some code for old code analyzer for Unity 2021;
- Added
HasSocialAuthorizeflag to check is socialproviderandtokenhave been passed; - Handled argument null exception (
_unity_self) during web request's aborting.
4.4.4
What changed
- Added
AutoRestoreStateInfoproperty. It provides access to the info about automatic state restoring; - Added
IsAutoRestoreStateEnabledproperty. It allows you to control automatic state restoring; - Added opportunity to fake
AndroidIdon initialization (MAGIFY_VERBOSE_LOGGINGrequired --- since 4.5.5 replaced byMAGIFY_DEBUG).
4.4.3
What changed
- Added
ResetUserAuthorizationmethod. It allows to reset previously set social authorization provider and token.
4.4.2
What changed
- Fixed infinitive loop if web-request was cancelled on first start.
4.4.1
What changed
- Fixed context and auth token requests cancellation handling.
4.4.0
What changed
- Added the ability to create a single bundle with all included languages instead of a bundle for each language;
- Added
storefrontfield, that represents store country for InApp and Subscriptions analytics; - Added
original_app_versionfield for some analytics models to show the version on which the event was generated. The goal was to have two filters and dimenschne by app version in the reports. The first with information about the app version on which the event was sent to the server, the second with information about the app version that the user had at the time of the event track. Works out of the box, you don't have to do anything, list of models:AdsClick;AdsImpression;AppLaunch;ApplovinAdsImpression;Bonuses;Click;EventFail;Impression;ImpressionFail;InApps;InvalidNativeElement;LevelPlayAdsImpression;MailingListStatusesMapping;PaidSubscriptionActivation;SessionEvent;StartEndSession;Transaction;TrialActivation;
- Added
TrackCorrectionTransactionAPI for the appropriate transaction type. In the "Transaction" analytics model, thetransaction_typefield can now also containspend_correction.
Releases 4.3:
4.3.1
What changed
- Added stored app features;
- Update analytics events with
product_idandproduct_id_creative; - Added segmentation by build number.
Releases 4.2:
4.2.2
What changed
- Added switching of analytics sync timer on main thread;
- Update analytics events with
product_idandproduct_id_creative; - Making a copy of
paramsargument for campaign impression event; - Added flag to replace campaign type representation from int to string;
- Improved security of sending events process;
- Reset AuthToken on environment tweak.
4.2.1
What changed
- Added basic xml-documentation for Save & Restore progress functionality.
4.2.0
What changed
- Added functionality of saving and restoring the user (
ClientId) and his game progress. It is possible to restore automatically at the first startup after installing the application, as well as manually, controlled by you. There is a functionality of automatic user recovery (on Android works within one device, on iOS within one device or one apple-account); - Added the ability to query the current Magify config by scopes (i.e. query individual parts as needed). Works in additive mode, i.e. requested scopes will overwrite previously downloaded data only by the corresponding fields;
- Added processing of new sections of the config: AB-tests and Segmentations. These sections provide information about which ab-tests and segments a player has gotten into. They are loaded only if the corresponding config scopes are explicitly specified;
- TrackInstalls-event has been removed;
- MagifyEditorMoq for
ActiveLtoOffers()andRegisteredLtoOffers()methods returns null by default.
Releases 4.1:
4.1.2
What changed
- Now there are 2 working modes of Magify: Default & Advanced:
- Default mode supports only collecting and sending analytics;
- Advanced mode supports all the functionality of Magify (add
MAGIFY_ADVANCEDdefine symols to your project);
- Added UseAdvancedVersion flag to
MagifyConfigfor enabling Advanced version of Magify; - Added active purchases verification;
- Added
IsAttAuthorizedflag toMagifyConfig; - Added originalTransactionId for purchasing-related analytics models;
- Supported multithreading in EventHandler. Handled UnityWebRequests exceptions;
- Added retry for savng BinaryStorage on disk;
- Added retry for loading BinaryStorage from disk;
- Handled failed to access GPS ad id exception;
- Reduced amount of LogError in Unity editor;
- Internal optimizations and bug-fixes.
Releases 4.0:
4.0.24
What changed
- Added setting of
SubscriptionStatusandAuthorizationStatusbefore first AppLaunch (cause iOS doesn't migrate them).
4.0.23
What changed
- Added switching of analytics sync timer on main thread;
- Update analytics events with
product_idandproduct_id_creative; - Making a copy of
paramsargument for campaign impression event; - Added flag to replace campaign type representation from int to string;
- Improved security of sending events process;
- Reset AuthToken on environment tweak.
4.0.21
What changed
- Fixed some bugs with
EditorDeviceworing; - Added ability to moq the list of registered and active offerers via EditorMoq. Also, if developer mode is enabled, any calls to Magify client will be scipped;
- Fixed working with time in daily counters;
- Imroved catching of exceptions during migration from old (before 4.0.0) sdk versions;
- Improved working with internal storages;
- Supported multithreading for analytics events, that improves quality of analytics at critical moment;
- Handled exceptions with native android libraries.
4.0.15
What changed
- Added support of all platforms for magify C# assembly. It's required by bundle creator for editor-builds.
4.0.14
What changed
- Improved support of High code stripping for some Sdk models;
- Improved server interactions (operation cancellations, logs, threading);
- Fixed timestamp format in analytics events;
- Some fixes of working in Unity editor;
- Added public Api to
FirstInstalledVersionproperty; - Added TrackRestoredSubscription method;
- Improved migration from old versions logic;
- Added
ClearNativeStorage()method. Clears Magify keychains on iOS (nothing on android for now); - Replaced timeout for textures/bundles loading with
DownloadPromiseand multiple handles to it for differentLoad()calls; - Fix choice parameter of event parsing (handled JArray value);
- Fixed tweak user locale method, restored
ResetAndForceUpdate().
4.0.0
What changed
- Internal SDK has been completely rewritten in c# without changed in functional logic;
- Added "Magify Service" as separate package without any changes to core manager;
- Added full support of Magify Runtime in the Unity Editor;
- Added
Environment.Offlineto block all server interactions (recommended for use only in Editor); - Added
MagifyLoggerwithLoggingScopeto manage logs; - Added
AdPreloaderas part ofMagifyServiceto preload (cache) ads; - Improved subscription status refreshing;
- Added more detailed
PurchaseReceiptModeltoPurchaseInfo; - Added CrossPromoProduct and
CrossPromoProductObtainer; - Almost all of exceptions converted to inheritors of
MagifyException; - Added 'test suite' support for
LevelPlayMediator; - Improved ads revenue tracking.