Skip to main content

Before You Begin

SDK Initialization RequiredLoad or render all ad formats only after SDK initialization completes. Rendering ad widgets before initialization will cause ads not to display properly.Applies to all formats: banner, native, interstitial, rewarded, app open, light popup.
The Daro Flutter SDK currently supports Non-reward apps only.
Check requirements before integration.

Requirements

  • Flutter SDK ^3.24.0
  • Dart ^3.5.0
  • Android minSdkVersion: 23
  • iOS 13.0 or higher
Verify app-ads.txt settings before proceeding.

App Setup

Add Package

Add daro_flutter to your pubspec.yaml:
dependencies:
  daro_flutter: ^1.0.0
Install the package:
flutter pub get

Android Project Setup

  • Android minSdkVersion: 23
Desugaring required: Configure desugaring if minSdk is below 26.
android {
    ...

    compileOptions {
        isCoreLibraryDesugaringEnabled = true
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    ...
}

...

dependencies {
    ...

    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")

    ...
}

1

Project-level Build Configuration

  1. Add maven repositories to the allprojects block in the build.gradle(root) file.
allprojects {
    repositories {
        google()
        mavenCentral()
        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") }
    }
}
2

Add the DARO plugin to build.gradle(root)

  1. Add the DARO plugin to the build.gradle(root) file.
Latest version
  • daro-plugin: 1.0.13
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("so.daro:daro-plugin:1.0.13")
    }
}
3

Add Daro SDK

  1. Add the Daro SDK to android/app/build.gradle.
Latest version
  • daro-a: 1.4.2
dependencies {
    ...
    implementation("so.daro:daro-a:1.4.2")
    ...
}
4

Add android-daro-key.txt file

  1. Add the android-daro-key.txt file.
android/app/
└── android-daro-key.txt
android-daro-key.txt can be downloaded from the DARO dashboard.
5

Configure daroAppKey

  1. Configure the daroAppKey.
The daroAppKey can be found in the DARO dashboard.daroAppKey
6

Apply the DARO plugin in build.gradle(app)

  1. Apply the DARO plugin in build.gradle(app).
plugins {
    ...
    id("so.daro.a")
    ...
}

iOS Project Setup

  • iOS 13.0 or higher
  • Xcode 14.0 or higher
1

Install Pods

  1. Run pod install in the ios/ directory of your Flutter project.
cd ios && pod install
2

Add ios-daro-key.txt file

  1. Open ios/Runner.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.
ios-daro-key.txt can be downloaded from the DARO dashboard.
3

Info.plist Configuration

  1. Add the following IDs to Info.plist.
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!
<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 the SDK using the code below:
import 'package:daro_flutter/daro_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Enable debug mode (for testing before release)
  DaroFlutter.isDebugMode = true;

  // Initialize SDK
  await DaroFlutter.initialize();

  runApp(const MyApp());
}

Best Practices

SDK Initialization Management

Recommended practices to manage SDK efficiently and prevent errors.
  1. Call initialize() in the main() function
    • Initialize at the app entry point in the main() function
  2. Render ads after initialization completes
    • Render ad widgets only after await DaroFlutter.initialize() completes
  3. Display banner and native ad widgets after initialization
    • Ensure ad widgets don’t render before initialization completes