Before You Begin
SDK Initialization Required Load or render all ad formats only after SDK initialization completes. Rendering before initialization causes: AdBannerView | NativeAdView is mounted before the initialization of the DaroM React Native moduleApplies to all formats: banner, native, interstitial, rewarded.
Check requirements before integration.
Requirements
Android minSdkVersion: 26
iOS 15.1 or higher
App Setup
Follow setup steps for your ad type (Non-Reward or Reward) confirmed in Before Integration . If using daro-m, select Reward tab.
Add npm Package
Install appropriate package:
Android Project Setup
Project-level Build Configuration
Add maven repositories to the settings.gradle file.
dependencyResolutionManagement {
repositoriesMode. set (RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
.. .
maven { url = uri ( "https://artifact.bytedance.com/repository/pangle" ) }
maven { url = uri ( "https://verve.jfrog.io/artifactory/verve-gradle-release" ) }
maven { url = uri ( "https://cboost.jfrog.io/artifactory/chartboost-ads/" ) }
maven { url = uri ( "https://repo.premiumads.net/artifactory/mobile-ads-sdk/" ) }
maven { url = uri ( "https://repo.pubmatic.com/artifactory/public-repos" ) }
maven { url = uri ( "https://s3.amazonaws.com/smaato-sdk-releases/" ) }
maven { url = uri ( "https://android-sdk.is.com/" ) }
maven { url = uri ( "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" ) }
}
}
Add the DARO plugin to build.gradle(root)
Add the DARO plugin to the build.gradle(root) file.
buildscript {
repositories {
google ()
mavenCentral ()
}
dependencies {
classpath ( "so.daro:daro-plugin:{version}" )
}
}
Add Daro SDK
Add the Daro SDK.
dependencies {
.. .
implementation ( "so.daro:daro-a:{version}" )
.. .
}
Add android-daro-key.txt file
Add the android-daro-key.txt file.
app/
└── android-daro-key.txt
android-daro-key.txt can be downloaded from the DARO dashboard.
Configure daroAppKey
Configure the daroAppKey.
Show Configure in gradle.properties
android.useAndroidX =true
android.enableJetifier =true
daroAppKey ={APP_KEY}
Show Configure directly in app module gradle
Configure the following in the app module build.gradle. buildscript {
extra[ "daroAppKey" ] = "APP_KEY"
}
The daroAppKey can be found in the DARO dashboard.
Apply the DARO plugin in build.gradle(app)
Apply the DARO plugin in build.gradle(app).
plugins {
.. .
id ( "so.daro.a" )
.. .
}
Add proguard rules
Add proguard rules.
-keep class com.bytedance.sdk.** { *; }
-keepattributes Signature
-keep class net.pubnative.** { *; }
-keep class com.iab.omid.library.pubnativenet.** { *; }
-keep class com.amazon.** { *; }
-keep public class com.google.android.gms.ads.** {
public *;
}
-keep class com.iabtcf.** {*;}
-keep public class com.smaato.sdk.** { *; }
-keep public interface com.smaato.sdk.** { *; }
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class com.ironsource.adapters.** { *; }
-dontwarn com.ironsource.**
-dontwarn com.ironsource.adapters.**
-keepclassmembers class com.ironsource.** { public *; }
-keep public class com.ironsource.**
-keep class com.ironsource.adapters.** { *;
}
-keepclassmembers class com.applovin.sdk.AppLovinSdk {
static *;
}
-keep public interface com.applovin.sdk** {*; }
-keep public interface com.applovin.adview** {*; }
-keep public interface com.applovin.mediation** {*; }
-keep public interface com.applovin.communicator** {*; }
-keep class androidx.localbroadcastmanager.content.LocalBroadcastManager { *;}
-keep class androidx.recyclerview.widget.RecyclerView { *;}
-keep class androidx.recyclerview.widget.RecyclerView$OnScrollListener { *;}
-keep class * extends android.app.Activity
-flattenpackagehierarchy droom.daro.a
-keep public class droom.daro.** {
public protected *;
}
-keep interface droom.daro.** {
public protected *;
}
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
iOS Project Setup
iOS 15.1 or higher
Xcode 14.0 or higher
Open ios/PROJECT_NAME.xcworkspace and add the ios-daro-key.txt file by drag and drop.
⚠️ The ios-daro-key.txt file must be included in the project to initialize the SDK.
GADApplicationIdentifier, DaroAppKey can be found in the DARO dashboard (AdMob Key, App Key).
❗ Please copy the SKAdNetworkItems from Info.plist to your app’s Info.plist.
If not registered, ad networks cannot receive conversion performance reports, which will reduce advertising efficiency.
This has a significant impact on ad performance, so please add it!
Add the following IDs to Info.plist.
< key > GADApplicationIdentifier </ key >
< string > /* Add the Admob Key issued from the DARO dashboard */ </ string >
< key > DaroAppKey </ key >
< string > /* Add the Daro App Key issued from the DARO dashboard */ </ string >
< key > SKAdNetworkItems </ key >
< array >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > cstr6suwn9.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 4fzdc2evr5.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 4pfyvq9l8r.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 2fnua5tdw4.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > ydx93a7ass.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 5a6flpkh64.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > p78axxw29g.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > v72qych5uu.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > ludvb6z3bs.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > cp8zw746q7.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 3sh42y64q3.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > c6k4g5qg8m.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > s39g8k73mm.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 3qy4746246.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > f38h382jlk.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > hs6bdukanm.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > v4nxqhlyqp.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > wzmmz9fp6w.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > yclnxrl5pm.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > t38b2kh725.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 7ug5zh24hu.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > gta9lk7p23.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > vutu7akeur.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > y5ghdn5j9k.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > n6fk4nfna4.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > v9wttpbfk9.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > n38lu8286q.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 47vhws6wlr.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > kbd757ywx3.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 9t245vhmpl.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > eh6m2bh4zr.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > a2p9lx4jpn.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 22mmun2rn5.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 4468km3ulz.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 2u9pt9hc89.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 8s468mfl3y.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > klf5c3l5u5.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > ppxm28t8ap.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > ecpz2srf59.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > uw77j35x4d.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > pwa73g5rt2.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > mlmmfzh3r3.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 578prtvx9j.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 4dzt52r2t5.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > e5fvkxwrpn.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 8c4e2ghe7u.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > zq492l623r.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 3rd42ekr43.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 3qcr597p9d.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > mj797d8u6f.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 55644vm79v.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 6yxyv74ff7.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 55y65gfgn7.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > cwn433xbcr.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > nu4557a4je.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > w7jznl3r6g.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 577p5t736z.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 6rd35atwn8.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 7bxrt786m8.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > 7fbxrn65az.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > dt3cjx1a9i.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > fz2k2k5tej.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > jk2fsx2rgz.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > r8lj5b58b5.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > tmhh9296z4.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > k6y4y55b64.skadnetwork </ string >
</ dict >
< dict >
< key > SKAdNetworkIdentifier </ key >
< string > qwpu75vrh2.skadnetwork </ string >
</ dict >
</ array >
Initialize SDK
Initialize SDK using code below:
import { useState , useEffect } from "react" ;
import { initialize } from "react-native-daro" ;
function App () {
const [ isInitialized , setIsInitialized ] = useState ( false );
useEffect (() => {
initialize ()
. then (() => setIsInitialized ( true ))
. catch ( console . error );
}, []);
// Render ad components after initialization is complete
return < View > { isInitialized && < BannerAdView adUnitId = { adUnitId } /> } </ View > ;
}
Best Practices
SDK Initialization Management
Recommended practices to manage SDK efficiently and prevent errors.
Call initialize() at app startup
Initialize at app entry point (App.js or index.js)
Manage initialization state
Track initialization completion to control ad rendering timing
Protect banner and native ad components with conditional rendering
Ensure components don’t render before initialization completes