Include MoEngage Configuration
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 Workspace ID"
#define kMoEngageRegion @"DEFAULT" // DEFAULT / EU / SERV3
#define kMoEngageLogsEnabled NO
#define kDefaultIDFATrackingOptedOut YES
#define kDefaultIDFVTrackingOptedOut NO
#define kMoEngageUnityControllerSwizzlingEnabled YES
-
kMoEngageAppID
: Provide your MoEngage workspace's Workspace ID here. In MoEngage Dashboard, go toSettings > General Settings
to obtain the same. -
kMoEngageLogsEnabled
: Set this value toYES
for printing SDK logs, which will be required only to troubleshoot issues.
info |
Note The OptedOut Tracking status can be updated later after getting consent from the user. |
-
kDefaultIDFATrackingOptedOut
andkDefaultIDFVTrackingOptedOut
: Set the default tracking status of IDFA(Advertising identifier) and IDFV(Vendors Identifier) tracking here. Set the valueYES
if you wish to opt out of tracking the attribute. -
kMoEngageUnityControllerSwizzlingEnabled
: Set this value toYES
to enable UnityAppController Swizzling to initialize the SDK. For more info, refer to the below section.
Unity App Controller Swizzling
There are two approaches using which the SDK can be initialized:
-
Unity App Controller Subclass:
SDK contains theMoEUnityAppController
class which is the subclass of UnityAppController. Here we get a callback on AppLaunch to initialize MoEngage SDK. -
UnityAppController swizzling:
DefinekMoEngageUnityControllerSwizzlingEnabled
in the configuration file and set it toYES
to enable UnityAppController swizzling. Hereapplication:didfinishLaunchinWithOptions:
method is swizzled to initialize MoEngage SDK.
warning |
Warning 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. |
Geofence
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:
Build and Replace
info |
Note 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 Build
. Select 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.
Embed MoEngage Frameworks
info |
Note
|
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 MoEngageGeofence
package:
Once the frameworks are integrated, run the App to make sure everything is working fine.
IDFA/ IDFV Tracking OptOuts
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);