Events
Free Trial Events
Trial Started
This event is created when the user purchases a subscription with a free trial period.
The event is sent to analytics under the trial_started
name.
Trial Active
This event is created if trial is still active 1 hour after purchase.
The event is sent to analytics under the trial_active
name.
Trial Converted
This event is created after the trial period is finished and the user has been charged for the first time with the regular subscription price.
The event is sent to analytics under the trial_converted
name.
Trial Canceled
This event is created when auto-renew is turned off for any free trial subscription. Note that the current subscription period may not yet be over.
The event is sent to analytics under the trial_canceled
name.
Trial Expired
This event is created after the free trial period is over without conversion.
The event is sent to analytics under the trial_expired
name.
Has the following expiration reasons (iOS only):
- User canceled subscription manually –
user_canceled
; - There was a billing error –
billing_issue
; - User did not agree to a recent price increase –
declined_price_increase
; - Product was not available for purchase at the time of renewal –
unavailable_product
; - Unknown error occurred –
unknown_error
.
Regular Subscriptions
These are events that are created for a subscription at a regular price.
Subscription Started
This event is created when a user has purchased a subscription at a regular price.
The event is sent to analytics under the subscription_started
name.
Subscription Renewed
This event is created when the subscription has been renewed and the user has been charged a regular price.
The event is sent to analytics under the subscription_renewed
name.
Subscription Canceled
This event is created when auto-renew is turned off for any paid subscription.
The event is sent to analytics under the subscription_canceled
name.
Subscription Expired
This event is created when the subscription period is over without renewal.
The event is sent to analytics under the subscription_expired
name.
Note
This event has the same set of expiration reasons as the
trial expired
event.
Subscription Refunded
This event is created when the user has refunded the subscription.
The event is sent to analytics under the subscription_refunded
name.
Note
This event has the same set of refund reasons as a refund during an introductory offer.
Paid Introductory Offers
An introductory offer is a discount that can be applied to new subscribers.
Note
You can read more about iOS introductory offer types in our blog.
Intro Started
This event is created when the user purchases a subscription with an introductory offer.
The event is sent to analytics under the intro_started
name.
Intro Renewed
This event is created when the subscription renews during the introductory offer.
The event is sent to analytics under the intro_renewed
name.
Intro Converted
This event is created when an introductory offer is finished and the user has been charged for the first time with the regular subscription price.
The event is sent to analytics under the intro_converted
name.
Intro Expired
This event is created when the subscription period is over without renewal.
The event is sent to analytics under the intro_expired
name.
Note
This event has the same set of expiration reasons as the trial period.
Intro Refunded
This event is created when the user has refunded the subscription with an introductory offer.
The event is sent to analytics under the intro_refunded
name.
Has the following refund reasons (iOS only):
- User canceled his subscription due to an actual or perceived issue within your app –
app_issue
; - Subscription was canceled for another reason, for example, if the user made the purchase accidentally –
another_reason
.
Promotional Offers
In iOS Apps, these are purchases made by using promotional offers.
In Android, these are purchases made by using promo codes.
Promo Started
This event is created when the user activates a promotional offer (iOS) or activates a promo code (Android).
The event is sent to analytics under the promo_started
name.
Promo Renewed (iOS only)
This event is created when a subscription renews during a promotional offer with a "pay as you go" type.
The event is sent to analytics under the promo_renewed
name.
Promo Converted
This event is created when the promotional offer is finished and the user has been charged a regular subscription price.
The event is sent to analytics under the promo_converted
name.
Promo Expired
This event is created when subscription lapses during a promotional offer.
The event is sent to analytics under the promo_expired
name.
This event has the same set of expiration reasons as the trial period.
Promo Refunded (iOS only)
This event is created when the user has refunded the subscription with a promotional offer through Apple Care support.
The event is sent to analytics under the promo_refunded
name.
Has the following refund reasons:
- User canceled his subscription due to an actual or perceived issue within your app –
app_issue
; - Subscription was canceled for another reason, for example, if the user made the purchase accidentally –
another_reason
.
Paywall Events
Paywall Shown
This event is created when the paywall has been viewed by a user.
The event is sent to analytics under the paywall_shown
name.
Note
This event is sent manually with paywallShown() method.
Paywall Closed
This event is created when the user has closed the paywall with a cross icon or any other cancellation link.
The event is sent to analytics under the paywall_closed
name.
Note
This event is sent manually with paywallClosed() method.
Paywall Checkout Initiated
This event is created when the user tap on the selected product (or Continue button) on the paywall and the system checkout popup appears.
The event is sent to analytics under the paywall_checkout_initiated
name.
Paywall Payment Cancelled
This event is created when the user cancels a purchase on a system checkout popup.
The event is sent to analytics under the paywall_payment_cancelled
name.
Other Refund Events (iOS only)
Apphud requires App Store Server Notifications v2 to be enabled to detect the below refund-relevant events:
Refund Requested
This event occurs when a user requests a refund via the Apple support page for any in-app purchase: subscription or consumable product. At this point, Apple sends a CONSUMPTION_REQUESTED notification that we process and create the event.
Each purchase transaction requested to be refunded will have one corresponding event. For example, if a user subscribed to a weekly product and requested refunds for the last month with 3 payments made during it, there would be 3 Refund Requested events.
The event is sent to analytics under therefund_requested
name; it does not have revenue associated with it.
Refund Declined
This event occurs when Apple declines a user refund request. Without interference from asides, this happens rarely.
To avoid refund abuse, developers can handle refund requests by analyzing user transaction-relevant history data (aka Consumption data) and sharing it with Apple within the allowed timeframe after the refund request is filed.
After reviewing the provided consumption data, if Apple deems the refund request unfair, it will decline the user's request and trigger a Refund Declined event creation in Apphud.
The event is sent to analytics under therefund_declined
name; it does not have revenue associated with it.
Whenever Apple approves a user's refund request (regardless of whether the developer has submitted consumption data or not), Apphud generates a refund event that corresponds to a purchase type of the request-associated transaction - Subscription Refunded, Intro Refunded, Promo Refunded, or Non-renewing purchase Refunded. All these events have a negative revenue associated with them, thus, they affect MRR.
Other Events
Autorenew Enabled (iOS only)
This event is created when the subscription auto-renew is turned back on.
The event is sent to analytics under the autorenew_enabled
name.
Autorenew Disabled (Deprecated, iOS only)
This event is created when the subscription auto-renew is turned off. Includes both trial and paid subscriptions.
This event is marked for removal. Please use Trial Canceled and Subscription Canceled Events.
The event is sent to analytics under the autorenew_disabled
name.
Billing Issue
This event is created when subscription renewal failed because of a billing issue.
The event is sent to analytics under the billing_issue
name.
Billing Issue Resolved
This event is created when subscription recovers from a billing issue.
The event is sent to analytics under the billing_issue_resolved
name.
Non-Renewing Purchase
This event is created when a user purchased a non-renewable product.
The event is sent to analytics under the non_renewing_purchase
name.
Non-Renewing Purchase Refunded
This event is created when the user has refunded a non-renewable product.
The event is sent to analytics under the non_renewing_purchase_refunded
name.
User Created
Important Note
This event is not created by default. You should first enable it in integration settings or Server-to-Server webhooks, and then it will start appearing. It is not included in .csv Export.
This event is created when the user is created in Apphud.
The event is sent to integrations when enabled under the user_created
name.
Revenue
Important Note
This event is specifically intended for use in Integrations, when and if necessary. It is not included in .csv Export and does not affect analytics. Use this event with caution — enable it only if you fully understand the implications and risks associated with revenue duplication.
This event duplicates all the revenue events underrevenue
name, including refunds.
App Reinstalled
This event is created when SDK detects a reinstall. The event is sent to analytics under the app_reinstalled
name. For more informaton regarding reinstalls tracking is available here.
Subscription Changed
This event is created whenever a product of a subscription changes. iOS only. The event is sent to analytics under the subscription_changed
name.
When Events are Created?
Apphud regularly sends requests to App Store or Google Play to update subscriptions state and to create new events if necessary.
Updated 2 days ago