Recommended P2P lending app events

At a glance: Measure the quality of your users throughout their user journey by recording these suggested in-app events for your peer-to-peer (P2P) lending app.

InApp_Events_lending.png P2P lending

P2P lending is a way for individuals and businesses to lend and borrow money from one another. The typical events that we suggest recording are the activities of individual lenders and borrowers, the types of loans people offer, and loan acceptance and rejection rates.

The data that you gather from event recording can highlight trustworthy borrowers and offer them better interest rates. Similarly, you can see who the most active lenders are and offer them lower fees. In addition, once you know what type of loans are most popular with your users, you can launch marketing campaigns that target these audiences.

 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 P2P_lending_app_user_journey

Recommended structures for predefined events

The following section provides a list of event structures that are typical to the P2P lending 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.

Complete registration (af_complete_registration)

Purpose

Determine how many users actually verify their identity after registering. You can attribute these users to campaigns and see what campaigns generate active users.

Trigger

When the user's registration is approved

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<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);

Login (af_login)

Purpose

Understand the retention of your registered users

Trigger

When 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);

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.

Registration submitted (registration_submitted)

Purpose

Since P2P lending is susceptible to abuse, users must first verify their identity. They do so by submitting a registration request. This event can help you:

  • Determine how many users register but never verify their account
  • See the correlation between registration methods, such as email, Facebook, Google, and verification rates

Trigger 

After the user submits a request to register

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<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "registration_submitted", eventValue);

Fill loan form (fill_loan_form_<FORM_NAME>)

Purpose

Determine the drop rate, and retarget borrowers who do not complete their loan applications.

Note that when you send this event, include the form name in the event name.

Trigger

When a borrower submits a form

Event parameters

Can be sent without any additional parameters

 Note

It is highly recommended that you associate loans with lenders. To do so, make sure to set the Customer User ID. Setting the Customer User ID is your way to match lenders with users of your app as they appear in AppsFlyer. By setting the Customer User ID you make sure that any event is sent with the Customer User ID.

Code examples

Android iOS - Objective C iOS - Swift Unity

AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "fill_loan_form_FORM_NAME", null);

Submit loan application (submit_loan_application)

Purpose

This event can help you :

  • Determine the overall number of loan applications in your app
  • Learn about the maximum, minimum, and average amount in loan applications
  • Determine the type of loans people apply for

Trigger

When the user successfully submits a loan application

Event parameters

Name Description Example value
loan_id ID of the loan 1735102
loan_amount Amount requested 1000
loan_type Loan period 3 months

Code examples

Android iOS - Objective C iOS - Swift Unity

Map<String, Object> eventValue = new HashMap<String, Object>(); eventValue.put("loan_id", "1735102"); eventValue.put("loam_amount", 1000); eventValue.put("loan_type", "3 months"); AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_loan_application", eventValue);

Loan form (loan_form)

Purpose

Review loan applications submitted by borrowers

Trigger

When the borrower successfully submits a loan application 

Event parameters

Name Description Example value
loan_id ID of the loan 1735102
loan_amount Amount requested 1000
loan_type Loan period 3 months

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_form", eventValue);

Submit credit check (submit_credit_check)

Purpose

Check the borrower's financial history (for example, past credit, payment habits, and types of loans) to assess the risk level.

Trigger

After the lender receives a request for a loan

Event parameters

Name Description Example value
loan_id ID of the loan 1735102
loan_amount Amount requested 1000
loan_type Loan period 3 months

Code examples

Android iOS - Objective C iOS - Swift Unity

Map<String, Object> eventValue = new HashMap<String, Object>(); eventValue.put("loan_id", "1735102"); eventValue.put("loam_amount", 1000); eventValue.put("loan_type", "3 months"); AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_credit_check", eventValue);

Loan accepted (loan_accepted)

Purpose

Learn about trends in loans and other metrics. This event can help you determine:

  • What type of loans are accepted
  • The amount requested in loans that are approved
  • Which lenders accept the most loans 

Trigger

When a loan is accepted

Event parameters

Name Description Example value
loan_id ID of the loan 1735102
loan_amount Amount requested 1000
loan_type Loan period 3 months

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_accepted" , eventValue);

Loan rejected (loan_rejected)

Purpose

Understand the reasons why loans get rejected. You can see the correlation between the loan amount, the loan period, and rejection rates. You can also retarget users whose loan gets rejected and suggest they take a smaller loan.

Trigger

When a lender rejects a loan

Event parameters

Name Description Example value
loan_id ID of the loan 1735102

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loan_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),loan_rejected" , eventValue);

Payment (payment)

Purpose

Helps you mark borrowers as trustworthy. Trustworthy borrowers are those that follow their obligation to cover their loans. You can attribute borrowers to campaigns and understand which campaigns generated trustworthy borrowers. In addition, this event can also help you gather data about the minimum, maximum, and average amount of payments.

Trigger

When a borrower makes a payment on their loan

Event parameters

Name Description Example value
loan_id ID of the loan 1735102
payment_amount Amount paid 100
payment_id ID of the payment AE12SF

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("payment_amount", 100);
eventValue.put("payment_id", "AE12SF");
AppsFlyerLib.getInstance().logEvent(
			  getApplicationContext(),
			 "payment" , eventValue);

Payment completed (payment_completed)

Purpose

Highlight borrowers who follow their obligation to cover a loan. You can also retarget such borrowers and offer them lower interest fees or other promotions.

Trigger

When a loan is fully paid back

Event parameters

Field name Description Example value
loan_id ID of the loan 1735102

Code examples

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

Payment received (payment_received)

Purpose

Verify that the borrower completes loan payments according to the terms of the loan agreement.

Trigger

When a borrower makes a payment on their loan

Event parameters

Name Description Example value
loan_id ID of the loan 1735102
payment_amount Amount paid 100
payment_id ID of the payment AE12SF

Code examples

Android iOS - Objective C iOS - Swift Unity
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("payment_amount", 100);
eventValue.put("payment_id", "AE12SF");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "payment_received" , eventValue);
Was this article helpful?