Events
View every user event with per-integration delivery status, search, filters, and export.
The Events report shows every monetization-relevant event of an individual user in your app — purchases, trials, subscription state changes, and user creation — with the full integration delivery status per event. Use it to drill into specific transactions, audit when each event was sent to every connected integration, and export filtered slices for downstream analysis or support tickets.
Find Events in the sidebar menu at the top level.
Looking for the list of event types Apphud creates?See Event Types for the full catalog — every event name (Trial stated, Subscription renewed, Paywall shown, etc.), when it fires, and which are iOS-only or deprecated.
For event payload fields in integrations (revenue, country, product, etc.), see Event Parameters and Properties.
Choose what to view
Three controls at the top of the page define the scope of events shown. They sit outside the Add filter panel because they're the page's primary view selectors.
View events from
Choose which user environment is included:
- All users — production and sandbox users together.
- Production users — only events from production users.
- Sandbox users — only events from sandbox users.
where
Choose which timestamp the date range applies to:
- Event occurred at — the event's own timestamp. Use this to see what happened during a period, i.e. for calendar type of analysis.
- User first seen at — the timestamp the user first appeared in Apphud. Use this to scope to cohorts (e.g., "all events from users who first appeared in the last 7 days").
between
Standard date range with presets and a calendar — see Common controls → Period.
Search
The search field above the table accepts:
- User ID
- Device ID
- Transaction ID
- IDFA
Paste any one of those to jump straight to the matching event(s).
Searching by a merged user's IDIf a user was merged into another, you can still search by their previous User ID — it resolves to the surviving user. On merge, all events are reassigned to the surviving user, so the result shows the full combined history. Note: events appear under the surviving user's current ID, not the one you typed. See how user merging works.
Event Filters
Click Add filter + to scope events by additional parameters. The filter dialog groups parameters into five categories.
Events filters vs Users filtersAs these two surfaces have different nature they have different filter sets.
Events list has no Attribution, no Custom User Properties, no Experiment, no User lifetime / OS version / Install month filters, etc.
Users list has no Event-type, no Integration connection filters, etc.
Pick the surface that matches the question.
General
| Parameter | Type & Description |
|---|---|
| Event | Multi-select from the full Apphud event list (e.g., Subscription started, Subscription renewed, Intro converted) — scopes the stream to the selected event type(s). See Event Types for the full catalog. |
| Platform | iOS / Android / Web — the platform the event came from. |
Purchases
| Parameter | Type & Description |
|---|---|
| Revenue | Numeric comparison (=, <, >) — the event's revenue amount in USD. |
| Family shared | Single value — select to match purchases made through Apple Family Sharing. |
| Payment Provider | App Store / Play Store / Stripe / others — where the purchase was processed. |
User
| Parameter | Type & Description |
|---|---|
| Country by IP | Multi-select country list — the user's country detected from their IP address. |
| Store Country | Multi-select country list — the storefront country of the user's App Store / Google Play account. |
| Anonymous | Single value — select to match events from users not yet identified with your own User ID. |
| Install Source | Multi-select (App Store, Google Play, Flows, etc.) — how the user was acquired. |
| Install Source Identifier | Free-form text match (e.g. a Flow identifier). |
Product
| Parameter | Type & Description |
|---|---|
| Permission Group | Multi-select from your defined groups. |
| Product ID | Multi-select from your products. |
| Product Name | Multi-select from your product bundles as defined in Product hub. |
| Paywall | Multi-select from your paywall IDs — events tied to the selected paywall(s). |
| Placement | Multi-select from your placement IDs. |
Connections
The Connections category lets you scope events by integration delivery status. The filter parameter is the connection itself — every configured connection is listed by its custom Name (e.g. Adjust, Mixpanel, AppsFlyer iOS). Its options are the delivery statuses:
- Sent — delivered successfully to that connection.
- Failed — delivery to that connection failed.
- Skipped — not sent (e.g. the event is disabled for that connection, an environment mismatch, or a user-level filter excluded it).
- Pending — in flight or awaiting retry.
Pick a connection, check one or more statuses, and Apply filter to see only events with that delivery status for that integration. For example, select Adjust and check Sent to list every event that was successfully delivered to Adjust — useful for confirming "did this event reach Mixpanel, and did it succeed?" without opening individual rows.
Boolean filtersFilters like Autorenewal, Expires in next 24h, Anonymous and Family shared expose a single value to select (e.g.,
Enabled,True). You pick it to match users who meet the condition — the filter can't be applied without choosing the value, and the opposite value isn't selectable.
For operator behavior, multi-select, predefined-vs-free-form, and chip mechanics, see Common controls → Filters.
Shared toolbar and table controls
The Events toolbar uses the same building blocks as other Apphud tables. Universal mechanics are documented once in Common controls; Events-specific behavior is documented here.
From Common controls (same as elsewhere)
- Edit columns — toggle and reorder columns, or reset customization to defaults. See Reports → Edit columns.
- Auto-fit columns — fit widths to content. See Reports → Auto-fit columns.
- Sort — click a column header to sort. See Reports → Sort.
- Share URL — copy a URL that captures the current view. Events URL format:
https://dash.apphud.com/<app>/share/e/<id>. See Reports → Share URL.
Events-specific controls
- Refresh — the circular-arrow icon next to the search field. Click to pull events that arrived after you opened the page. New events do not stream in automatically.
- Export CSV — downloads the current filtered set as a CSV file. A confirmation dialog shows the exact row count: Export events (N). The export respects current filters, and sort order.
However, not only visible, but all columns will be exported. - Pagination — at the bottom of the table:
- Page navigation —
1–N of totalwith previous/next arrows. - Show per page — 50, 100, 250, or 500 rows per page.
- Page navigation —
Permission required to exportExporting detailed user-level data (CSV download from Events or Users & Audiences) is available to Owners and Admins of the company by default.
Regular team members with User role can export only if an Owner or Admin has granted them the relevant permission.
Table columns
The table has two pinned columns and many toggleable ones. Open Edit columns to change which are shown and to reorder them.
Pinned (always shown)
| Column | Description |
|---|---|
| Event | Event name (e.g., Subscription renewed, User created). |
| Time | Timestamp the event occurred. Sortable. |
Toggleable
| Column | Description |
|---|---|
| Paywall ID | Internal paywall ID associated with the event. |
| Placement ID | Placement identifier (e.g., Placement_Jane). |
| Product Name | Display name of the product bundle. |
| Product ID | Product ID (e.g., com.apphud.weekly). |
| Transaction ID | Store transaction ID. |
| Store country | Full country name from the store. |
| Store country code | ISO code from the store (e.g., FR, EG). |
| Country by IP | Full country name from IP. |
| Country by IP code | ISO code from IP. |
| Gross revenue | Revenue in original currency. |
| Gross revenue (USD) | Revenue converted to USD. |
| Permission group | Permission group the product belongs to. |
| Event ID | Apphud's internal event ID — useful for testing connection configuration and support tickets. |
| Integration status | Overall status of the event across configured integrations (Sent, Error, Pendingm, Skipped). Click the row to see per-integration breakdown. |
| User ID | User identifier; opens the User Page in a new tab. Sandbox users are prefixed with a </> icon for quick visual identification. |
Integration delivery Status
Click on the value in Integration Status column for an event to see destinations it was sent to.
The opened pop-up with list all currently set up connection, and for each shows the event delivery status and the timestamp Apphud attempted delivery.
| Column | What it shows |
|---|---|
| Connection | Connection name as configured in Apphud (e.g., Mixpanel, AppsFlyer iOS, FB (CAPI) iOS, Telegram). |
| Status | Sent (delivered successfully), Error (delivery failed), Pending (in flight or awaiting required attribution), Skipped (per connection configuration it should not be sent). |
| (Timestamp) | When Apphud attempted delivery. |
| (View details) | Opens the per-event integration log for that connection — useful for troubleshooting errors. |
FAQ
Why does an event show "Error" for some integrations?
Common causes: misconfigured credentials on the connection, integration disabled in the destination, network error, or a payload the destination rejected. Click the event row to open Event details, then click View details on the failing connection for the specific error message.
For mitigation guidance, in documentation, navigate to the integration description and check Troubleshooting sections / FAQ.
What's the difference between "Event occurred at" and "User first seen at"?
- Event occurred at filters on the event's own timestamp — "what happened in this period.". By applying this setting you'll get events from users of all possible cohorts in one view, filter will take into account just the calendar time period.
- User first seen at filters on the user's first-ever timestamp in Apphud — "all events from users who first appeared in this period," regardless of when those events occurred. By applying this setting, you'll get the whole history of events for users that belong to the defined cohort.
Can I see all events from one specific user?
Yes. Paste the User ID, Device ID, or IDFA into the search field.
How do I share a filtered view with a teammate?
Click the Share URL icon in the top-right of the table. Apphud generates a unique URL (e.g., dash.apphud.com/<app>/share/e/<id>) that captures your filters, sort, and column selection. Send the URL — your teammate sees the exact same slice.
What does "Pending" mean in Integration status?
"Pending" means that Apphud has not sent this event to the integration yet — the event is queued and waiting to be delivered. Once it is processed, the status will change to Sent, Skipped, or Failed.
The most common reason for a "Pending" status is that Apphud is waiting for attribution data. Integrations like AppsFlyer, Adjust, Branch, Firebase, Facebook, or Tenjin require a matching device identifier (for example, an AppsFlyer ID or Adjust ID) to attribute the event correctly. If your app hasn't passed this identifier to Apphud yet, the event is put on hold and will be sent automatically as soon as the attribution data arrives from the device.
Other reasons include intentional send delays — for example, some events (like user_created) are sent with a short delay to make sure all related data is collected first, and some integrations have their own configurable sending delay.
If an event stays "Pending" for a long time, check that your app passes the attribution identifiers to Apphud (see the Attribution guide) — most "stuck" events are missing a device identifier required by the integration.
Are new events shown automatically?
No. The list shows what was loaded when you opened the page. Click Refresh (circular arrow icon) to pull events that arrived after.
Updated 16 days ago
