Android Overseas Third-party Ad Networks
Overview
UJU SDK supports integration of multiple overseas mainstream ad networks, helping developers maximize ad revenue worldwide. This document will introduce how to integrate overseas third-party ad networks.
Supported Overseas Ad Networks
| Ad Network | Platform | Supported Ad Types | Integration Difficulty |
|---|---|---|---|
| AdMob | Android/iOS | Banner, Rewarded Video, Native, Interstitial, Splash | Medium |
| Facebook Audience Network | Android/iOS | Banner, Rewarded Video, Native, Interstitial | Medium |
| Unity Ads | Android/iOS | Banner, Rewarded Video, Interstitial | Easy |
| IronSource | Android/iOS | Banner, Rewarded Video, Native, Interstitial | Medium |
| AppLovin | Android/iOS | Banner, Rewarded Video, Native, Interstitial | Medium |
Integration Steps
1. Apply for Accounts
Before integrating overseas ad networks, you need to apply for developer accounts on each platform:
- AdMob: https://admob.google.com/
- Facebook Audience Network: https://developers.facebook.com/docs/audience-network/
- Unity Ads: https://unity.com/products/unity-ads
- IronSource: https://www.is.com/
- AppLovin: https://www.applovin.com/
2. Add Dependencies
Add overseas ad network dependencies to your app-level build.gradle file:
dependencies {
// UJU SDK
implementation 'com.ujuad:sdk:1.0.0'
// AdMob SDK
implementation 'com.google.android.gms:play-services-ads:20.5.0'
// Facebook Audience Network SDK
implementation 'com.facebook.android:audience-network-sdk:6.11.0'
// Unity Ads SDK
implementation 'com.unity3d.ads:unity-ads:4.4.1'
// IronSource SDK
implementation 'com.ironsource.sdk:mediationsdk:7.2.7.0'
// AppLovin SDK
implementation 'com.applovin:applovin-sdk:11.4.2'
}3. Configure AndroidManifest.xml
Add necessary configurations to AndroidManifest.xml file:
<!-- AdMob configuration -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="YOUR_ADMOB_APP_ID" />
<!-- Facebook Audience Network configuration -->
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="YOUR_FACEBOOK_APP_ID" />
<!-- Unity Ads configuration -->
<meta-data
android:name="unity.splash-mode"
android:value="0" />
<meta-data
android:name="unity.fullscreen.backgroundcolor"
android:value="#000000" />4. Initialize Overseas Ad Networks
Initialize overseas ad networks in the onCreate method of your Application class:
private void initOverseasAdNetworks() {
// Initialize AdMob
initAdMob();
// Initialize Facebook Audience Network
initFacebook();
// Initialize Unity Ads
initUnityAds();
// Initialize IronSource
initIronSource();
// Initialize AppLovin
initAppLovin();
}
private void initAdMob() {
// AdMob initialization code
MobileAds.initialize(this, initializationStatus -> {
Log.d("AdMob", "AdMob initialization successful");
});
}
private void initFacebook() {
// Facebook Audience Network initialization code
AudienceNetworkAds.initialize(this);
Log.d("Facebook", "Facebook Audience Network initialization successful");
}
private void initUnityAds() {
// Unity Ads initialization code
UnityAds.initialize(this, "YOUR_UNITY_GAME_ID", false, new IUnityAdsInitializationListener() {
@Override
public void onInitializationComplete() {
Log.d("UnityAds", "Unity Ads initialization successful");
}
@Override
public void onInitializationFailed(UnityAds.UnityAdsInitializationError error, String message) {
Log.e("UnityAds", "Unity Ads initialization failed: " + message);
}
});
}
private void initIronSource() {
// IronSource initialization code
IronSource.init(this, "YOUR_IRONSOURCE_APP_KEY");
Log.d("IronSource", "IronSource initialization successful");
}
private void initAppLovin() {
// AppLovin initialization code
AppLovinSdk.getInstance(this).setMediationProvider("max");
AppLovinSdk.getInstance(this).initializeSdk(config -> {
Log.d("AppLovin", "AppLovin initialization successful");
});
}Ad Unit Configuration
1. Create Ad Units
Create ad units on each ad network platform and obtain ad unit IDs:
- AdMob: Log in to AdMob platform → App Management → Create Ad Unit
- Facebook Audience Network: Log in to Facebook Developer platform → App Management → Create Ad Placement
- Unity Ads: Log in to Unity Developer platform → Project Management → Create Ad Placement
- IronSource: Log in to IronSource platform → App Management → Create Ad Placement
- AppLovin: Log in to AppLovin platform → App Management → Create Ad Placement
2. Configure in UJU Backend
Log in to UJU developer backend, configure overseas ad network ad unit IDs in app settings:
- Enter App Management → Select App
- Click "Third-party Ad Networks" option
- Fill in App ID and ad unit ID for each ad network
- Save configuration
Ad Loading and Display
1. Configure Ad Source Priority
Configure ad source priority in UJU backend to determine the order of ad requests:
- Waterfall mode: Request ads in priority order until an ad is obtained
- Real-time bidding: Select the optimal ad based on estimated revenue in real-time
2. Load Ads
Use UJU SDK's standard API to load ads, the SDK will automatically handle overseas ad network requests:
// Load rewarded video ad
RewardedVideoAdConfig config = new RewardedVideoAdConfig.Builder()
.setAdUnitId("YOUR_REWARDED_VIDEO_AD_UNIT_ID")
.setUserId("USER_ID")
.build();
RewardedVideoAd rewardedVideoAd = new RewardedVideoAd(this, config);
rewardedVideoAd.setAdListener(new RewardedVideoAdListener() {
// Callback methods
});
rewardedVideoAd.loadAd();Debugging and Testing
1. Test Mode
Enable test mode for each ad network during development:
// Enable AdMob test mode
MobileAds.setRequestConfiguration(
new RequestConfiguration.Builder()
.setTestDeviceIds(Arrays.asList("YOUR_TEST_DEVICE_ID"))
.build()
);
// Enable Facebook Audience Network test mode
AudienceNetworkAds.isTestMode(true);
// Enable Unity Ads test mode
UnityAds.setTestMode(true);2. Test Ad Units
Use test ad unit IDs provided by each ad network for testing:
- AdMob: Use test ad unit IDs provided by the platform
- Facebook Audience Network: Use test ad placement IDs provided by the platform
- Unity Ads: Use test ad placement IDs provided by the platform
Common Questions
Q: What to do if overseas ad network initialization fails?
A: Possible reasons:
- Incorrect App ID
- Network connection issues (VPN may be required)
- Incompatible SDK versions
- Permission configuration issues
- Regional restrictions
Q: Why aren't overseas ads displaying?
A: Possible reasons:
- Incorrect ad unit ID
- Insufficient ad inventory
- Regional restrictions
- Test device not added
- Ad network configuration errors
Q: How to improve overseas ad fill rate?
A: Recommendations:
- Integrate multiple ad networks
- Reasonably configure ad source priority
- Optimize ad loading strategy
- Ensure app complies with platform policies
- Increase app user activity
Best Practices
- Multi-network integration: Integrate multiple ad networks to improve fill rate
- Regional optimization: Configure different ad network priorities based on user regions
- Compliance: Ensure app complies with each ad network's policy requirements
- Test optimization: Fully test the performance of each ad network
- Data analysis: Analyze revenue data of each ad network and continuously optimize
- Timely updates: Update SDK versions of each ad network in a timely manner
