Now that you have installed the Mapp Engage SDK and updated the app manifest, you can implement the tracking of push and in-app notification by following the next steps.

In order to track receiving / opening / dismissal of push notifications you need to call the Mapp Intelligence SDK on the receiver, which extends PushDataReceiver:

class MyPushBroadcastReceiver: PushDataReceiver() {
   
   override fun onPushReceived(pushData: PushData?) {
       Log.d("APX", "Push received $pushData")
   
       val params = LinkedHashMap<String, String>()
       Webtrekk.getInstance().trackCustomEvent("notification received")
   }
   
   override fun onPushOpened(pushData: PushData?) {
       Log.d("APX", "Push opened $pushData")
       Webtrekk.getInstance().trackCustomEvent("notification opened")
   }
   
   override fun onPushDismissed(pushData: PushData?) {
       Log.d("APX", "Push dismissed $pushData")
       Webtrekk.getInstance().trackCustomEvent("notification dismissed")
   }
}
JAVA
public class MyPushBroadcastReceiver extends PushDataReceiver {
   @Override
   public void onPushReceived(PushData pushData) {
       Log.d("APX", "Push received " + pushData);
       Webtrekk.getInstance().trackCustomEvent("notification received",    Collections.emptyMap());
   }
  
   @Override
   public void onPushOpened(PushData pushData) {
       Log.d("APX", "Push opened " + pushData);
       Webtrekk.getInstance().trackCustomEvent("notification opened", Collections.emptyMap());
   }
  
   @Override
   public void onPushDismissed(PushData pushData) {
       Log.d("APX", "Push dismissed " + pushData);
       Webtrekk.getInstance().trackCustomEvent("notification dismissed", Collections.emptyMap());
   }
}
JAVA


Next, For in-app notification tracking, you need to follow step 1 and 2 and include tracking as follows

class YourActivity : AppCompatActivity() {
   
   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_your)
   
       ...
   
       /*
        Custom Trigger Events are used to trigger when an In-App message is displayed. Common trigger events are "Open App", "Open Shopping Cart", "Open Inbox/Message Center".
        With custom trigger events, you can create events specific to your app. At a minimum, all apps require one Custom Trigger Event. The most common event is Open App.
        To create a custom trigger event in Android, include the following call in your app.
        */
       Appoxee.instance().triggerDMCCallInApp(this@YourActivity, "EventName")
   
       val inAppInboxCallback = InAppInboxCallback()
       inAppInboxCallback.addInAppInboxMessagesReceivedCallback(object :
           InAppInboxCallback.onInAppInboxMessagesReceived {
           override fun onInAppInboxMessages(richMessages: List<APXInboxMessage>) {
               Log.d("messages", "messages = " + richMessages[0].content)
   
               Webtrekk.getInstance()
                   .trackCustomEvent("in_app_inbox_messages received", emptyMap())
           }
   
           override fun onInAppInboxMessage(message: APXInboxMessage) {
               Log.d("messages", "messages = " + message.content)
   
               Webtrekk.getInstance()
                   .trackCustomEvent("in_app_inbox_messages received", emptyMap())
           }
       })
   
       val inAppCallback = InAppCallback()
       inAppCallback.addInAppMessageReceivedCallback { eventName, eventValue ->
           Log.d("  eventName = ", eventName)
           Log.d("  eventValue = ", eventValue)
   
           Webtrekk.getInstance().trackCustomEvent("in_app_message received", emptyMap())
       }
   
       val inAppMessageDismissalCallback = InAppMessageDismissalCallback()
       inAppMessageDismissalCallback.addOnInAppMessageDismissalCallback { templateId, eventId, isSendStats ->
           Log.d("MainActivity", "onInAppMessageDismissalCallback")
   
           Webtrekk.getInstance().trackCustomEvent("in_app_message dismissed", emptyMap())
       }
   }
}
JAVA
public class YourActivity extends AppCompatActivity {
  
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_your);
  
       ...
  
       /*
        Custom Trigger Events are used to trigger when an In-App message is displayed. Common trigger events are "Open App", "Open Shopping Cart", "Open Inbox/Message Center".
        With custom trigger events, you can create events specific to your app. At a minimum, all apps require one Custom Trigger Event. The most common event is Open App.
        To create a custom trigger event in Android, include the following call in your app.
        */
       Appoxee.instance().triggerDMCCallInApp(YourActivity.this, "EventName");
  
       InAppInboxCallback inAppInboxCallback = new InAppInboxCallback();
       inAppInboxCallback.addInAppInboxMessagesReceivedCallback(new InAppInboxCallback.onInAppInboxMessagesReceived() {
           @Override
           public void onInAppInboxMessages(List<APXInboxMessage> richMessages) {
               Log.d("messages", "messages = " + richMessages.get(0).getContent());
                
               Webtrekk.getInstance().trackCustomEvent("in_app_inbox_messages received", Collections.emptyMap());
           }
  
           @Override
           public void onInAppInboxMessage(final APXInboxMessage message) {
               Log.d("messages", "messages = " + message.getContent());
                
               Webtrekk.getInstance().trackCustomEvent("in_app_inbox_messages received", Collections.emptyMap());
           }
       });
  
       InAppCallback inAppCallback = new InAppCallback();
       inAppCallback.addInAppMessageReceivedCallback(new InAppCallback.onInAppEventReceived() {
           @Override
           public void onInAppEvent(String eventName, String eventValue) {
               Log.d("  eventName = ", eventName);
               Log.d("  eventValue = ", eventValue);
                
               Webtrekk.getInstance().trackCustomEvent("in_app_message received", Collections.emptyMap());
           }
       });
  
       InAppMessageDismissalCallback inAppMessageDismissalCallback = new InAppMessageDismissalCallback();
       inAppMessageDismissalCallback.addOnInAppMessageDismissalCallback(new InAppMessageDismissalCallback.onInAppMessageDismissalCallback() {
           @Override
           public void onInAppMessageDismissalCallback(int templateId, String eventId, boolean isSendStats) {
               Log.d("MainActivity", "onInAppMessageDismissalCallback");
  
               Webtrekk.getInstance().trackCustomEvent("in_app_message dismissed", Collections.emptyMap());
           }
       });
   }
}
JAVA