Skip to content

SDK-6009: Flutter click + viewed attribution extras with element-clicked bridge - #77

Merged
CTLalit merged 1 commit into
feat/SDK-5821-flutter-modelsfrom
feat/SDK-6009-flutter-click-attribution
Aug 13, 2026
Merged

SDK-6009: Flutter click + viewed attribution extras with element-clicked bridge#77
CTLalit merged 1 commit into
feat/SDK-5821-flutter-modelsfrom
feat/SDK-6009-flutter-click-attribution

Conversation

@CTLalit

@CTLalit CTLalit commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Jira: SDK-6009 — epic SDK-5820

Stack (bottom → top):

  1. SDK-6009: Flutter click + viewed attribution extras with element-clicked bridge #77 — SDK-6009 click/view attribution extras + element-clicked bridge
  2. SDK-6010: Auto-sync Flutter NDLogger level from Core SDK debug level #78 — SDK-6010 NDLogger auto-sync from Core debug level
  3. SDK-6011: Regression tests for BOX/video/evaluator #54 parity #79 — SDK-6011 BOX/video/evaluator parity regression tests
  4. SDK-6013: Add iOS podspec + correct pubspec SDK/Flutter floor #81 — SDK-6013 iOS podspec + honest pubspec SDK/Flutter floor

Base of stack: feat/SDK-5821-flutter-models (PR #38main).


Stack created with GitHub Stacks CLIGive Feedback 💬

…ked bridge

Bring Flutter click/view attribution to parity with the shipped Android/iOS
work (SDK-5793, SDK-5846). Previously only unitId + elementId reached Core
SDK; the clicked action's context and the ND SDK version stamp were dropped.

- ActionAttributionExtras: pure Dart helper that flattens an NDAction into a
  flat extras map (action_type + reserved action_* keys, spread metadata/
  params/properties and CustomAction JsonObject value entries, action_value
  for scalars). sanitize() drops null/empty-key entries and stamps the ND SDK
  version (nd_lib_v_name/nd_lib_v_code). Mirrors the shipped Kotlin/Swift
  helper key-for-key. Client never injects wzrk_* (server-owned namespace).
- NDSdkVersion: version constants kept in sync with pubspec (0.1.0 / 100),
  mirroring Android BuildConfig / iOS NativeDisplaySDKVersion.
- NativeDisplayBridge.pushClickedEvent gains an optional extras map, forwarded
  as additionalProperties when non-empty; pushViewedEvent always forwards the
  version stamp (impressions are unit-level, no caller extras).
- Button + IMAGE call sites build extras from the resolved onClick action.
- Native plugins (Android Kotlin + iOS Swift): NativeDisplayPluginBridge
  pushClickedEvent/pushViewedEvent widened to carry additionalProperties;
  read from the MethodCall and forwarded to the host bridge (which forwards
  to the ND SDK's element-clicked / viewed-with-extras path).
- Tests: 20 ActionAttributionExtras cases + bridge arg-shape assertions.

flutter analyze clean; flutter test 183/183 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 99315ae4-ab9e-472f-811f-bbbda63df721

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@CTLalit
CTLalit merged commit a48a335 into feat/SDK-5821-flutter-models Aug 13, 2026
1 check passed
@clevertap-heimdall clevertap-heimdall Bot added the type/feature New user-facing capability that did not exist before label Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type/feature New user-facing capability that did not exist before

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant