AddEvent Google Analytics Tracking
AddEvent supports Google Analytics 4 (GA4) tracking on event pages, calendar pages, and embeddable widgets. When enabled, user interactions such as clicking Add to Calendar, following a calendar, and completing an RSVP are automatically sent as custom events to your GA4 property. This document explains how to enable tracking and provides a complete reference for all tracked events and supported parameters.
Setup
Step 1 — Add the Tracking Snippet
Add the following HTML snippet to the custom template or design section of your AddEvent page.
This is the only change required to enable Google Analytics tracking.
<div id="tracking" class="hide">
<span id="tracking-vendor">google-analytics</span>
<span id="tracking-key">G-XXXXXXXXXX</span>
</div>Replace G-XXXXXXXXXX with your Google Analytics Measurement ID.
Do not share your Measurement ID publicly.
Step 2 — Configure the Values
| Element ID | Required | Description |
|---|---|---|
tracking-vendor | Yes | The tracking vendor. Must be set to google-analytics. |
tracking-key | Yes | Your GA4 Measurement ID (G-XXXXXXXXXX). Found in Google Analytics under Admin → Data Streams → your stream. |
tracking-debug | No | Set to true to enable GA4 DebugView for live event verification. Set to false or omit in production. |
Step 3 — Find Your Measurement ID
- Go to
analytics.google.com - Navigate to Admin → Data Streams
- Select your web data stream
- Copy the Measurement ID (
G-XXXXXXXXXX)
Step 4 — Verify with DebugView (Optional)
To see live events in Google Analytics for debugging purposes, add <span id="tracking-debug">true</span> to the snippet. The full snippet should look like this:
<div id="tracking" class="hide">
<span id="tracking-vendor">google-analytics</span>
<span id="tracking-key">G-XXXXXXXXXX</span>
<span id="tracking-debug">true</span>
</div>
Remember to replace G-XXXXXXXXXX with your Google Analytics Measurement ID.
Once you have "tracking-debug" set to true, open Google Analytics DebugView to see events arriving in real time
Remember to set
tracking-debugback tofalseafter testing. Debug mode should not remain enabled in production.
UTM Tracking
When tracking is enabled, UTM attribution is captured automatically.
The tracking script reads UTM parameters from the page URL and includes them in RSVP conversion events sent to GA4. This allows RSVP completions to be attributed to specific marketing campaigns without additional configuration.
How UTM Values Are Resolved
The tracking script resolves UTM values in the following order of priority:
| Priority | Source | Description |
|---|---|---|
| 1 | Google Ads (gclid) | If a gclid parameter is present in the URL, UTM values are automatically set to reflect a paid Google Ads click. This takes highest priority. |
| 2 | URL parameters | Standard UTM parameters in the page URL (utm_source, utm_medium, utm_campaign, utm_content, utm_term) are read directly. |
| 3 | Referrer | If utm_source is absent, the referring domain is used as the source. Common domains are shortened automatically (for example, google.com becomes google). |
| 4 | Defaults | If no UTM data is available, defaults are applied (source: direct, medium: organic, campaign: organic). |
Google Ads (gclid) Example
gclid) ExampleWhen a visitor arrives via a Google Ads click, the URL contains a gclid parameter alongside any UTM parameters configured in the campaign.
Example:
https://www.addevent.com/event/abc123
?utm_source=google
&utm_medium=cpc
&utm_campaign=spring-2026
&utm_term=events
&utm_content=banner
&gclid=EAIaIQobChMI1234567890When gclid is detected, the tracking script ignores the UTM parameters in the URL and automatically sets the following values:
| Parameter | Auto-set Value |
|---|---|
utm_medium | cpc |
utm_source | google |
utm_campaign | Value from URL utm_campaign, or google-ads if absent |
utm_term | Value from URL utm_term if present |
utm_content | Value from URL utm_content if present |
If gclid is absent, the following URL parameters are used directly as provided:
utm_sourceutm_mediumutm_campaignutm_contentutm_term
The RSVP Conversion Event
When a visitor completes an RSVP, the following GA4 event is fired with the resolved UTM data attached:
| GA4 Event Name | Fired When |
|---|---|
addevent_rsvp | The RSVP confirmation becomes visible after a successful submission |
Event Reference
All custom GA4 events fired by the AddEvent tracking script use the addevent_ prefix.
Event Page — Normal
| GA4 Event Name | Trigger | Notes |
|---|---|---|
addevent_event_atc_click | Add to Calendar button clicked | Includes event_id parameter |
addevent_event_atc_type_selected | Calendar app selected from ATC dropdown | Includes event_id and calendar_type parameters |
addevent_event_share_open | Share dialog opened | — |
Event Page — RSVP
Includes all events from Event Page — Normal, plus:
| GA4 Event Name | Trigger | Notes |
|---|---|---|
addevent_event_rsvp_open | RSVP button clicked to open form | — |
addevent_event_rsvp_response | Going / Interested / Can't go selected | Includes rsvp_response and rsvp_response_value parameters |
addevent_event_rsvp_submit | RSVP form submitted | Includes rsvp_response_value parameter |
addevent_event_rsvp_confirmed_going | Going confirmation becomes visible | — |
addevent_event_rsvp_confirmed_interested | Interested confirmation becomes visible | — |
addevent_event_rsvp_confirmed_cantgo | Can't go confirmation becomes visible | — |
Calendar Page — Normal
| GA4 Event Name | Trigger | Notes |
|---|---|---|
addevent_calendar_follow_click | Follow Calendar button clicked | Primary conversion. Includes calendar_id parameter |
addevent_calendar_follow_type_selected | Calendar app selected from Follow dropdown | Includes calendar_id and calendar_type parameters |
addevent_calendar_event_atc_click | ATC clicked on an event in the list | Includes event_id parameter |
addevent_calendar_event_atc_type_selected | Calendar app selected from event ATC dropdown | Includes event_id and calendar_type parameters |
addevent_calendar_event_link_click | Event title clicked through to event page | Includes event_title and event_url parameters |
addevent_calendar_share_open | Share dialog opened | — |
addevent_calendar_about_expand | About following a calendar section expanded | — |
Calendar Page — RSVP
Includes all events from Calendar Page — Normal, plus:
| GA4 Event Name | Trigger | Notes |
|---|---|---|
addevent_calendar_rsvp_open | Per-event RSVP form becomes visible | Includes event_title parameter |
addevent_calendar_rsvp_confirmed | RSVP confirmation becomes visible | — |
Embeddable Calendar Widget
| GA4 Event Name | Trigger | Notes |
|---|---|---|
addevent_cal_embed_follow_click | Follow Calendar button clicked | Primary conversion. Includes calendar_id parameter |
addevent_cal_embed_follow_type_selected | Calendar app selected from Follow dropdown | Includes calendar_id and calendar_type parameters |
addevent_cal_embed_event_atc_click | ATC clicked inside event detail popup | Includes event_id parameter |
addevent_cal_embed_event_atc_type_selected | Calendar app selected from popup ATC dropdown | Includes event_id and calendar_type parameters |
addevent_cal_embed_view_switch | View switched between Month / Week / Schedule | Includes view parameter |
addevent_cal_embed_nav_prev | Previous period navigation clicked | — |
addevent_cal_embed_nav_next | Next period navigation clicked | — |
addevent_cal_embed_nav_today | Today button clicked | — |
addevent_cal_embed_event_open | Event detail popup opened | Includes event_title parameter |
addevent_cal_embed_event_page_link | External event page link clicked in popup | Includes event_title parameter |
addevent_cal_embed_event_rsvp_click | RSVP now clicked in popup | Includes event_title parameter |
Embeddable Events List Widget
| GA4 Event Name | Trigger | Notes |
|---|---|---|
addevent_cal_list_embed_follow_click | Follow Calendar button clicked | Primary conversion. Includes calendar_id parameter |
addevent_cal_list_embed_follow_type_selected | Calendar app selected from Follow dropdown | Includes calendar_id and calendar_type parameters |
addevent_cal_list_embed_event_atc_click | ATC clicked on an individual event | Includes event_id parameter |
addevent_cal_list_embed_event_atc_type_selected | Calendar app selected from event ATC dropdown | Includes event_id and calendar_type parameters |
addevent_cal_list_embed_event_link_click | Event title link clicked through to event page | Includes event_title and event_url parameters |
Event Parameters
The following parameters are included alongside events where applicable.
| Parameter | Type | Description |
|---|---|---|
event_id | string | The AddEvent internal ID of the event associated with the ATC button. |
calendar_id | string | The AddEvent internal ID of the calendar associated with the Follow button. |
calendar_type | string | The calendar service selected (for example, Google, Apple, Outlook, iCal). |
event_title | string | The title of the event, extracted from the page or popup. |
event_url | string | The URL of the event page, where applicable. |
rsvp_response | string | The RSVP response selected (Going, Interested, Can't go). |
rsvp_response_value | string | The numeric value of the RSVP response (1=Going, 2=Interested, 3=Can't go). |
view | string | The calendar view selected (month, week, schedule). |
utm_source | string | The traffic source resolved at RSVP conversion time. |
utm_medium | string | The traffic medium resolved at RSVP conversion time. |
utm_campaign | string | The campaign name resolved at RSVP conversion time. |
utm_content | string | The content parameter resolved at RSVP conversion time. |
utm_term | string | The search term resolved at RSVP conversion time. |
Troubleshooting
Events Are Not Appearing in GA4
- Confirm the tracking snippet is present in your custom template with a valid
tracking-keyvalue. - Set
tracking-debugtotrueand check GA4 DebugView to confirm events are arriving in real time. - Standard GA4 reporting can be delayed by up to 24 hours. Use DebugView during setup and testing.
Events Are Firing Twice
Ensure the tracking snippet appears only once in your template.
Duplicate snippets will cause duplicate events.
UTM Values Are Showing as direct or organic
direct or organic- Confirm your UTM parameters are present and correctly formatted in the page URL when sharing campaign links.
- If traffic arrives via Google Ads, the
gclidparameter automatically overrides URL UTM values.
DebugView Shows No Data
- Confirm
tracking-debugis set totrue(notTrueor1). - Make sure you are logged into the correct Google Analytics account and viewing the correct GA4 property.
Updated about 16 hours ago
