The SOOMLA SDK
How it works?
Once the SOOMLA SDK is initialized, it automatically detects which ad networks' SDKs are integrated in the app. For each one of these Ad Networks' SDKs, the SOOMLA SDK knows exactly how to listen to all events and attributes it needs to collect in order to allow the SOOMLA Platform to work.
SOOMLA keeps improving it's SDKs and methods trying to make it as easy as possible on your R&D teams to integrate and operate its SDK. Each time an ad networks changes its SDK logic, SOOMLA also adapts to those changes so data collection will continue normally.
SDK Integration Steps:
(article: Creating a new App in Dashboard)
1. Add the SOOMLA SDK to your App:
Just download the SDK and follow the instructions below
Updated
- In Flash Builder, right click on your project and go to Properties ➣ Flex Build Path ➣ Native Extensions. Click “Add ANE...” and select the downloaded SoomlaTraceback-vx.x.x.ane.
- Right click on your project and go to Properties ➣ Flex Build Packaging ➣ Android/iOS ➣ Native Extensions and make sure that the SoomlaTraceback Air Plugin ANE file is marked as “Package”.
2. Initializing the SDK:
Make sure to initialize SoomlaTraceback as soon as possible in your app:
private function init(event:FlexEvent):void {
// Get the appKey from the App's Settings page.
var appKey:String = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
// NOTE: you need to pass 'false' as the last parameter so your app won't run in test mode (more details about test mode below).
// Initialize
SoomlaTraceback.instance.initialize(appKey, false);
...
}
That's it!
Android permissions
If you build for Android, Make sure you have the following permissions in yourAndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
Proguard
If you build for Android and you use Proguard to obfuscate your code (and you should), Add the following lines to your proguard config:
-keep public class com.soomla.traceback.* { public *; } -keep public class com.soomla.traceback.integrations.** { public *; } -keep public class com.soomla.traceback.unity.* { public *; } -dontwarn com.soomla.traceback.** # For AdColony integration -keep class com.jirbo.adcolony.* { static *; } #For AerServ integration -keepclassmembers class com.aerserv.sdk.utils.UrlBuilder { static *; } #For AppLovin integration -keepclassmembers class com.applovin.sdk.AppLovinSdk { static *; } #For Fuse (AppLovin) integration -keepclassmembers class com.upsight.mediation.al.sdk.AppLovinSdk { static *; } #For Facebook integration -keepclassmembers class com.facebook.ads.internal.AdSdkVersion { static *; } -keepclassmembers class com.facebook.ads.internal.settings.AdSdkVersion { static *; } #For HyprMX integration -keepclassmembers class com.hyprmx.android.sdk.utility.HyprMXProperties { static *; } -keepclassmembers class com.hyprmx.android.BuildConfig { static *; } #For Inneractive V7 -dontwarn com.inneractive.api.ads.sdk.TracebackInneractiveAds #For Lifestreet integration -keepclassmembers class com.lifestreet.android.lsmsdk.SlotController { static *; } #For Millennialmedia integration -keepclassmembers class com.millennialmedia.MMSDK { static *; } #For OpenX integration -keepclassmembers class com.openx.view.plugplay.sdk.OXSettings { public static *; } #For Smaato integration -keepclassmembers class com.smaato.soma.bannerutilities.constant.Values { static *; } #For Vungle integration -keepclassmembers class com.vungle.publisher.VunglePub { static *; }
# In case you use Kochava for Attribution
-keep class com.kochava.android.tracker.Tracker
-keep class com.kochava.android.tracker.InputParams
-keep class androidx.localbroadcastmanager.content.LocalBroadcastManager { *;}
-keep class androidx.recyclerview.widget.RecyclerView { *;}
-keep class androidx.recyclerview.widget.RecyclerView$OnScrollListener { *;}
-keep class android.support.v7.widget.RecyclerView { *;}
-keep class android.support.v7.widget.RecyclerView$OnScrollListener { *;}
-keep class android.support.v4.content.LocalBroadcastManager { *;}
-keep class com.android.internal.util.Predicate { *;}
For AndroidX with Jetifier enabled please exclude soomla by adding the following line to your configuration (please use gradle plugin version 3.5.0):
android.jetifier.blacklist=SoomlaTraceback*