> ## Documentation Index
> Fetch the complete documentation index at: https://moengage-unity-sdk-initialization-split.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Android

> Use file-based initialization to configure the MoEngage SDK in your Unity project's Android library plugin.

## Overview

As an alternative to programmatic initialization, you can initialize the SDK using a configuration file. This lets you manage your Workspace ID and data center directly within a native configuration file, keeping them separate from your application logic.

<Info>
  If you require programmatic initialization instead, refer to the guide on [Manual Initialization](/developer-guide/unity-sdk/sdk-integration/sdk-initialization/manual-initialization/android).
</Info>

## Add Configuration File

Create `moengage_init_config.xml` in your Android library plugin at `Assets/Plugins/Android/<YOUR_ANDROID_LIBRARY_PLUGIN>.androidlib/res/values/moengage_init_config.xml` and specify your workspace ID and data center:

```xml moengage_init_config.xml theme={null}
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="moengage_workspace_id">YOUR_Workspace_ID</string>
    <string name="moengage_data_center">DATA_CENTER_X</string>
</resources>
```

For more information on creating an Android library plugin, refer to the [Unity documentation](https://docs.unity3d.com/6000.4/Documentation/Manual/android-library-plugin-create.html).

You must also call `MoEInitializer.initialiseDefaultInstance(application)` in your Application class alongside the file-based config. When this file is present, the SDK reads configuration from it at startup. Programmatic initialization takes precedence if both are provided.

Following details of the different data centers you need to set based on the dashboard hosts

| Data Center                | Dashboard host            |
| -------------------------- | ------------------------- |
| DataCenter.DATA\_CENTER\_1 | dashboard-01.moengage.com |
| DataCenter.DATA\_CENTER\_2 | dashboard-02.moengage.com |
| DataCenter.DATA\_CENTER\_3 | dashboard-03.moengage.com |
| DataCenter.DATA\_CENTER\_4 | dashboard-04.moengage.com |
| DataCenter.DATA\_CENTER\_5 | dashboard-05.moengage.com |

For more information about the detailed list of possible configurations, refer to the [API reference](https://moengage.github.io/android-api-reference/core/com.moengage.core/\[android-jvm]-mo-engage/-builder/index.html).

<Info>
  All the configurations are added to the builder before initialization. If you are calling initialize at multiple places, ensure that all the required flags and configurations are set each time you initialize to maintain consistency in behavior.
</Info>

## Exclude MoEngage Storage File from Auto-Backup

This is a mandatory integration step and is very essential to prevent your data from getting corrupted. Android's auto back-up service periodically backs up Shared Preference files, Database files, etc, more details [here](https://developer.android.com/guide/topics/data/autobackup). This backup results in MoEngage SDK's identifiers being backed up and restored after re-install.This restoration of the identifier results in your data being corrupted and users not being reachable via push notifications.

To ensure data is not corrupted after a backup is restored, opt out of MoEngage SDK's storage files. Refer to [Exclude MoEngage Storage File from the Auto-Backup](/developer-guide/android-sdk/sdk-integration/basic-integration/exclude-mo-engage-storage-file-from-auto-backup) section of the documentation to learn more about which files to exclude.
