Android SDK Initialisation

Enable Custom Manifest File

Navigate to Build Settings, switch the platform to Android. Then go to Player Settings --> Player --> Android --> Publishing Settings.
Under the Build Heading check Custom Main Manifest

Adding Dependencies

MoEngage plugin depends on the following Jetpack libraries. In case you don't have them in your application already please add them.
You can choose to enable the custom gradle template in your Application's Player Settings and the below dependencies or else use the unity package we have created with the below dependencies.
You can download the unity package using this link

androidx.core:core:1.3.1
androidx.appcompat:appcompat:1.2.0
androidx.lifecycle:lifecycle-process:2.2.0

Add Application Class

  • Create a Java/Kotlin class and add in the Assets --> Plugins --> Android folder. Extend the class with android.app.Application and override the onCreate().
  • Declare the above-created class in the Manifest file inside the application tag.
<application 
        android:name="[FULLY_QUALIFIED_NAME_OF_APPLICATION_CLASS]"
        android:label="@string/app_name" android:icon="@drawable/app_icon">

The Manifest file can be found in the Assets --> Plugins --> Android folder.

SDK Initialisation

Get APP ID from the Settings Page Dashboard --> Settings --> App --> General on the MoEngage dashboard and initialize the MoEngage SDK in the Application class's onCreate()
Note: It is recommended that you initialize the SDK on the main thread inside onCreate() and not create a worker thread and initialize the SDK on that thread.

import com.moengage.unity.wrapper.MoEInitializer
import com.moengage.core.MoEngage

// this is the instance of the application class and "XXXXXXXXXXX" is the APP ID from the dashboard.
val moEngage = MoEngage.Builder(this, "XXXXXXXXXXX")
  
MoEInitializer.initialize(getApplicationContext(), moEngage)
import com.moengage.unity.wrapper.MoEInitializer;
import com.moengage.core.MoEngage;

// this is the instance of the application class and "XXXXXXXXXXX" is the APP ID from the dashboard.
MoEngage.Builder moEngage =
        new MoEngage.Builder(this, "XXXXXXXXXXX");

MoEInitializer.initialize(getApplicationContext(), moEngage);

Refer to the API reference doc for a detailed list of possible configuration.

❗️

All the configuration should be added to the builder before calling initialize. If you are calling initialize at multiple places please ensure that all the required flags and configuration are set each time you initialize to maintain consistency in behavior.