The CleverTap Unity Plugin for Mobile Customer Engagement and Analytics solutions.
For more information check out our website and documentation.
To get started, sign up here.
-
Import the CleverTapUnityPlugin.unitypackage into your Unity Project (
Assets
>Import Package
>Custom Package
) or manually CopyPlugin/CleverTapUnity
,Plugin/PlayServicesResolver
andPlugin/Plugins/Android
(or copy the files inPlugin/Plugins/Android
to your existingAssets/Plugins/Android
directory) into the Assets directory of your Unity Project. -
Create an empty game object (GameObject -> Create Empty) and rename it
CleverTapUnity
. AddAssets/CleverTapUnity/CleverTapUnity-Scripts/CleverTapUnity.cs
as a component of theCleverTapUnity GameObject
.
NOTE: To receive the SDK callbacks the name of the game object must be CleverTapUnity |
---|
-
Select the
CleverTapUnity GameObject
you created in the Hierarchy pane and add your CleverTap settings inside the Inspector window. You must include yourCleverTap Account ID
andCleverTap Account Token
from your CleverTap Dashboard -> Settings. -
Edit
Assets/CleverTapUnity/CleverTapUnity-Scripts/CleverTapUnity.cs
to add your calls to CleverTap SDK. See usage examples in example/CleverTapUnity.cs. For more information check out our documentation.
-
If you want to enable Push Notifications, be sure to add the Push Notifications capability to your Xcode project.
-
Configure the Framework
- In Xcode, go to your Targets, under your appβs name
- Under General, Navigate to Frameworks, Libraries and Embedded Content, please ensure that CleverTapSDK and SDWebImage frameworks are marked as Embed & Sign and Embedded to your project.
- Add a run script to your build phases, In Xcode, go to your Targets, under your appβs name, select Build Phases after embed frameworks, add a run script phase and set it to use
/bin/sh
and the script found here.
The script will look through your built applicationβs Frameworks
folder and strip out the unnecessary simulator architectures from the CleverTakSDK.framework prior to archiving/submitting the app store.
- Build and run your iOS project.
- If you want to enable Push Notifications, be sure to add the Firebase Unity SDK to your app as described in the Firebase Unity Setup Docs
NOTE: On adding the Firebase Unity SDK it might cause your AndroidManifest.xml to be overriden. If that occurs, make sure to revert it your original manifest file.
-
Add latest
Play Services Resolver
package from here. Ignore if it's already there in the project. -
Run
Assets
>Play Services Resolver
>Android Resolver
>Resolve Client Jars
from the Unity menu bar to install the required google play services and android support library dependencies. -
Edit the
AndroidManifest.xml
file inAssets/Plugins/Android
to add your Bundle Identifier, FCM Sender ID, CleverTap Account Id, CleverTap Token and Deep Link url scheme (if applicable):<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="YOUR_BUNDLE_IDENTIFIER" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal"> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
<meta-data android:name="FCM_SENDER_ID" android:value="id:YOUR_FCM_SENDER_ID"/> <meta-data android:name="CLEVERTAP_ACCOUNT_ID" android:value="Your CleverTap Account ID"/> <meta-data android:name="CLEVERTAP_TOKEN" android:value="Your CleverTap Account Token"/>
<!-- Deep Links uncomment and replace YOUR_URL_SCHEME, if applicable, or remove if not supporting deep links--> <!-- <intent-filter android:label="@string/app_name"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="YOUR_URL_SCHEME" /> </intent-filter> -->
-
Add the following in the
AndroidManifest.xml
file, if not there already -<service android:name="com.clevertap.android.sdk.pushnotification.fcm.FcmMessageListenerService" android:exported="true"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>
-
Add your
google-services.json
file to the Assets folder of the project. -
To enable A/B UI editor, edit
Assets/CleverTapUnity/CleverTapUnity-Scripts/CleverTapBinding.cs
andCleverTapAPI.CallStatic("setUIEditorConnectionEnabled", true)
call just before getting the clevertap instance.
Code snippet for the same:
public static AndroidJavaObject CleverTap {
get {
if (clevertap == null) {
AndroidJavaObject context = unityCurrentActivity.Call<AndroidJavaObject>("getApplicationContext");
//set the UI editor flag before getting the Clevertap instance, defaults to false.
CleverTapAPI.CallStatic("setUIEditorConnectionEnabled", true);
clevertap = CleverTapAPI.CallStatic<AndroidJavaObject>("getInstance", context);
}
return clevertap;
}
}
- Build your app or Android project as usual.
A demo application showing the integration of our Plugin.
Check out the CleverTap Unity plugin SDK Change Log here.
If you have questions or concerns, you can reach out to the CleverTap support team from the CleverTap Dashboard.
TroubleShooting Guide: Please refer here if you are facing common integration issue.