Guides
GuidesLog In
Guides

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_declinedname; 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 underrevenuename, 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.