Referrers, deep links and cross-navigation events
Page referrer information on Web
Along with page view events, the tracker tracks the URL of the referring page that linked to the current page.
The URL is tracked in the atomic event properties, under the page_referrer
property.
Table Column | Type | Description | Example values |
---|---|---|---|
page_referrer | text | Referrer URL | http://www.snowplow.io/ |
Deep links in mobile apps
Deep links are URLs or hyperlinks that take users directly to a particular location within a mobile app. They are received by the mobile operating system and passed to the related app.
Deep link received event
This event is manually tracked when the deep link is received in the app.
Represents a deep-link received in the app.
Schema URI:iglu:com.snowplowanalytics.mobile/deep_link_received/jsonschema/1-0-0
Web | Mobile | Tracked automatically |
---|---|---|
❌ | ✅ | ❌ |
👀 Example
{
"url": "https://example.com/notes/123",
"referrer": "https://snowplow.io"
}
📃 Schema properties definition
- Table
- JSON schema
Property | Type | Description | Required? |
---|---|---|---|
url | "string" | URL in the received deep-link | ✅ |
referrer | "string" | Referrer URL, source of this deep-link | ❌ |
{
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
"description": "Represents a deep-link received in the app.",
"self": {
"vendor": "com.snowplowanalytics.mobile",
"name": "deep_link_received",
"format": "jsonschema",
"version": "1-0-0"
},
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL in the received deep-link",
"format": "uri",
"maxLength": 4096
},
"referrer": {
"type": "string",
"description": "Referrer URL, source of this deep-link",
"format": "uri",
"maxLength": 4096
}
},
"required": [
"url"
],
"additionalProperties": false
}
❓ How to query the event in the warehouse?
- Snowflake
- BigQuery
- Databricks
- Redshift & Postgres
select
unstruct_event_com_snowplowanalytics_mobile_deep_link_received_1 deep_link_received_1
from
atomic.events
where
events.collector_tstamp > getdate() - interval '1 hour'
and events.event = 'unstruct'
and events.event_name = 'deep_link_received'
and events.event_vendor = 'com.snowplowanalytics.mobile'
select
unstruct_event_com_snowplowanalytics_mobile_deep_link_received_1_0_0
from
PIPELINE_NAME.events events
where
events.collector_tstamp > timestamp_sub(current_timestamp(), interval 1 hour)
and events.event = 'unstruct'
and events.event_name = 'deep_link_received'
and events.event_vendor = 'com.snowplowanalytics.mobile'
select
unstruct_event_com_snowplowanalytics_mobile_deep_link_received_1
from
atomic.events events
where
events.collector_tstamp > timestampadd(HOUR, -1, current_timestamp())
and events.event = 'unstruct'
and events.event_name = 'deep_link_received'
and events.event_vendor = 'com.snowplowanalytics.mobile'
and unstruct_event_com_snowplowanalytics_mobile_deep_link_received_1 is not null
select
"deep_link_received_1".*
from
atomic.events events
join atomic.com_snowplowanalytics_mobile_deep_link_received_1 "deep_link_received_1"
on "deep_link_received_1".root_id = events.event_id and "deep_link_received_1".root_tstamp = events.collector_tstamp
where
events.collector_tstamp > getdate() - interval '1 hour'
and "deep_link_received_1".root_tstamp > getdate() - interval '1 hour'
and events.event = 'unstruct'
and events.event_name = 'deep_link_received'
and events.event_vendor = 'com.snowplowanalytics.mobile'
Context entity attached to screen view events
This context entity is attached to the first screen view event automatically after tracking the deep link received event.
Entity that indicates a deep-link has been received and processed.
Schema URI:iglu:com.snowplowanalytics.mobile/deep_link/jsonschema/1-0-0
Web | Mobile | Tracked automatically |
---|---|---|
❌ | ✅ | ✅ |
👀 Example
{
"url": "https://example.com/notes/123",
"referrer": "https://snowplow.io"
}
📃 Schema properties definition
- Table
- JSON schema
Property | Type | Description | Required? |
---|---|---|---|
url | "string" | URL in the received deep-link | ✅ |
referrer | "string" | Referrer URL, source of this deep-link | ❌ |
{
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
"description": "Entity that indicates a deep-link has been received and processed.",
"self": {
"vendor": "com.snowplowanalytics.mobile",
"name": "deep_link",
"format": "jsonschema",
"version": "1-0-0"
},
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL in the received deep-link",
"format": "uri",
"maxLength": 4096
},
"referrer": {
"type": "string",
"description": "Referrer URL, source of this deep-link",
"format": "uri",
"maxLength": 4096
}
},
"required": [
"url"
],
"additionalProperties": false
}
How to track?
- See the documentation for the iOS and Android tracker.
- Documentation for the React Native tracker.
Link click tracking on Web
Link click tracking feature in the JavaScript tracker enables automatic capturing of link click events as the user clicks on links on the page.
Schema for a link click event
Schema URI:iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1
Web | Mobile | Tracked automatically |
---|---|---|
✅ | ❌ | ✅ |
👀 Example
{}
📃 Schema properties definition
- Table
- JSON schema
Property | Type | Description | Required? |
---|---|---|---|
elementId | "string" | ❌ | |
elementClasses | "array" | ❌ | |
elementTarget | "string" | ❌ | |
targetUrl | "string" | ✅ | |
elementContent | "string" | ❌ |
{
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
"description": "Schema for a link click event",
"self": {
"vendor": "com.snowplowanalytics.snowplow",
"name": "link_click",
"format": "jsonschema",
"version": "1-0-1"
},
"type": "object",
"properties": {
"elementId": {
"type": "string"
},
"elementClasses": {
"type": "array",
"items": {
"type": "string"
}
},
"elementTarget": {
"type": "string"
},
"targetUrl": {
"type": "string",
"minLength": 1
},
"elementContent": {
"type": "string"
}
},
"required": [
"targetUrl"
],
"additionalProperties": false
}
❓ How to query the event in the warehouse?
- Snowflake
- BigQuery
- Databricks
- Redshift & Postgres
select
unstruct_event_com_snowplowanalytics_snowplow_link_click_1 link_click_1
from
atomic.events
where
events.collector_tstamp > getdate() - interval '1 hour'
and events.event = 'unstruct'
and events.event_name = 'link_click'
and events.event_vendor = 'com.snowplowanalytics.snowplow'
select
unstruct_event_com_snowplowanalytics_snowplow_link_click_1_0_1
from
PIPELINE_NAME.events events
where
events.collector_tstamp > timestamp_sub(current_timestamp(), interval 1 hour)
and events.event = 'unstruct'
and events.event_name = 'link_click'
and events.event_vendor = 'com.snowplowanalytics.snowplow'
select
unstruct_event_com_snowplowanalytics_snowplow_link_click_1
from
atomic.events events
where
events.collector_tstamp > timestampadd(HOUR, -1, current_timestamp())
and events.event = 'unstruct'
and events.event_name = 'link_click'
and events.event_vendor = 'com.snowplowanalytics.snowplow'
and unstruct_event_com_snowplowanalytics_snowplow_link_click_1 is not null
select
"link_click_1".*
from
atomic.events events
join atomic.com_snowplowanalytics_snowplow_link_click_1 "link_click_1"
on "link_click_1".root_id = events.event_id and "link_click_1".root_tstamp = events.collector_tstamp
where
events.collector_tstamp > getdate() - interval '1 hour'
and "link_click_1".root_tstamp > getdate() - interval '1 hour'
and events.event = 'unstruct'
and events.event_name = 'link_click'
and events.event_vendor = 'com.snowplowanalytics.snowplow'
How to track?
See the link click tracking documentation for the JavaScript tracker.
Cross-domain tracking on Web
The JavaScript Tracker can add an additional parameter named “_sp” to the querystring of outbound links. This process is called “link decoration”. The _sp
value includes the domain user ID for the current page and the time at which the link was clicked (according to the device's clock).
When the _sp
parameter is present in the page URL, enrichment uses it to assign two properties to events: refr_domain_userid
with the user identifier and refr_tstamp
with the timestamp of the click on the link.
How to track?
See the documentation for cross-domain tracking on the JavaScript tracker for instructions.