After the MoEngage package is imported, include
MoEngageConfiguration.h file in your Asset folder
Asset > Import New Asset). Download this configuration file from here.
In your configuration file set MoEngage App ID and Region along with other constants as shown below:
#define kMoEngageAppID @"Your App ID" #define kMoEngageRegion @"DEFAULT" // DEFAULT / EU / SERV3 #define kMoEngageLogsEnabled NO #define kDefaultIDFATrackingOptedOut YES #define kDefaultIDFVTrackingOptedOut NO #define kMoEngageUnityControllerSwizzlingEnabled YES
kMoEngageAppID: Provide your MoEngage app's App ID here. In MoEngage dashboard go to
Settings > App Settingsto obtain the same.
kMoEngageRegion: We support data redirection to our servers in different clusters. Set this value to
DEFAULTfor US datacenter, EU for EU datacenter, and SERV3 for India datacenter. Keep the value to DEFAULT and contact the MoEngage support team if not sure about this setting.
kMoEngageLogsEnabled: Set this value to
YESfor printing SDK logs, will be required only to troubleshoot issues.
The OptedOut Tracking status can be updated later after getting consent from the user, refer here for more info.
kDefaultIDFVTrackingOptedOut: Set the default tracking status of IDFA(Advertising identifier) and IDFV(Vendors Identifier) tracking here. Set the value
YESif you wish to opt-out of tracking the attribute.
kMoEngageUnityControllerSwizzlingEnabled: Set this value to
YESto enable UnityAppController Swizzling to initialize the SDK. For more info refer to the below section.
There are two approaches using which the SDK can be initialized:
Unity App Controller Subclass:
SDK contains the
MoEUnityAppControllerclass which is the subclass of UnityAppController. Here we get a callback on AppLaunch to initialize MoEngage SDK.
kMoEngageUnityControllerSwizzlingEnabledin the configuration file and set it to
YESto enable UnityAppController swizzling. Here
application:didfinishLaunchinWithOptions:method is swizzled to initialize MoEngage SDK.
UnityAppController swizzling(2nd approach) will be required if your project has multiple implementations of UnityAppController subclasses(1st approach), here the subclass defined in the plugin might not work reliably because here only one of the subclasses in the project will get the callbacks.
If you would like to support Geofence based push campaigns in your app, import
MoEngageGeofenceiOS by navigating to
Assets > Import Package > Custom Package and import it as shown below:
We make use of CocoaPods for managing native dependencies, therefore make sure the same is installed in your system.
Once required packages are imported go to
File > Build Settings, switch to iOS platform, and click on
Replace in the pop-up. It's necessary to select Replace on first-time integration, this is because we will be updating the build settings of the Xcode project for MoEngage SDK and also install the native dependencies via CocoaPods.
This step is required for Unity version
This step is only required on first-time integration OR whenever you
Replacethe build. If you Build and Append hereafter, this step would not be required.
After building the project in Unity Editor. Open Xcode, then select
Unity-iPhone app target and go to
Frameworks, Libraries, and Embedded Content as shown below:
Here click on the
(+) button > Add Other > Add Files and add all the framework files of the MoEngage SDK from Pods Folder.
Below is how the settings would look like after embedding all the required frameworks.
MOGeofence is only required if you have integrated
Once the frameworks are integrated, run the App to make sure everything is working fine.
IDFA(Advertising Identifier) and IDFV tracking opt-out statuses can be updated with the help of below methods:
using MoEngage; // Send true if you would like to optout of IDFA tracking MoEngageClient.OptOutOfIDFATracking(true/false); // Send true if you would like to optout of IDFV tracking MoEngageClient.OptOutOfIDFVTracking(true/false);
Updated 11 months ago