Integrate the Appodeal SDK (Full)
Appodeal SDK is the full integration ("Full SDK" in older guides and e-mails): all default ad networks — on Unity the Default preset — plus the AppsFlyer and Meta Analytics adapters, your ad formats, a consent manager and a privacy policy. It is the build used when Appodeal monetizes the game with its own mediation. The step shows six milestones — Mediation, SDK, Ad Types, Ad Networks, GDPR/CMP, Add. req. — and the sections of this page follow its numbered blocks.
Before you start
You need:
- Step 1. Select Your App done.
- Your app key — Application Key.
- Do you have an AdMob account? The answer decides two steps on this page — AdMob: include it or remove it.
- Nothing Meta- or AppsFlyer-side is needed yet — those values are entered in UA Setup.
1. Mediation
In 1. Mediation click Appodeal SDK; the progress bar switches to the six milestones.
2. Import SDK
Follow your platform's Get Started guide end to end; only the Accelerator-specific notes are here.
- Android
- iOS
- Unity
- Flutter
- React Native
- Generate the dependency block on
Configure Mediated Networks with every ad network selected
and, under Services, AppsFlyer and Meta Analytics. Paste it into
app/build.gradle.kts. - Keep
com.appodeal.ads.sdk.adapters:appsflyerandcom.appodeal.ads.sdk.adapters:facebook_analytics— our BI reads the campaign through them. - Initialize with the ad types you implement (Step 4. Initialize SDK).
- Apply the AdMob rule.
- Generate the
Podfileon Configure Mediated Networks: Full Package, standard configuration, nothing excluded, with AppsFlyer and Meta Analytics selected under Services. Keepplatform :ios, '15.0'anduse_frameworks!. - In
Info.plist, take the generated blocks whole: the full SKAdNetwork list, not a subset (Add SKAdNetworkIds); the AdAttributionKit block, iOS 17.4 and newer (Add AdAttributionKit IDs); App Transport Security withNSAllowsArbitraryLoads(App Transport Security). The Meta keys are required even if you serve no Meta ads — Put the App ID and Client Token in your build. - Initialize with the ad types you implement, for example
types: [.interstitial, .rewardedVideo, .banner](Step 4. Initialize SDK). - Apply the AdMob rule.
-
Import the plugin as on Step 1. Import SDK; the wizard prints the git URL and pins the plugin version.
-
Project Settings → Appodeal DM → click Default → scroll to Services, select AppsFlyer and Meta Analytics, click Generate.
-
Edit → Project Settings → Player → Other Settings → Configuration → set Allow downloads over HTTP to Always allowed for Android and iOS. Unity shows a security warning; that is expected.
-
In the iOS Resolver settings keep Link frameworks statically off.
-
Initialize the SDK (Step 4. Initialize SDK).
-
Apply the AdMob rule. If dependencies do not resolve: If Unity dependencies do not resolve.
The plugin wraps the native SDKs: install the current release from the
Flutter plugin repository, then apply the Android and
iOS tabs to android/ and ios/ and the AdMob rule.
The plugin wraps the native SDKs. Install the current release from the
React Native plugin repository; apply the Android and iOS
tabs to android/ and ios/, then the AdMob rule. A React Native / Expo version pairing is
confirmed per project — Get help.
Select SDK implemented.
AdMob: include it or remove it
AdMob is not mandatory for the Accelerator Test. The wizard labels its boxes AdMob App ID added (optional) and AdMob has been successfully synced (optional), and neither gates Complete Monetization Setup. Do not create an AdMob account for the test. Choose the branch that matches you and do all of it.
You have an AdMob account:
- Connect it — AdMob.
- Sync it with Download AdMob Sync Extension in block 4.2 — the Chrome extension, AdMob Sync.
- Put your AdMob App IDs in the project: Android —
Configure Admob Meta-data; iOS —
GADApplicationIdentifier(Other Feature Usage Descriptions); Unity — Appodeal → Appodeal Settings (AdMob Configuration). - Add
app-ads.txt(App-ads.txt). Which lines you publish — the full Appodeal export or your own AdMob line — is confirmed per app (Get help). - Select AdMob App ID added (optional) in block 2 and AdMob has been successfully synced (optional) in block 4.2. The second one switches block 5 to the Google CMP flow.
You do not have an AdMob account:
- Remove Google AdMob and Google Ad Manager from the dependencies — Unity: clear both in Appodeal DM
and click Generate again; Android and iOS: regenerate the dependency block or the
Podfilewith both cleared. - Remove the AdMob App IDs. The wizard says: "If you are not using Admob in your app - remove AdMob references from configuration files (AndroidManifest.xml, Info.plist)." On Unity, empty the AdMob App ID fields in Appodeal → Appodeal Settings.
- Leave the two AdMob boxes clear. (An AdMob adapter in the build with no App ID crashes at start:
GADInvalidInitializationException.)
3. Ad Types Implementation
The wizard says: "Implement: Banner, Interstitial, Rewarded (as many ad types as your app affords)." Interstitials are not mandatory for the Accelerator Test — banner plus rewarded is fine. Which formats must serve impressions, and whether a format can be gated behind onboarding, is confirmed per app (Get help).
Choose a format in the Ad Type dropdown to read the embedded snippet; the platform guides are Android, iOS and Unity. Select Ad Formats implemented.
Best practices for creating ad placements
The wizard's "best practices guide" link lands here. The guide is Best Practices For Creating Ad Placements.
4. Adding Ad Networks
4.1. Ad Networks Setup — "Appodeal automatically connects all available ad networks for your application." Own network accounts: Networks setup.
4.2. Admob and Meta setup — if you have AdMob or Meta Audience Network accounts, connect them (AdMob branch, Meta Audience Network). Leave Autoconnection (recommended for optimal monetization setup) selected; it is required to complete the step. Select Confirm Meta Audience Network has been connected (optional) only if you did, and select All desired ad networks have been connected, which is required.
5. GDPR / CMP Setup
With AdMob has been successfully synced (optional) selected, the block asks you to implement Google CMP — a Google-certified CMP (Google CMP and TCF v2). Without AdMob, use our consent manager (Android, iOS, Unity) and remove the AdMob references as in the AdMob branch. Select CMP integrated.
6. Additional Requirements
6.1. Add A Privacy Policy To Your Mobile App — a privacy policy that discloses IP address and advertising-ID collection and links ours, in the store listing and in the app (Android, iOS). Select Privacy policy updated, which is required.
6.2. Add App-ads.txt File — Optional: it is part of the AdMob branch, and if you skip it, Complete Monetization Setup still completes. Select Confirm app-ads.txt added (optional) if you did it.
Complete Monetization Setup
The button is active when SDK implemented, Ad Formats implemented, All desired ad networks have been connected, CMP integrated and Privacy policy updated are selected and Autoconnection is on. The four boxes labelled (optional) are not required. Click it. The build is verified in step 3 — 3. Prepare the app for testing, where our engineer also checks that the consent manager and the ad types are shown.
If something is off
| You see | Why | Do this |
|---|---|---|
| Complete Monetization Setup is grey | One of the five required boxes is clear, or Autoconnection is off | Check the list under Complete Monetization Setup |
The app crashes at start with GADInvalidInitializationException | An AdMob adapter is in the build with no App ID | Finish one AdMob branch: App IDs in, or both Google networks out |
| Block 5 asks for a Google CMP but you do not use AdMob | AdMob has been successfully synced (optional) is selected | Clear it; block 5 switches to the no-AdMob text |
Next you enter your Meta values, click Request UA and MMP Setup (or transfer your AppsFlyer app to us), and send the build for review.
Next: 3. UA Setup
Get help
Write to [email protected] and [email protected] or [email protected]. Include your bundle ID, the platform (Android, iOS, Unity, Flutter or React Native) and what is blocking you: the wizard block and a screenshot, or the exact error or log text.