SDK v5.1.0 is released, adding Experimental Google-AdSense powered rewarded ads to all games on Pley.

Rewarded ads have been one of the most requested features to both monetize non-paying users, and more importantly as an upselling tool. We have integrated Google H5 games rewarded ads into Pley AdsKit. For now, it is an experimental feature; over time ad quality will improve as Google's algorithm learns more, as well as Pley making updates on the fly.

Read more here on how to implement rewarded ads.


  • New experimental feature; rewarded ads powered by Google Adsense H5 Games.
  • Warning notification in the Unity SDK if a new SDK version is available.
  • Warning notification in the Unity SDK if there is a mismatch in Emscripten versions between the Pley SDK and Unity, so developers don't have to troubleshoot strange impossible-to-understand errors.
  • Assemblies will now not reload in Unity during uploads to Pley, preventing crashes.
  • Changed folder structure; Pley SDK is now found in Pley/SDK instead of just Pley/.
  • Fixed analytics-related bugs.


Click here to learn how to update the Pley SDK

Pley SDK 5.0.0 is a major update, both adding new functionality and removing features.
Due to this, games will have to make changes in their game code to update to 5.0.0. We don't plan to release breaking changes lightly in the future. Read more

The update comes with a major API restructuring, replacing callbacks with tasks. This is the most breaking change when updating to the SDK 5.0.0.

New AnalyticsKit for commercial funnel event API with the following methods: GameLoaded(), UserEngaged(), UserInteracted(). On top of this, multiple features have been removed, stability has improved, and loading times have been reduced.

See the updated API documentation here.

New Features & Changes

  • The API is now using Tasks and all methods that are asynchronous are postfixed with ‘Async’
var (result, data) = await PaymentsKit.RequestPaymentAsync(paymentKitProduct);
if (result.IsError())
  Debug.LogError($"Failed to request payment: {result}");

Debug.Log($"Payment successful - entitlementId: {data.entitlementId}");
  .Then((result, data) =>
    if (result.IsError())
      Debug.LogError($"Failed to request payment: {result}");
    Debug.Log($"Payment successful - entitlementId: {data.entitlementId}");
  • Support for new Apple silicon architecture
  • Removed DLL dependencies, reducing conflicts between services and libraries
  • Improvements to the Unity extension UI
  • Improved documentation on error returns
  • GetProduct replaced by PaymentsKit.GetProducts. Gets multiple products from a list of ID:s instead of one call per product ID.
  • PaymentsKit.GetEntitlementsAsync() return an empty list instead of an error if there is no entitlements.
  • InsightsKit is replaced by AnalyticsKit
  • New obligatory analytics methods: GameLoaded(), UserEngaged(), UserInteracted().
  • AuthKit.PlayToken replaced by AuthKit.SessionToken
  • SDK.GetStartupArgs replaced by SDK.GetGameArguments
  • Fixed issues reporting memory in memory usage overlay.


  • PleyGenericError
  • PartyKit
  • InsightsKit
  • SendCustomEvent, which was part of InsightsKit.
  • AuthKit.GetFingerprint
  • ContainerMessages
  • PerformanceKit.RecommendedResolution/QualityLevel
  • Order id is no longer part of the payment request response
  • TexutreSettingsImportApplier tool
  • NotificationsKit
  • Callbacks on Pley Methods (replaced by Tasks as mentioned above).


That is it!

If you have any questions, reach out to us through your Pley communication channel or email us at [email protected]

  • New Pley Fast Build for Unity, more info.
  • Support for Unity 2021.3 and 2022.1.
  • Minor Windows fixes.
  • Fix a crash that could occur when uploading a new build.
  • Fix incorrect build step duration in the build report
  • Support for Unity 2021.2 versions where minor version is 11 or newer.
  • Improved performance when uploading builds with a lot of files.
  • Fix freeze when using play/pause from within Unity

For the last couple of months, we have been overhauling the release process to clean up old anomalies and create a comprehensive workflow that makes it easier to get a better overview and collaborate as a team.

And equally as necessary, the new flow will add much-needed flexibility for us to keep adding new and better features to the release process.


A new release flow where releases are separate from a build, allowing you to draft, create and publish Releases of any uploaded build with different Container versions, Release Tracks, and settings.

We've added Containers that will allow you to create different versions of JavaScript code that you want to execute during runtime for all your analytics, UA, or tools needs for a given Release.

Release Tracks replaces Channels allowing you to create releases in a different track than Production with a secret URL. Making QA and Beta-testing a breeze.

You can find more information on how it works in our documentation here.

Send/receive messages from the game container (closed BETA)

SDK.SendContainerMessage(): Send a message with a custom payload to the container.
SDK.SetContainerMessageListener(): Set a listener to a specific message from the container.

More user information available from the SDK (closed BETA)

AuthKit.IsUserLoggedIn(): Know if the user is logged in to a claimed account.
AuthKit.RequestSignUp(): Request the user to sign up if they aren't already.

Fixed a bug that caused GPU metrics to only be captured when the performance monitor was active.

SDK.SetSupportInfos is now obsolete and SDK.SetSupportDialogCustomFields should be used instead.
SDK.SetSupportInfos was a temporary name used during development that was released by mistake.