What changed
On October 28, 2026, Shopify announced that apps can make their own events queryable in Shopify Analytics. Developers declare standard or custom events in an analytics_app_events extension within shopify.extension.toml, release the configuration, and send matching events via the App Events API. Merchants can then use the Analytics report builder or ShopifyQL FROM app_events, including cross-app comparisons for shared standard metrics such as emails sent. A separate 2027-01 API addition allows checkout and customer-account UI extensions to emit events without a backend, subject to buyer analytics consent.
Why it matters
App developers and small Shopify agencies previously had to persuade merchants to open separate analytics screens for many app-specific metrics. Bringing those metrics into native Shopify reporting changes product integration and perceived value: an email, loyalty or inventory app can show what it did where merchants already inspect results. It does not prove app-driven sales lift or make attribution causal. It also creates implementation and data-governance decisions about schema versioning, retention and which metrics are comparable.
Events must be declared before Shopify will report them
A deployed analytics_app_events extension declares standard registry events such as shopify.marketing.email_sent or app-specific custom events with dimensions and count/sum metrics. Shopify validates event names and data types; an event accepted into the Dev Dashboard does not automatically appear in merchant Analytics. Custom event names use the app handle as a prefix; ShopifyQL queries can compare standard metrics across participating apps.
Reporting has a useful but bounded history
Current Shopify documentation says event attributes are available for filtering and grouping for 30 days. Count and sum metrics remain in hourly summaries for up to 365 days without those attribute breakdowns. App Events cannot be joined to another ShopifyQL dataset in the same query. These limits matter when designing campaign, cohort or multi-app reports.
Privacy and transport rules are part of the contract
The server API accepts one event per request with required shop_id, event_handle, timestamp, idempotency_key and attributes; attributes have a 15-key limit. Shopify prohibits personal information and identifying combinations in event attributes. For checkout and customer-account extensions on API 2027-01, shopify.appEvents.emit() waits for buyer analytics consent; declined or abandoned sessions do not transmit the held events. Extension-emitted events do not count for app billing.
How a small app team can use it
Start with one merchant-relevant standard event and test the full pipeline: deploy the declaration, send a valid idempotent event, check the Dev Dashboard, then query FROM app_events on a development store. Introduce custom metrics only where they answer a clear merchant decision, and build retention-aware reports rather than promising unrestricted historical attribution.