Recommended online education app events

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

education.png Online education

Online education apps enable users to learn remotely. The typical events that we recommend recording include registration, tutorials and courses completed, and certificates received.

Recording events can help you determine:

  • What courses users want the most and provide you with ideas for targeting
  • Which users can be retargeted and reminded that they have additional tutorials to complete a course
  • Which courses and certificates are the most in demand

 Important!

  • Make sure to read the instructions for marketers about implementing in-app events.
  • To streamline the implementation process, download a CSV file that includes all of the typical in-app events described in this article, and then modify the events according to your business needs. Once complete, share the file with your developer.
  • For each recommended event included in this article, there are code samples for iOS, Android, and Unity developers.
  • Detailed instructions for your developer can be found in the AppsFlyer developer hub.

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

Flowchart_for_recommended_events_online_education_app_user_journey

Recommended structures for predefined events

The following section provides a list of event structures that are typical to the online education 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);

Tutorial completion (af_tutorial_completion)

Purpose

Recording this event can help you determine:

  • What topics users might have trouble with
  • Which tutorials are not performing well and improve them
  • Associate overall user activity with dimensions such as revenue

Trigger

  • When a user completes the tutorial
  • When a user starts the tutorial but quits without completing it

Event parameters

Name Description Example value
af_success Whether or not the user completed the tutorial yes
af_tutorial_id ID of the tutorial 3
af_content Name of the tutorial algebra

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.SUCCESS, yes);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "algebra");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);

Purchase (af_purchase)

Purpose

Recording in-app purchases made by users 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 250.99
af_currency Currency code USD
af_content_id ID of the item 001, 092
order_id Order ID 9277
af_receipt_id Receipt ID 9277

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 250.99);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put("order_id", "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);

Recommended structures for custom events

The following section provides a list of event structures that include custom event names and the suggested event parameters to use. Note that in-app events can include any event parameters that meet your business needs.

Complete exercise (complete_excercise)

Purpose

Record this event and compare it with other data to learn more about your users. For example, you can learn how many users start but do not finish an exercise.

Trigger

When the user completes an exercise

Event parameters

Name Description Example value
course_name Name of the course algebra
exercise_name Name of the exercise 2

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
              eventValue.put("course_name", "algebra");
              eventValue.put("exercise_name", "2");
              AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "complete_exercise", eventValue);

Course completed (course_completed)

Purpose

Record this event and compare it with other data to learn more about your users. For example, you can learn how many users start but do not finish a course.

Trigger

When the user completes a course

Event parameters

Name Description Example value
course_name Name of the course algebra
course_completed Whether the course was completed yes

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("course_completed", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "course_completed", eventValue);

Certificate issued (certificate_issued)

Purpose

Record this event and compare it with other data to learn more about your users. For example, you can learn how many users finish a course, and then retarget them for the next course.

Trigger

When the user is issued a certificate

Event parameters

Name Description Example value
course_name Name of the course algebra
certificate_received Whether the certificate was issued yes

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("certificate_received", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "certificate issued", eventValue); 
Was this article helpful?