Skip to content

v1.2.0

Choose a tag to compare

@HaseebDev HaseebDev released this 12 Sep 14:43
· 5 commits to main since this release

Adds a second GDPR consent path alongside the InMobi CMP, selected by the new Use Local Consent toggle on the LevelPlayBootstrap prefab. Off by default, so existing projects are unchanged.

Added

  • Local consent form. Ships inside the package (Runtime/Resources), loaded at runtime, so there is nothing to import or wire. Collects personalised-ads and analytics choices, stores them with a timestamp and policy version, and hands the ads decision to LevelPlay, which forwards it to every mediated adapter. No InMobi account or p-code needed. Not an IAB TCF CMP and not Google-certified, so do not use it with AdMob demand.
  • Privacy policy link on the form, driven by the existing privacyPolicyUrl setting.
  • Consent records now carry a timestamp and a policy version. Bump consentPolicyVersion when your policy or partner list changes and existing answers stop counting, so those users are asked again.
  • Region-limited asking (onlyAskWhereGdprApplies), resolved from the user's IP. Every failure path (timeout, no network, blocked endpoint) shows the form anyway, so a lookup problem can never silently skip somebody who should have been asked.
  • Meta Audience Network setAdvertiserTrackingEnabled is now set by the package from the device's ATT status before LevelPlay init, which Meta requires and no mediation adapter does for you. Safe no-op without the Meta adapter.
  • Build-time check: a build fails if the local form is enabled but TextMeshPro or TMP Essential Resources are missing, instead of shipping a form whose labels cannot render.

Changed

  • Requires Unity 6 and LevelPlay 9.5.1 (was 2021.3 / 9.4.1).
  • GDPR consent uses LevelPlayPrivacySettings.SetGDPRConsent(bool), gated behind a LEVELPLAY_9_5_OR_NEWER version define. The per-network SetGDPRConsents(Dictionary) is deliberately not used: 9.5.0 deprecated it, and it replaces every stored entry on each call, silently revoking consent for any network missing from the map.
  • iOS ATT is now awaited on every path that expects a prompt, including the InMobi path, so anything reading the status afterwards sees a settled value rather than a pending one.

Fixed

  • The consent form can no longer be opened twice and stack two full-screen canvases.
  • The EventSystem the form creates survives a scene load and is cleaned up on destroy, and the form recovers if the scene's own EventSystem is destroyed while it is up.
  • An unanswered consent no longer pushes "denied" to the networks; it leaves the GDPR flag untouched.
  • Consent flags are no longer applied twice on the first answer.
  • The on-device privacy snapshot reports the active consent path instead of always querying the InMobi component.

Install

https://github.com/HaseebDev/LevelPlay-Mediation-Package.git#v1.2.0

Or import the attached .unitypackage. See INSTALL.md.