Recommended telecommunication app events

At a glance: Measure the quality of your users throughout their user journey by recording these suggested in-app events for your telecommunication app.

telecommunications_icon.png Telecommunication

Telecommunication apps enable users to purchase and manage cell phone plans, data plans, and so on. The typical events that we suggest recording include purchases, top-ups, and subscriptions.

Recording these events can help you determine:

  • Which gateway plans are most popular
  • What products or packages users can afford
  • Which plans are most likely to get long-term commitments from customers

For more information about recording in-app events, see the Rich in-app events guide.

Flowchart_for_recommended_events_telecommunication_app_user_journey

Recommended structures for predefined events

The following section provides a list of event structures that are typical to the telecommunication vertical. Each structure includes a predefined event name and the suggested event parameters to use. Note that in-app events can include any event parameters that meet your business needs

Login (af_login)

Purpose

Understand the retention of your registered users

Trigger

Whenever the user successfully logs in

Event parameters

Can be sent without any additional parameters

Code examples

Android iOS - Objective C iOS - Swift Unity

AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);

Complete registration (af_complete_registration)

Purpose

Learn how many users installed the app and completed the signup process, and what signup methods your users prefer.

Trigger

When the user completes the signup process

Event parameters

Name Description Example value
af_registration_method Type of signup method email, Facebook

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REGISTRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);

Content view (af_content_view)

Purpose

Determine the view rate of specific products and:

  • Correlate product views with product sales
  • Understand what categories are the most popular according to product views
  • See the correlation between buyers' currency and the products that they view

Trigger

When the user views a specific product details page

Event parameters

Name Description Example value
af_price Product price 200
af_content_id Product ID 102
af_content_type Product category Internet packages
af_currency Currency in the product details page THB, USD

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 200);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "102";
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Internet packages");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);

List view (af_list_view)

Purpose

Record which lists (for example, newly added products, related products, or recommended products) buyers view the most.

Trigger

When the user views a specific list

Event parameters

Name Description Example value
af_content_type Type of list Related, recommended, new arrivals
af_content_list List of content IDs from the category 001, 092

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "related products");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);

Purchase (af_purchase)

Purpose

Many telecommunications apps allow users to purchase items such as extra data. Recording this event can help you:

  • Determine the LTV of your users and the ROI of your campaigns across ad networks and ad agencies
  • Determine what offers are most popular with your users
  • Cross-reference campaigns with purchased items in order to optimize campaign targeting

Trigger

When the user lands on the thank you page after a successful purchase

Event parameters

Name Description Example value
af_revenue Estimated revenue from the purchase 2050.50
af_currency Currency code THB
af_content_type Name of the package bought 5G
af_order_id Order ID 9277
payment_method_type Type of payment method credit card, local payment

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 2050.50);
eventValue.put(AFInAppEventParameterName.CURRENCY, "THB");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "5G");
eventValue.put("AFInAppEventParameterName.ORDER_ID", "9277");
eventValue.put("payment_method_type", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);

Top-up success (af_top_up_success)

Purpose

Top-up funds can be used to buy any package or any other service offered inside the app. Record this event and compare it with other data to learn more about your users. For example, you can learn what amounts users are willing to deposit into their accounts, and then use the top-up amounts to target them with customized campaigns within their budgets.

Trigger

When the user completes the top-up

Event parameters

Name Description Example value
af_revenue Amount of the top-up 2050.50
top_up_id ID of the top-up 397
payment_method_type Type of payment method credit card, local payment

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 2050.50); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.AF_TOP_UP_SUCCESS, eventValue);

Top-up unsuccessful (af_top_up_unsuccessful)

Purpose

Record this event and compare it with other data to learn more about your users. For example, you can learn how many users try to top-up but fail.

Trigger

When the user tries to top up but the action fails

Event parameters

Name Description Example value
error_reason Reason for the top-up failure exceeded_daily_limit

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
              eventValue.put("error_reason", "exceeded_daily_limit");
              AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_top_up_unsuccessful", eventValue);

Subscription complete (af_subscription_complete)

Purpose

Recording this event can help you:

  • See which campaigns bring users that subscribe
  • Compare the number of subscribed users against unsubscribed users
  • Record revenue generated from subscriptions and attribute it to campaigns and media sources

Trigger

  • When the user successfully subscribes
  • When a subscription is renewed

Event parameters

Name Description Example value
af_subscription_type Type of subscription Monthly 30 GB
af_revenue Amount of the subscription 555.50

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("af_subscription_type", "Monthly 30 GB"); 
eventValue.put("af_revenue", "555.50"); 
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_subscription_complete", eventValue);

Recommended structures for custom events

The following section provides an event structure that includes a custom event name and the suggested event parameter to use. Note that in-app events can include any event parameters that meet your business needs.

Select package (select_package)

Purpose

Record when a user decides to buy a package but has not made the payment yet. You can use this data, for example, to retarget users and send them offers about other services.

Trigger

When the user selects a package but has not completed the payment

Event parameters

Name Description Example value
price Price of the subscription 50000
af_content_type Type of content the user selected Data 5 GB

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("price", "50000");
eventValue.put("af_content_type ", "Data 5 GB ");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "select_package", eventValue); 
Was this article helpful?