Skip to content

feat: update rokt example validation flow#72

Open
denischilik wants to merge 8 commits intomainfrom
chore/update-ios-native-deps
Open

feat: update rokt example validation flow#72
denischilik wants to merge 8 commits intomainfrom
chore/update-ios-native-deps

Conversation

@denischilik
Copy link
Copy Markdown
Contributor

Background

This branch updates the Flutter SDK example flow used to validate Rokt placement rendering and event delivery across iOS and Android. It also aligns iOS native dependencies with the current Rokt payment extension path needed for shoppable ads testing.

What Has Changed

  • Added explicit Flutter-to-native Rokt event subscription bridging so apps can subscribe by placement identifier.
  • Removed implicit native event subscriptions from placement selection calls to avoid duplicate event delivery.
  • Updated the example app to exercise shoppable ads using the current iOS test identifier and event listener wiring.
  • Added iOS RoktPaymentExtension pod in the example app to support shoppable ads payment-extension setup.
  • Refreshed lockfiles and example runtime config generated by local Flutter validation runs.

Screenshots/Video

N/A

Checklist

  • I have performed a self-review of my own code.
  • I have made corresponding changes to the documentation.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have tested this locally.

Additional Notes

Validated with local iOS and Android flutter run sessions, including successful selectPlacements flow and Rokt event logs.

Align the Flutter iOS podspec and example Podfile with the latest mParticle Apple SDK guidance and keep installation docs in sync with the new minimum version.
Add a dedicated roktSubscribeToEvents bridge path and make selectPlacements rely on explicit event subscription to avoid implicit duplicate listener registration.
Stop auto-subscribing to Rokt events inside selectShoppableAds so event delivery consistently relies on explicit subscription APIs.
Add an iOS-only Select Shoppable Ads action in the Rokt example screen and send the same attribute payload used in the MAUI sample for parity testing.
Update the example app runtime configuration so placement and shoppable ads validation uses the current test identifiers and iOS payment extension dependency.
@cursor
Copy link
Copy Markdown

cursor Bot commented May 8, 2026

PR Summary

Medium Risk
Changes Rokt event delivery semantics from implicit subscription to explicit events(identifier, ...) registration, which can affect integrations if not updated. Also bumps iOS dependency requirements and example iOS pods for shoppable ads payment flows.

Overview
Rokt event delivery now requires explicit subscription by identifier. Adds a new Dart API Rokt.events(identifier, onEvent) that bridges to a new roktSubscribeToEvents native method on iOS/Android, and removes the previous implicit event subscription that happened during selectPlacements/selectShoppableAds.

Updates docs and the example app to wire event listeners before selecting placements/shoppable ads, adds an iOS shoppable-ads validation flow (including sample attributes), and aligns iOS setup by requiring mParticle-Apple-SDK ~> 9.1 plus adding the RoktPaymentExtension pod for payment-extension testing. Lockfiles and Xcode scheme settings are refreshed accordingly.

Reviewed by Cursor Bugbot for commit aebfdad. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread lib/mparticle_flutter_sdk.dart
Revert the example app minSdk configuration to 21 to keep release APK builds stable with core library desugaring in CI.
Document explicit Rokt event subscriptions and iOS payment extension setup for shoppable ads in both README and migration notes.
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3205fcc. Configure here.

Comment thread ios/Classes/SwiftMparticleFlutterSdkPlugin.swift
@denischilik denischilik requested a review from thomson-t May 8, 2026 19:11
Prevent duplicate callback registration when events() is called repeatedly for the same placement identifier on iOS.
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