Skip to content

Releases: Seanm07/pickle-plugin

Version 33

Choose a tag to compare

@Seanm07 Seanm07 released this 26 Mar 12:21

We recently switched to using Google's MobileAdsEventExecutor instead of our custom script to execute on the main thread, however this created some editor issues as our previous admob editor initialisation method caused the MobileAdsEventExecutor to never get setup.

Looks like newer versions of Google Mobile Ads have fixed calling the regular MobileAds.Initialize(..) function in the editor so I have now removed our custom dummy editor initialization and switched back to Google's method, this fixes the MobileAdsEventExecutor not running.

Unity script changes:

  • AdMob_Manager.cs fixed initialisation never completing in the editor, this issue had no impact on real devices

Version 32

Choose a tag to compare

@Seanm07 Seanm07 released this 11 Feb 14:28

Re-added some missing iOS functions which were mistakenly removed from version 31 and added basic toast message functionality to iOS replicating the same android behaviour.

iOS plugin changes:

  • Added function to get IDFA on iOS (unique id across all apps)
  • Added function to get IDFV on iOS (unique id across apps by same developer)
  • Added function to show and hide toast messages similar to android

Unity script changes:

  • PickleCore.cs DisplayToastMessage(string:message, bool:longShowTime) and CancelToastMessage() are now also supported on iOS alongisde android

Version 31 (patch 1)

Choose a tag to compare

@Seanm07 Seanm07 released this 06 Feb 12:48

This is a minor patch with hotfixes for version 31.
See the full version 31 changelog here: Version 31 changelog

Script Changes:

  • Removed leftover debug code which was disabling the editors fake admob initialisation
  • Fixed IAB quantity not working

Version 31

Choose a tag to compare

@Seanm07 Seanm07 released this 05 Feb 17:21

The pickle scripts have now also been moved directly into this repository so changes are directly visible and pull requests can potentially be made.

Pickle Script Changes:

  • Repeated AdMob errors are now only logged to analytics the first time they happen in the sequence of failures
  • IVMetrics event calls are now intergrated into the AdMob Manager script within a IVMETRICS_EVENTS_ENABLED define symbol
  • AdMob has marked MobileAds.RaiseAdEventsOnUnityMainThread as obsolete so this has been removed
  • All AdMob callback events are now executed via MobileAdsEventExecutor
  • Removed usage of UnityMainThreadDispatcher within AdMob callback events as this is no longer nessesary
  • Removed usage of UnityMainThreadDispatcher in various other AdMob Manager functions which were already being ran on the main thread
  • Replaced all remaining usages of UnityMainThreadDispatcher with MobileAdsEventExecutor
  • The banner position set is now ran on the main thread to fix issue with new versions of AdMob not moving the banner ad on iOS
  • IVMetrics event calls are now intergrated into the FirebaseAnalyticsManager within a IVMETRICS_EVENTS_ENABLED define symbol
  • Added support for quantity when making inapp purchases (configured on the store, quantity just returns 1 when not enabled)
  • New IAB callback added OnIABPurchaseCompleteWithQuantity which includes a quantity int as a second parameter
  • OnIABPurchaseCompleteWithTxnId and OnIABPurchaseCompleteExtended callbacks now included the quantity as the 2nd parameter
  • Previously obsolete functions OnIOSRestoreComplete and OnIOSRestoreFailed have now been removed (use the cross-store OnRestoreComplete and OnRestoreFailed callbacks instead)
  • Tenjin purchase callbacks now send actual purchase quantity rather than always 1 now that the IAB script supports quantites
  • Tenjin will no longer attempt to connect if no SDK key has been set for the platform when admob is instantly initialized on Start()
  • Fixed a bug where the IAS would sometimes attempt to load an ad out of range causing an exception to throw
  • Users updating from very old versions of games with the old IAS save data format no longer get a serialization exception dumped to logcat (it was handling the format upgrade correctly but logging a serialization exception was left over debug code)
  • Updated the pickle script to call the updated ShowToast and HideToast java functions rather than just Show and Hide
  • DisplayToastMessage(string:message, int:seconds) is now obsolete, toasts on android only support LONG and SHORT use DisplayToastMessage(string:message, bool:longShowTime) instead which uses system defined 3.5 seconds for long and 2 seconds for short (previously the time parameter had no effect on toast duration)
  • Added ShowTextOverlay(string:message, int:fontSize, float:backgroundOpacity) and HideTextoverlay() functions to PickleCore for overlaying text on the game window (useful for example if the game requires a controller and you want to universally show a reconnect controller prompt over everything else)

