Repository navigation
v1.2.0
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
privacyPolicyUrlsetting. - Consent records now carry a timestamp and a policy version. Bump
consentPolicyVersionwhen 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
setAdvertiserTrackingEnabledis 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 aLEVELPLAY_9_5_OR_NEWERversion define. The per-networkSetGDPRConsents(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.