Send nudge events to your own analytics system

Please follow the steps below to get nudge events shared with your analytics system. This listener will provide following events:

  1. hansel_nudge_show_event - This event will be fired when a nudge is rendered on the device. This is available from Android Product Experience SDK v8.6.3 onwards only.
  2. hansel_nudge_event - This event will be fired when the nudge is dismissed. This is available from Android Product Experience SDK v8.5.0 onwards.
  3. hansel_branch_tracker - This event will be fired whenever the user moves in/out of any branch or segment. This is available from Android Product Experience SDK v9.0.7 onwards. Below are the cases in which this callback is invoked :
    • SDK initialisation
    • User identity change
    • Segment(Positive/Negative) change

Step 1 : Create a class that implements the HanselInternalEventsListener with the following method:

import io.hansel.ujmtracker.HanselInternalEventsListener;

HanselInternalEventsListener hanselInternalEventsListener = new HanselInternalEventsListener() {
   @Override
   public void onEvent(String eventName, HashMap dataFromHansel) {
        if ("hansel_nudge_show_event".equals(eventName)) {
	        // Invokes when nudge is shown to the user where "Send the event to Analytics provider" is enabled for the nudge
            // send `dataFromHansel` to your analytics provider 
            // e.g. CleverTap.push(clevertapAPI, "hansel_nudge_show_event", dataFromHansel);
        } 
	    else if ("hansel_nudge_event".equals(eventName)) {
	        // Invokes when nudge is dismissed from the device where "Send the event to Analytics provider" is enabled for the nudge
            // send `dataFromHansel` to your analytics provider 
            // e.g. CleverTap.push(clevertapAPI, "hansel_nudge_event", dataFromHansel);
        }
	    else if ("hansel_branch_tracker".equals(eventName)) {
	        // Invokes when user branch is changed or initial state of the branches gets synced
            // send `dataFromHansel` to your analytics provider 
            // e.g. CleverTap.push(clevertapAPI, "hansel_branch_tracker", dataFromHansel);
        }
    }
};
import io.hansel.ujmtracker.HanselInternalEventsListener

var hanselInternalEventsListener: HanselInternalEventsListener =
            HanselInternalEventsListener { eventName, dataFromHansel ->
                when (eventName) {
                    "hansel_nudge_show_event" -> {
                        // Invokes when nudge is shown to the user where "Send the event to Analytics provider" is enabled for the nudge
                        // send `dataFromHansel` to your analytics provider
                        // e.g. CleverTap.push(clevertapAPI, "hansel_nudge_show_event", dataFromHansel);
                    }
                    "hansel_nudge_event" -> {
                        // Invokes when nudge is dismissed from the device where "Send the event to Analytics provider" is enabled for the nudge
                        // send `dataFromHansel` to your analytics provider
                        // e.g. CleverTap.push(clevertapAPI, "hansel_nudge_event", dataFromHansel);
                    }
                    "hansel_branch_tracker" -> {
                        // Invokes when user branch is changed or initial state of the branches gets synced
                        // send `dataFromHansel` to your analytics provider
                        // e.g. CleverTap.push(clevertapAPI, "hansel_branch_tracker", dataFromHansel);
                    }
                }
            }

Step 2 : Registering the listener with Product Experience SDK

import io.hansel.ujmtracker.HanselTracker;

//Register the listener with Hansel SDK by using this code.
HanselTracker.registerListener(hanselInternalEventsListener);
import io.hansel.ujmtracker.HanselTracker

//Register the listener with Hansel SDK by using this code.
HanselTracker.registerListener(hanselInternalEventsListener)

Note

  1. Please ensure to select the checkbox 'Send nudges to Analytics Provider' from Step 2 of Nudge creation flow for hansel_nudge_show_event & hansel_nudge_event
  2. Please note that this step is not required for hansel_branch_tracker call back

  1. Below are properties that you can expect in these following events.

hansel_nudge_show_event

  • interaction_map_name
  • nudge_name
  • nudge_type
  • app_id
  • user_id (fallback to device id if not present)

hansel_nudge_event

  • interaction_map_name
  • nudge_name
  • nudge_type
  • app_id
  • user_id (fallback to device id if not present)
  • nudge_rating : NULL | Rating | NPS (will be a number)
  • nudge_mcq : MCQ (will be a string)
  • nudge_inputtext: NULL | text
  • nudge_action: button1/2_clicked | buttontext | close_clicked | noaction_autodismissed | noaction_screenchanged | noaction_appclosed | backdrop_dismissed

hansel_branch_tracker

  • hsl_counter -> integer value that represents the number of hsl_data present in dataFromHansel map. For example hsl_counter = 3 means hsl_data, hsl_data1 and hsl_data2 should be available in map
  • hsl_data
    hsl_data1
    hsl_data2
  • hsl_ven -> represents analytics vendor used for the SDK.