Skip to content
BetaDocs

Events and conversions

Analytics accepts site-bound conversion events without requiring an app. An installed app or an approved site integration can produce events; Core owns validation, consent configuration, retention and reporting.

With the app-separation release, configure Analytics event_rules with update_app app_id="analytics". Each rule declares id, name, destination, optional exact page_paths, and allowed parameters (each has name and optional max_length, default 255). Example:

{
"event_rules": [
{
"id": "contact",
"name": "contact_opened",
"destination": "contact_page",
"page_paths": ["/services/"],
"parameters": [{ "name": "utm_source", "max_length": 100 }]
}
]
}

Rules are server-only configuration. Published Extension components receive context.analytics with endpoint, token, and requires_consent when Analytics is enabled and the platform event service is configured. This is null otherwise. Event producers must respect consent before sending.

Send { token, event: { name, funnel_id, destination, path, attribution } } to the endpoint. funnel_id is the existing wire name for the rule’s id. The server requires a signed site token, an allowed site origin and an exact rule match. Unknown event names are rejected; undeclared parameters are discarded. Per-IP and per-site limits apply. The published token is not a secret visitor credential or proof of a human interaction.

Core stores only the declared name, rule ID, destination label, page path, allowlisted parameter values and server timestamps. It does not store visitor IP addresses, cookie IDs, full URLs or arbitrary browser properties. Do not put personal data into campaign fields. Private app behavior, including outbound parameter forwarding, is described in that app’s authenticated guide.

Events expire after 90 days and are removed during intake and reporting. Insights shows aggregate events, destinations, utm_source and utm_campaign for 7, 30 or 90 days. Reports indicate truncation above 5,000 matching rows. Reporting can continue when the traffic provider is temporarily unavailable.