Have a client that is using "session_start" event to track conversions across 3 platforms on a Web+App property.
For app links and deep links, this works perfectly. Clicking a universal link opens the app and fires the SESSION_START with utm attribution.
For push notifications, this is ok on web and ok on Android (not sure how at this point, but that's another story). But on iOS, SESSION_START is not fired with attribution.
Considering using custom NOTIFICATION_OPENED event, and attaching attribution parameters there.
SDK does not support modifying or hijacking the SESSION_START event.
What is the correct way to attach attribution to a push notification?
Simply put - by default Firebase iOS SDK does not support this out of the box immediately whereas the Firebase Android SDK does, because Android SDK fires through FCM and immediately hooks into the Dynamic Links functionality (I think) which supports utm tags out of the box for attribution, whereas Firebase iOS SDK hooks into APNS instead.
We have solved this issue thusly
handleopenurl(url)
from application(_:open:options:)
, passing in the url extracted from your chosen push notification provider from the keyvalue pairs. In the case of Localytics, the deep link is found in ll_deep_link_value
Hope this helps future sleuths. As I'm not the actual developer, some details above may not be 100% accurate so please leave a correction if you do find one.
In general, if combining multiple push notifications and analytics providers, avoid using automagic integrations like FB Swizzling, and Localytics auto init.