Dynamic link and campaign_details events
Dynamic-link and campaign_details events attribute app sessions to the campaign that drove them. When a user opens the app via a tracked deep link, GA4/Firebase records campaign attribution parameters (source, medium, campaign) on a campaign_details event. This is how app installs and re-engagements get tied to a marketing source — using campaign metadata, never anything that identifies the individual user.
What this means
When a user opens an app through a tracked link (for example a deep link carrying UTM-style or referrer parameters), GA4/Firebase can record a campaign_details event whose parameters describe the acquisition: source, medium, campaign, term, and content. These are the app-world equivalent of web UTM parameters and feed acquisition reporting for installs and re-engagement.
Attribution without identity
The point of these events is to answer 'which campaign produced this session', and that needs campaign metadata, not user identity. Source/medium/campaign are about the link, not the person who clicked. Exact event names and availability depend on the SDK and link product in use, so confirm against current Firebase documentation. The constant is the privacy posture: attribution comes from campaign tags, never from identifying the visitor.
- Deep-link opens carry source/medium/campaign
- campaign_details is the app analogue of UTM tags
- Attribution from link metadata, not identity
How it appears in analytics and logs
Sessions arriving with campaign_details parameters are attributable to a marketing source; sessions without them are organic or direct from the app's perspective.
Diagnostic use case
Attribute app opens and installs to the campaign that drove them by capturing source/medium/campaign on deep-link and campaign_details events.
What WebmasterID can help detect
WebmasterID parses campaign tags from links into non-PII source/medium/campaign fields, the same model these app events use for attribution.
Common mistakes
- Expecting attribution without tagging links at all.
- Encoding a user identifier into a campaign link.
- Assuming identical event names across link products.
Privacy and accuracy notes
Campaign parameters describe the marketing source, not the user. Keep source, medium, and campaign generic; never encode a person into a link. This is educational, not legal advice.
Related pages
- Notification receive and open events
notification_receive and notification_open are GA4/Firebase events that track the lifecycle of a push notification: receive marks that a message arrived on the device, open marks that the user tapped it. Together they reveal delivery versus engagement — how many notifications land versus how many actually pull users back. They describe the message and campaign, not the recipient's identity.
- The app_open event
app_open is a GA4 event collected automatically by the Firebase/GA4 SDK when a user opens an app or brings it to the foreground after it was in the background. It marks app launches and returns, underpinning app engagement, retention, and session analysis — but a foreground event is not the same as meaningful use.
- first_open vs first_visit
first_open and first_visit are the new-user events in GA4, split by platform: first_open fires on the first launch of an app after install, while first_visit fires on a user's first visit to a website. They play the same role — establishing a user as new — but trigger on different platforms and signals. Confusing them, or comparing them across app and web, leads to misread new-user numbers.
- Campaign links (docs)
Tag links with non-PII campaign parameters.
Sources and verification notes
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.