SDK Initialization
Default Initialization
By default, the project gets initialized with Configuration from Info.plist
as shown below:
info |
Note For Plugin version 3.2.0 and below: Prior to SDK version 7.1.1, only MoEngage_APP_ID could be configured from your plist file. Now from version 7.1.1 and above, there are additional properties that can be configured along with the AppID as shown in the above image. |
Following are the additional properties of SDK that can be configured in Info.plist
[From Plugin Version 7.1.1
]:
Property | Description |
---|---|
APP_GROUP_ID | Provide the app Group ID configured for Push Notifications and to share data between App and Extensions |
DATA_CENTER | Specify the Data Center(Cluster) where your account is present. Possible values are DATA_CENTER_01 / DATA_CENTER_02 / DATA_CENTER_03/ DATA_CENTER_04. |
DISABLE_PERIODIC_FLUSH | SDK by default syncs the data tracked periodically with the backend, in case you would want to disable the same set this property to true. |
PERIODIC_FLUSH_DURATION | In case you want to define the interval for periodic sync, set the value in seconds here. Please note that the value should be greater than 60 secs. |
ENCRYPT_NETWORK_REQUESTS | Set this property to true, in case you would want to encrypt all the network requests sent from the SDK. |
OPT_OUT_DATA_TRACKING | Set this property to true if you would want to opt-out of Data tracking from the SDK. |
OPT_OUT_PUSH_NOTIFICATIONS | Set this property to true if you would like to stop push campaigns to be sent to the app, by default this is set to false. |
OPT_OUT_INAPP | Set this property to true if you would like to block the InApp campaigns in the app, by default this is set to false. |
OPT_OUT_IDFA_TRACKING | Set the property to true if you want to opt-out of Advertising ID(IDFA) tracking, by default this is set to false |
OPT_OUT_IDFV_TRACKING | Set the property to true if you want to opt-out of IDFV tracking, by default this is set to false. |
Code Initialisation
From plugin version 7.1.1 and above, we support code initialization as well. For this first, disable the default SDK initialization from Info.plist
by doing the following:
- Go to info.plist of your project.
- Inside MoEngage dictionary, Add DISABLE_PLIST_INITIALIZATION key and set it to true.
warning Warning
DISABLE_PLIST_INITIALIZATION key must be present in
Info.plist
to support Code Initialization as shown in the image below. - Post disabling default Initialization, call any one of the below-given initialization methods in
application:didFinishLaunchingWithOptions:
method. The method accepts theMOSDKConfig
instance as its parameter. Refer doc for more info on all the properties which can be configured usingMOSDKConfig
./// @param sdkConfig MOSDKConfig instance for SDK configuration /// @param launchOptions Launch Options dictionary - (void)initializeMoEngageSDKWithConfig:(MOSDKConfig*)sdkConfig andLaunchOptions:(NSDictionary*)launchOptions; /// @param sdkConfig MOSDKConfig instance for SDK configuration /// @param isSdkEnabled Bool indicating if SDK is Enabled/Disabled /// @param launchOptions Launch Options dictionary - (void)initializeMoEngageSDKWithConfig:(MOSDKConfig*)sdkConfig withSDKState:(BOOL)isSdkEnabled andLaunchOptions:(NSDictionary*)launchOptions;
- Sample code to initialise from
application:didFinishLaunchingWithOptions:
method:#import "AppDelegate.h" #import "MainViewController.h" // Make sure to import "AppDelegate+MoEngage.h" #import "AppDelegate+MoEngage.h" @implementation AppDelegate - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { self.viewController = [[MainViewController alloc] init]; MOSDKConfig *sdkConfig = [[MOSDKConfig new] initWithAppID: @"Your MoEngage Workspace ID"]; sdkConfig.moeDataCenter = DATA_CENTER_01 // Possible Values DATA_CENTER_01/DATA_CENTER_02/ DATA_CENTER_03/ DATA_CENTER_04 sdkConfig.appGroupID = "App Group ID" // --- // Update other Parameters of SDK Config // --- [self initializeMoEngageSDKWithConfig:sdkConfig andLaunchOptions:launchOptions]; return [super application:application didFinishLaunchingWithOptions:launchOptions]; } @end