Skip to content

feat: add iOS shoppable ads interface for Rokt#69

Merged
denischilik merged 4 commits intomainfrom
feat/shoppable-ads-interface
Apr 17, 2026
Merged

feat: add iOS shoppable ads interface for Rokt#69
denischilik merged 4 commits intomainfrom
feat/shoppable-ads-interface

Conversation

@denischilik
Copy link
Copy Markdown
Contributor

Background

This change introduces the Flutter API surface needed for shoppable ads while keeping behavior aligned with currently supported platforms.
The implementation is scoped to iOS support, with Android exposed as a compatibility no-op.

What Has Changed

  • Added selectShoppableAds to the Flutter Rokt API and method channel flow
  • Implemented iOS native bridge handling for roktSelectShoppableAds
  • Added Android no-op handler for cross-platform API compatibility
  • Updated iOS podspec to keep only the SDK umbrella dependency and rely on transitive pods
  • Added test coverage for the new Flutter method call contract

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

selectShoppableAds is currently iOS-only. Android is intentionally a no-op and web is not implemented.

Made with Cursor

Expose selectShoppableAds in the Flutter API with iOS native implementation, Android no-op parity, and platform tests while keeping pod dependencies minimal via transitive resolution.

Made-with: Cursor
Remove the web selectShoppableAds bridge call and document platform behavior so the API remains explicitly iOS-only for now.

Made-with: Cursor
@cursor
Copy link
Copy Markdown

cursor bot commented Apr 15, 2026

PR Summary

Medium Risk
Main risk is iOS build/integration fallout from removing explicit CocoaPods dependencies and relying on transitive resolution. Runtime behavior change is limited to a new optional API and an Android no-op handler.

Overview
Adds a new Flutter Rokt API selectShoppableAds, wiring a roktSelectShoppableAds method-channel call through to an iOS native implementation (including optional attributes/config and event subscription).

On Android the same method is now exposed but implemented as a no-op that logs a warning for cross-platform API compatibility, and the Dart test suite is extended to assert the new method-channel contract.

The iOS podspec is simplified to depend only on the mParticle-Apple-SDK umbrella pod (removing explicit ObjC and RoktContracts dependencies) and rely on transitive dependencies.

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

@denischilik denischilik requested a review from thomson-t April 15, 2026 19:58
Comment thread ios/Classes/SwiftMparticleFlutterSdkPlugin.swift Outdated
- Android: log a warning in roktSelectShoppableAds to match RN bridge behavior
- iOS: pass nil for onEvent since events are propagated via subscribeToEvents
@denischilik denischilik merged commit ae283ec into main Apr 17, 2026
6 checks passed
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.

2 participants