Skip to content

frature/cp-9875-android-dynamic-deep-links-track-event-pass-dynamic-deep#318

Draft
unnaticleverpush wants to merge 6 commits intomasterfrom
frature/cp-9875-android-dynamic-deep-links-track-event-pass-dynamic-deep
Draft

frature/cp-9875-android-dynamic-deep-links-track-event-pass-dynamic-deep#318
unnaticleverpush wants to merge 6 commits intomasterfrom
frature/cp-9875-android-dynamic-deep-links-track-event-pass-dynamic-deep

Conversation

@unnaticleverpush
Copy link
Contributor

@unnaticleverpush unnaticleverpush commented Nov 6, 2025

If the notification URL contains a deeplinkId parameter, pass the value of that deeplinkId as a parameter to the trackEvent API call.


Note

Captures deeplinkId from notification URL on open, stores it with timestamp, and adds it to trackEvent payload if within 60 minutes.

  • Tracking:
    • CleverPush.trackEvent(...): Adds deeplinkId to /subscription/conversion payload when a recent (<=60m) stored deeplink is available; continues including recent notificationId.
  • Notification Open Handling:
    • NotificationOpenedProcessor: Parses deeplinkId from notification URL and saves LAST_CLICKED_NOTIFICATION_DEEPLINK_ID and timestamp on click.
  • Preferences:
    • CleverPushPreferences: Adds LAST_CLICKED_NOTIFICATION_DEEPLINK_ID and LAST_CLICKED_NOTIFICATION_DEEPLINK_TIME keys.

Written by Cursor Bugbot for commit f4341b2. This will update automatically on new commits. Configure here.


Summary by cubic

Adds dynamic deep link attribution for Android: when a notification URL includes deeplinkId, we capture it and include it in trackEvent for 60 minutes after the click. Addresses Linear CP-9875.

  • New Features
    • Parse deeplinkId from notification URL and save it with a timestamp.
    • Include deeplinkId in trackEvent if the click is within 60 minutes.
    • Clear stored deeplink when the clicked notification has no deeplinkId to avoid stale attribution.

Written for commit 93712ac. Summary will update automatically on new commits.

If the notification URL contains a deeplinkId parameter, pass the value of that deeplinkId as a parameter to the trackEvent API call.
@unnaticleverpush unnaticleverpush self-assigned this Nov 6, 2025
Copy link

@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.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@unnaticleverpush unnaticleverpush marked this pull request as draft November 6, 2025 04:31
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 3 files

Prompt for AI agents (all 1 issues)

Understand the root cause of the following 1 issues and fix them.


<file name="cleverpush/src/main/java/com/cleverpush/NotificationOpenedProcessor.java">

<violation number="1" location="cleverpush/src/main/java/com/cleverpush/NotificationOpenedProcessor.java:111">
When a notification without a deeplink is opened, the previously stored deeplinkId remains in SharedPreferences, so later trackEvent calls still send the old deeplinkId within 60 minutes. Please clear the stored deeplink when the current notification has none.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

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