Pickle Plugin Changes:

  • The show toast function has been renamed from Show to ShowToast
  • ShowToast now takes a boolean for longDuration rather than an int for duration as giving a custom duration is not supported
  • Simplified toast showing/hiding so it's not longer a Runnable or wrapped in a try catch
  • Displaying a toast when a toast is already displayed now just updates the active toast and resets the show duration rather than queuing up more toasts to show afterwards
  • Added support for showing/hiding text overlays via ShowTextOverlay and HideTextOverlay
  • Android automotive devices now also return true for the IsAndroidTV function (as it's unrealistic to be playing a game on these devices without a controller)

Version 30

Choose a tag to compare

@Seanm07 Seanm07 released this 20 Aug 13:06

iOS

  • Test device id is now correctly generating a valid lowercase MD5 hash of the IDFA used to set admob test mode
  • Note: There's a separate issue of the ad inspector failing to open on iOS with an SSL error but this is a future issue to fix..
  • Fixed TenjinManager.cs causing an iOS only app crash when calling baseTenjin.SetCustomerUserId(..) with a null string
  • Fixed AdMob Manager paid events always recording ad value as 0 on iOS due to using type long instead of double with decimals

Overall

  • Fixed PersonalisationManager.cs referencing a non-existent script GameManager to check if on android TV platform, this has been replaced with a direct call to PickleCore.IsAndroidTV()

Version 29

Choose a tag to compare

@Seanm07 Seanm07 released this 11 Aug 15:38

Android

  • Fixed a null reference exception caused by Tenjin requesting the store too early from CrossplatformManager

Overall

  • Fixed PersonalisationManager.OnAuthRequestsComplete not being public exposed for Tenjin access
  • Fixed PersonalisationManager OnAuthRequestsComplete overwriting external listeners

Version 28

Choose a tag to compare

@Seanm07 Seanm07 released this 07 Aug 16:28

Android

  • Amazon's test device id now correctly uses the "advertising_id" OAID rather than attempting to use "android_id" GAID which is Google specific
  • Added support for vibration of connected controllers

iOS

  • Fixed AdMob test mode not working on iOS because the test device id should be SHA-1 hashed for iOS not MD5 hashed like android
  • Fixed the AdMob Ad Inspector not working on iOS because the test device id should be SHA-1 hashed for iOS not MD5 hashed like android (The generated test device id is still incorrect, this is now been fixed in version 30)
  • Added support for reading the iOS IDFV value

Overall

  • Added Tenjin ad paid event reporting to the AdMob script
  • Tenjin Manager script added to scripts as we slowly rollout Tenjin MMP intergration into some game projects
  • Commented out some remote config lines which were left uncommented by mistake in the previous release
  • Changed a non-important IAS log when not enough ads are available to fill backscreen slots to only log when advanced logging is enabled
  • The IAB purchase complete callback has now been split into 3 separate callbacks with different parameters:
    -- IABManager.OnIABPurchaseComplete(IABItem item) <-- you pretty much only need to use this callback
    -- IABManager.OnIABPurchaseCompleteWithTxnId(IABItem item, string transactionId) <-- transaction id only needed when working with subscriptions
    -- IABManager.OnIABPurchaseCompleteExtended(IABItem item, string transactionId, string payload) <-- raw payload only needed in specific advanced situations

Code breaking change notice
IABManager.OnIABPurchaseComplete has been changed to only use 1 parameter of IABItem so existing functions listening for a transaction id string will need updating

Version 27

Choose a tag to compare

@Seanm07 Seanm07 released this 14 Jul 15:52

Overall

  • Added call to initialise Unity Services Analytics as it was causing issues trying to initialise IAP without it when using Unity IAP 4.13.0
  • IAP initialisation now waits for the Unity Services Analytics initialisation to finish (still runs regardless of success or failure state returned)

Version 26

Choose a tag to compare

@Seanm07 Seanm07 released this 28 May 16:00

Android

  • Fixes issues with safe area xMax/width reporting incorrect values on newer versions of android
  • Gradle templates and manifests are no longer included with the plugin as they differ with Unity version, a separate step in the plugin guide handles importing gradle templates and android manifest

iOS

  • Fixed CrossPlatformManager.cs errors due to android only code not being wrapped in platform defines when building on iOS

Overall

  • Fixed making multiple AdMob interstitial show requests before the CMP had finished doing auth flow causing a soft lock due to multiple click lock screens being stacked
  • Any attempts to call a CMP auth flow while one is already pending now gracefully returns and throws a warning

Version 25

Choose a tag to compare

@Seanm07 Seanm07 released this 21 Jan 13:24

Android

  • Fixed an exception thrown by setting the privacy button active state not being called on the main thread in developer builds

Overall

  • REMOTE_CONFIG code is now commented out by default in FirebaseMessagingManager.cs as this isn't used by default in most projects
  • Fixed IAB not automatically re-initialising when re-focusing the app until a new purchase attempt was made