Skip to content

Android Domestic Third-party Ad Networks

Overview

UJU SDK supports hot-plugging mode integration of third-party ad networks. We provide adapters for each ad network, and developers can choose to integrate them as needed. This document will detail how to integrate domestic third-party ad networks.

Supported Domestic Ad Networks

Ad NetworkVersionAdapterOfficial Documentation
Pangle7.4.1.4uju-csj-adapter-7.4.1.4.aarPangle Official Documentation
Tencent Youlianghui4.671.1541uju-ylh-adapter-4.671.1541.aarYoulianghui Official Documentation
Baidu Alliance9.43.2uju-bd-adapter-9.43.2.aarBaidu Alliance Official Documentation
Kuaishou Alliance4.11.30.1uju-ks-adapter-4.11.30.1.aarKuaishou Alliance Official Documentation

Integration Steps

1. Dependency Management

UJU SDK supports two dependency management methods:

Add repositories and dependencies to your project's build.gradle file:

gradle
dependencies {
    // UJU core SDK
    implementation("com.ujusdk:uju-ad-sdk:3.1.10")

    // csj adapter
    implementation("com.ujusdk:uju-csj-adapter:7.4.1.4")
    // Third-party ad platform SDK
    implementation("com.pangle_beta.cn:mediation-sdk:7.4.1.4")

    // ks adapter
    implementation("com.ujusdk:uju-ks-adapter:4.11.30.1")
    // Third-party ad platform SDK
    // Kuaishou SDK currently only supports local aar import, please put the file into libs directory
    implementation(files("libs/kssdk_4.11.30.1.aar"))

    // bd adapter
    implementation("com.ujusdk:uju-bd-adapter:9.43.2")
    // Third-party ad platform SDK
    implementation("com.baidu:mobads:9.43.2")

    // ylh adapter
    implementation("com.ujusdk:uju-ylh-adapter:4.671.1541")
    // Third-party ad platform SDK
    implementation("com.qq.e.union:union:4.671.1541")
}

Method 2: Manual Dependency

  1. Download the complete SDK package from UJU developer backend
  2. Copy the downloaded AdNetworks folder to app/libs directory
  3. Add dependencies in build.gradle file:
gradle
dependencies {
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/AdNetworks')
}

Pangle Integration

1. Permission Configuration

Add necessary permissions to AndroidManifest.xml file:

xml
<!-- Required permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- Optional permissions -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

2. Configuration Information

Add configuration to AndroidManifest.xml file:

xml
<meta-data
    android:name="com.bytedance.sdk.applog.AppID"
    android:value="YOUR_PANGOLIN_APP_ID" />

3. Notes

  • Pangle SDK after version 3.9.0.0 only supports arm64-v8a and armeabi-v7a architectures by default, no longer supports armeabi
  • Please ensure that Pangle's App ID and ad unit ID are correctly configured in UJU backend
  • If using maven import, you need to add Pangle library in root directory build.gradle.kt: maven { url = uri("https://artifact.bytedance.com/repository/pangle") }

Tencent Youlianghui Integration

1. Permission Configuration

Add necessary permissions to AndroidManifest.xml file:

xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

2. Provider Configuration

Add FileProvider configuration to AndroidManifest.xml file:

xml
<provider
    android:name="com.qq.e.comm.GDTFileProvider"
    android:authorities="${applicationId}.gdt.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/gdt_file_path" />
</provider>

3. Create gdt_file_path.xml

Create gdt_file_path.xml file in res/xml directory:

xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
    <!-- This download path cannot be modified, must be com_qq_e_download -->
    <external-cache-path name="gdt_sdk_download_path1" path="com_qq_e_download" />
    <cache-path name="gdt_sdk_download_path2" path="com_qq_e_download" />
</paths>

Baidu Alliance Integration

1. Permission Configuration

Add necessary permissions to AndroidManifest.xml file:

xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

2. Configuration Information

Add configuration to AndroidManifest.xml file:

xml
<meta-data
    android:name="BaiduMobAds_APP_ID"
    android:value="YOUR_BAIDU_APP_ID" />

Kuaishou Alliance Integration

1. Permission Configuration

Add necessary permissions to AndroidManifest.xml file:

xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

2. Configuration Information

Add configuration to AndroidManifest.xml file:

xml
<meta-data
    android:name="com.kwai.ads.APPID"
    android:value="YOUR_KUAISHOU_APP_ID" />

Initialization Configuration

1. Configuration Method

UJU SDK adopts hot-plugging mode, developers do not need to manually initialize third-party ad networks, just configure in UJU backend.

2. Backend Configuration Steps

  1. Log in to UJU developer backend
  2. Enter App Management → Select App
  3. Click "Third-party Ad Networks" option
  4. Select "Domestic Ad Networks" tab
  5. Fill in App ID and ad unit ID for each ad network
  6. Set ad source priority
  7. Save configuration

Version Description

  • The first part of the adapter version number indicates the adapted ad network version, the second part indicates the UJU SDK version
  • For example: ujusdk-csj-adapter-6.3.1.7-3.0.1.aar means adapted based on Pangle 6.3.1.7 version, suitable for UJU SDK 3.0.1 version
  • When integrating, please ensure to use adapters that match the UJU SDK version

Common Questions

Q: What to do if third-party ad network initialization fails?

A: Possible reasons:

  • Incorrect App ID
  • Network connection issues
  • Incomplete permission configuration
  • Adapter version does not match SDK version

Q: What to do if ads are not displaying?

A: Possible reasons:

  • Incorrect ad unit ID
  • Insufficient ad inventory
  • Test device not added to test whitelist
  • Unreasonable ad source priority configuration

Q: How to improve ad fill rate?

A: Recommendations:

  • Integrate multiple ad networks
  • Reasonably configure ad source priority
  • Optimize ad placement design
  • Improve application user activity

Best Practices

  1. Multi-network integration: Integrate multiple ad networks to improve fill rate and revenue
  2. Reasonable configuration: Configure ad source priority according to application characteristics and user groups
  3. Regular updates: Update ad networks and adapter versions in a timely manner to get the latest features and optimizations
  4. Adequate testing: Fully test the performance of each ad network before official release
  5. Data analysis: Analyze revenue data of each ad network and continuously optimize configuration