An Ad Unit defines an ad placement and format in your app. For the DARO 2.0 SDK, copy the Ad Unit Key from the updated dashboard. This is different from the app’s Integration Key. API parameters such as
adUnitId, unitId, and key, and example placeholders such as YOUR_AD_UNIT_ID, keep their names but take that Ad Unit’s Ad Unit Key. Existing integrations using Ad Unit IDs remain supported. Do not confuse reporting or callback identifiers with the key for a new integration.Before You Begin
Prepare these items before installing DARO Unity SDK:- A per-platform Integration Key issued from the DARO dashboard
- Ad Unit Keys for each ad format
- Unity 2021.3 LTS or newer
- A build environment with Android Build Support or iOS Build Support installed
Configure the SDK with an Integration Key for each platform. You do not need to enter separate app keys or key files.
Install SDK
UseDaroPackageInstaller.unitypackage for the recommended installation path.
1
Download Installer Package
Download
DaroPackageInstaller.unitypackage from the GitHub Release.2
Import into Unity Project
In Unity Editor, select Assets > Import Package > Custom Package, then import
DaroPackageInstaller.unitypackage.3
Confirm Package Installation
The installer adds the OpenUPM scoped registry, EDM4U, and
so.daro.unity dependency to Packages/manifest.json.The latest so.daro.unity package version is 1.0.0 and uses EDM4U [email protected].Unity shows an Importing a scoped registry notice during installation. It is Unity’s own note that the OpenUPM registry was added — click Close.4
Run Integration Manager
In the Unity Editor menu bar, open Daro > Integration Manager and validate your project setup.
Daro is a top-level menu, not an entry under Assets.Configure Project
In Unity Editor, open Daro > Integration Manager and enter platform settings.A dropdown at the top of the window switches the display language between English and Korean. English is the default, and the choice is stored in Editor preferences rather than the project, so it carries across every project on the same machine.
1
Create Settings Asset
In Integration Manager, select Create Settings Asset. This creates
Assets/Daro/DaroSettings.asset.2
Enter iOS Settings
For iOS builds, enter the iOS key in
INTEGRATION KEY under Settings > iOS. Put the App Tracking Transparency prompt text in ATT Description.Select Validate Key to check the key format. Also verify an app build and SDK initialization after completing setup.3
Enter Android Settings
For Android builds, enter the Android key in
INTEGRATION KEY under Android, then press Validate Key to check its shape.4
Check Android Build Templates
When you switch the build target to Android, EDM4U asks
Enable Android Auto-resolution?. Choose Enable.With auto-resolution on, EDM4U resolves the ad demand dependencies and creates these three files itself, turning on the matching Player Settings options. You do not need to enable them by hand.Assets/Plugins/Android/mainTemplate.gradleAssets/Plugins/Android/gradleTemplate.propertiesAssets/Plugins/Android/settingsTemplate.gradle
5
Validate Settings
Press
Run Checks under Build Validation in Integration Manager.Check iOS build settings
Enable Podfile generation in EDM4U’s iOS Resolver. Complete CocoaPods installation in the generated project to apply the integration settings. If you maintain an existingpost_install block, check that it includes the DARO configuration and do not declare the block twice.
Initialize SDK
CallDaroSdk.InitializeAsync() when your app starts.
Mute and logging settings
With0.5.0-rc.4, you can configure mute before initialization on both Android and iOS. Call these APIs on the Unity main thread.
OnSdkInitialized and completing the initialization Task. After initialization, use SetAppMuted(false) to unmute.
On iOS, the default Info setting enables only error logs from the native SDK. Repeated DaroRewardedAd.IsReady() queries do not produce native debug logs. Use DaroSdk.LogLevel = DaroLogLevel.Verbose when detailed diagnostics are needed, then switch back to Info. Unity and bridge log levels are preserved; this setting does not suppress every log emitted directly by individual ad demand sources.
Use Ad Instances
Use fullscreen ad instances in this order:- Complete
await DaroSdk.InitializeAsync(). - Create the ad instance.
- Register event handlers.
- Call
Load(). - After load completes, check
IsReady()and callShow(). - Call
Dispose()when the screen closes.
Load() succeeds. Use Show() only to display a banner again after calling Hide().
Best Practices
Working With Ad Instances
- Create ad instances after initialization completes
- Call the constructor and
Load()only afterawait DaroSdk.InitializeAsync()returns
- Call the constructor and
- Call public methods on Unity’s main thread
- This covers constructors,
Load(),Show(),Hide(), andDispose(). SDK callbacks are delivered on Unity’s main thread as well
- This covers constructors,
- Dispose instances you no longer need
- The SDK provides finalizer-based cleanup as a fallback, but cleanup timing is not guaranteed
- Check
IsReady()beforeShow()- Banner ads are the exception: they display automatically once
Load()succeeds. UseShow()only to display a banner again afterHide()
- Banner ads are the exception: they display automatically once

