Skip to content

[IOS-8204] Android/iOS package 7.0.2: clickable native ad views, lifecycle fixes, repo restructure - #71

Open
stanley-vungle wants to merge 1 commit into
masterfrom
IOS-8204
Open

[IOS-8204] Android/iOS package 7.0.2: clickable native ad views, lifecycle fixes, repo restructure#71
stanley-vungle wants to merge 1 commit into
masterfrom
IOS-8204

Conversation

@stanley-vungle

Copy link
Copy Markdown
Collaborator

Summary

Prepares the io.liftoff.vungleads 7.0.2 release and restructures this MSFT-facing repo by platform.

Repo restructure

  • Platform folders: Windows/ (C++ bridge + sample app) and AndroidIOS/ (new VungleSDKSampleApp test app); Packages/ paths unchanged so publisher UPM references keep working
  • Root LICENSE.md updated to the LMI/Monetize license matching the package; per-platform READMEs
  • io.liftoff.vungleads mirrored from the private vungle-unity-plugIn repo via its new sync-package-to-public.sh

Package 7.0.2 (mirrored)

  • Native ads — selectable clickable views: Attach overloads take a media rect plus clickable rects/RectTransforms; each becomes a transparent native view registered with the SDK, so publishers choose exactly which app-rendered elements count as ad clicks
  • Lifecycle: new Destroy() (unregisters + releases ad assets; finalizer safety net) vs. lightweight re-attachable Detach(); fixes view/reference leaks on both platforms
  • Crash fixes (Android): destroy-time and re-register-time reentrancy (the SDK fires onAdEnd synchronously from unregisterView); changed clickable sets now rebuild fresh views since same-root re-registration is a silent SDK no-op
  • iOS phantom clicks: the ad container swallows touches — Unity normalizes forwarded touches by the originating view's bounds, which fired clicks on unrelated Unity UI
  • Attach-before-load: fails fast via onPresentFailed; failed registrations clear bridge state so the next attach renders
  • Removed: per-frame position tracking for native ads and banners (breaking: the banner track option shipped in 7.0.0) — the native overlay renders above all Unity UI and cannot be clipped by Unity viewports
  • Android SDK dependency widened to com.vungle:vungle-ads:[7.7,8.0) matching the iOS pod's ~> 7.7

Test app

  • Sample scenes for all formats incl. CTA Configuration dialog (per-element clickable toggles) and DualNative (whole card clickable)
  • Dynamic OS-font fallbacks for international ad text (e.g. Korean via Android's pan-CJK TTC)
  • BuildScript.cs for command-line player builds; iOS Script Call Optimization set to produce hard crash logs

Test plan

Device-verified on Android (Pixel) and iOS Simulator: load/attach/detach/re-attach flows, clickable-set changes via the CTA dialog, destroy-on-reload, scene exits, DualNative, and the previously crashing repros.

🤖 Generated with Claude Code

…2 and test app

Repo restructure (Packages/ paths unchanged so publisher UPM references keep
working):
- Windows/ — C++ bridge source and WindowsSDK7SampleApp, with platform README
- AndroidIOS/ — new VungleSDKSampleApp test app, with platform README
- Root LICENSE.md updated to the LMI/Monetize license matching the package;
  root README maps the layout

Package io.liftoff.vungleads 7.0.2 (mirrored from the private
vungle-unity-plugIn repo via its sync-package-to-public.sh):
- Native ads: selectable clickable views — Attach overloads take a media rect
  plus clickable rects/RectTransforms; each becomes a transparent native view
  registered with the SDK, so publishers choose exactly which app-rendered
  elements count as ad clicks (the SDK only defaults the media view to
  clickable when no list is given)
- Lifecycle: Destroy() unregisters and releases ad assets with a finalizer
  safety net; Detach() stays lightweight and re-attachable; fixes view and
  reference leaks on both platforms
- Fix Android crashes on destroy and on re-attach with a changed clickable
  set (the SDK fires onAdEnd synchronously from unregisterView; same-root
  re-registration is a silent no-op, so changed sets rebuild fresh views)
- Fix iOS phantom clicks on Unity UI: the ad container swallows touches
  (Unity normalizes forwarded touches by the originating view's bounds)
- Fix attach-before-load wedging the bridge: fail fast via onPresentFailed;
  failed registrations clear bridge state
- Removed: per-frame position tracking for native ads and banners (breaking:
  the banner track option shipped in 7.0.0) — the native overlay renders
  above all Unity UI and cannot be clipped by Unity viewports
- Android SDK dependency widened to com.vungle:vungle-ads:[7.7,8.0) to match
  the iOS pod's "~> 7.7"
- CHANGELOG: 7.0.2 entries plus backfilled 7.0.1 (Asset Store availability)

Test app:
- Sample scenes for all ad formats; CTA Configuration dialog with per-element
  clickable toggles; DualNative whole-card clickable
- EDM4U gradle templates, TMP Essential Resources, dynamic OS-font fallbacks
  for international ad text
- iOS Script Call Optimization set to produce hard crash logs on device

Device-verified on Android and the iOS Simulator: load/attach/detach/
re-attach flows, clickable-set changes, destroy-on-reload, scene exits, and
all previously crashing repros.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant