Awell Hosted Pages
Add UTM parameters and custom tracking data to Hosted Pages links for marketing attribution and analytics
Awell Hosted Pages supports UTM parameters and custom tracking data, enabling you to attribute sessions to specific marketing campaigns, partners, and traffic sources. Tracking data is captured when sessions are created and can be queried from BigQuery for reporting and analytics.
Adding tracking parameters to your Hosted Pages links helps you:
You can append standard UTM parameters to any Hosted Pages URL. These parameters are automatically captured when the session is created.
| Parameter | Description | Example |
|---|---|---|
utm_source | Which site/platform sent the traffic | google, facebook, newsletter |
utm_medium | Type of link or marketing medium | email, cpc, social, organic |
utm_campaign | Campaign identifier | spring_promo, product_launch |
utm_term | Search terms (for paid search) | healthcare software |
utm_content | Ad/content identifier for A/B testing | banner_ad_1, text_link_v2 |
Custom domains
Replace goto.awell.health with your custom URL if you have configured one.
01
In addition to standard UTM parameters, you can pass any custom key-value pairs in the query string. These are captured in the tracking_custom field and can include:
01
Tracking data is stored in the hosted_sessions table in your BigQuery dataset. All tracking fields are nullable — sessions created without tracking data will have NULL values.
These are stored as STRING columns and are nullable.
| Column | Description |
|---|---|
tracking_utm_source | The traffic source |
tracking_utm_medium | The marketing medium |
tracking_utm_campaign | The campaign identifier |
tracking_utm_term | Search terms |
tracking_utm_content | Content/ad identifier |
These are stored as JSON columns and are nullable.
| Column | Description |
|---|---|
tracking | Full tracking object containing all UTM params plus any additional data |
tracking_custom | Custom tracking key-value pairs (non-UTM parameters) |
01
01
Extract specific fields from the tracking_custom JSON column:
01
01
You can measure form completion rates by joining with other tables. Here are a couple of approaches:
forms JSON columnThe hosted_sessions table includes a forms JSON column that tracks which forms were completed within the session:
01
activities tableYou can also join with the activities table and filter by form name:
01
Finding form names and IDs
You can find form names by querying the activities table: SELECT DISTINCT object_name, object_id FROM activities WHERE object_type = 'form'
Establish consistent naming conventions for your UTM parameters (e.g. always lowercase, use underscores), which makes analysis much easier
Always use time filters — Add created_at >= ... filters to improve query performance on large datasets.
Check for NULL values — Many sessions may not have tracking data. Always filter with IS NOT NULL when analyzing tracked sessions.
Filter by status — Consider filtering by session status (or care flow status) for meaningful metrics:
Handle JSON parsing safely — Use SAFE.JSON_VALUE() if you encounter parsing errors with malformed JSON in custom tracking fields.
Dataset names — Replace your-project.your_dataset with your actual BigQuery project and dataset name (e.g., awell-production.customer_name).