# Vendor and system events that are never orphans in a tracking plan audit.
# Checked 2026-11-02 against Google's "Automatically collected events" help
# page (GA4), Segment's mobile spec, Amplitude and Mixpanel destination pages,
# Protocols violation forwarding and consent pages, and the default event
# naming of Mixpanel, PostHog and Amplitude. Copy this file to the scratch
# folder, refresh the copy from the live pages and pass it with
# --vendor-events; vendors add events.
#
# Format read by scripts/audit_plan.py:
#   "@tool" starts a section (all, ga4, mixpanel, amplitude, posthog, segment, rudderstack);
#   "@ga4-reserved" is not a vendor list: rule Q09 and the D01 root cause read it
#   "prefix:<text>" matches every name that starts with <text>
#   any other line is one exact event name
# GA4 enhanced measurement events (click, scroll, file_download, form_*,
# video_*, view_search_results) only appear when the setting is on.

@all
# Mobile lifecycle events from the Segment, RudderStack and PostHog mobile SDKs.
# They appear only when the SDK's lifecycle option is on, and then in every tool
# the CDP feeds; confirm the option in the app code, not from export rows.
# Application Backgrounded and Foregrounded depend on the library.
Application Installed
Application Opened
Application Updated
Application Backgrounded
Application Foregrounded

@mixpanel
# $mp_web_page_view, $identify, $create_alias, $mp_click and other defaults
prefix:$
# Segment's Mixpanel destination: consolidated page and screen events
Loaded a Page
Loaded a Screen

@posthog
# $pageview, $pageleave, $autocapture, $identify, $feature_flag_called and other defaults
prefix:$

@amplitude
# [Amplitude] Page Viewed, [Amplitude] Session Start and other SDK events; $identify and $groupidentify
prefix:[Amplitude]
prefix:$
# Segment's Amplitude destination with Track All Pages or Track All Screens
Loaded a Page
Viewed a Page
Loaded a Screen
Viewed a Screen

@segment
# Forwarded Protocols violations (sent to the source you choose)
Violation Generated
# Consent Management event used to add consent preferences to profiles
Segment Consent Preference Updated

@ga4
# Web: automatically collected and enhanced measurement
click
file_download
first_visit
form_start
form_submit
page_view
scroll
session_start
user_engagement
video_complete
video_progress
video_start
view_search_results
# App: automatically collected
ad_click
ad_exposure
ad_impression
ad_query
ad_reward
adunit_exposure
app_clear_data
app_exception
app_remove
app_store_refund
app_store_subscription_cancel
app_store_subscription_convert
app_store_subscription_renew
app_update
dynamic_link_app_open
dynamic_link_app_update
dynamic_link_first_open
error
firebase_campaign
firebase_in_app_message_action
firebase_in_app_message_dismiss
firebase_in_app_message_impression
fiam_action
fiam_dismiss
fiam_impression
first_open
in_app_purchase
notification_dismiss
notification_foreground
notification_open
notification_receive
os_update
screen_view

@ga4-reserved
# Names and prefixes a plan must not give its own GA4 events. Checked 2026-11-06.
# Names: the union of Google's "Event naming rules" help page (web and app
# lists, which Google says are not exhaustive) and the Firebase Analytics Event
# reference (names the SDK drops). The help page prints view_complete while
# enhanced measurement sends video_complete, so both are here. in_app_purchase
# is reserved on web streams only, and ad_impression is available on app
# streams only. Google's own event with its documented meaning is the exception
# Q09 tells the agent to record.
# Prefixes: query_id is a web stream prefix on the help page; firebase_, google_
# and ga_ come from the Firebase logEvent reference. A leading underscore and
# gtag. are parameter prefixes; the event naming rule already rejects both.
prefix:firebase_
prefix:google_
prefix:ga_
prefix:query_id
ad_activeview
ad_click
ad_exposure
ad_impression
ad_query
ad_reward
adunit_exposure
app_background
app_clear_data
app_exception
app_install
app_remove
app_store_refund
app_store_subscription_cancel
app_store_subscription_convert
app_store_subscription_renew
app_update
app_upgrade
click
dynamic_link_app_open
dynamic_link_app_update
dynamic_link_first_open
error
file_download
firebase_campaign
firebase_in_app_message_action
firebase_in_app_message_dismiss
firebase_in_app_message_impression
first_open
first_visit
form_start
form_submit
in_app_purchase
notification_dismiss
notification_foreground
notification_open
notification_receive
notification_send
os_update
page_view
scroll
session_start
session_start_with_rollout
user_engagement
video_complete
video_progress
video_start
view_complete
view_search_results
