Menu

How to Test

1. SDK Log Switch

Note: The log function must be turned off before the app goes live.

java Copy
ATSDK.setNetworkLogDebug(true);

After enabling the log switch:

  • In Android Studio's Logcat, filter by "secmtp" as the tag to view the SDK logs.
  • The TopOn SDK will print the following log during initialization, from which you can obtain the device ID.
  • If the GAID value is not printed, please check whether the current phone has Google services. You need to use a phone model with Google services for testing.
Copy
anythink: ****************************************************************************
anythink: GAID(ADID): b796a53f-61bf-4e91-bc67-d505cdb97cf8 , AndroidID: f669f2b7137d82b9
anythink: ****************************************************************************

Log Example:

Copy
anythink_network:
╔═══════════════════════════════════════════════════════════════════════════════════════
║ {
║     "placementId": "b5bbdc725768fa",  // The placement ID that initiated the load
║     "adType": "inter",  // The ad type that initiated the load
║     "mixedFormatAdType": -1,
║     "action": "request_result",  // Action after initiating ad load: request (ad request), request_result (ad return result), impression (ad display), click (ad click), close (ad close)
║     "refresh": 0,
║     "result": "fail",  // Result parameter, success (successful), fail (failed)
║     "segmentId": 0,  // The traffic group of the current ad source. 0 indicates the default group.
║     "adSourceId": "1423289",  // Ad source ID
║     "position": 0,  // The ranking position of the current ad source under the placement
║     "networkType": 6,  // The unique ID used by TopOn to distinguish third-party ad networks. The mapping can be viewed at (https://docs.toponad.com/#/zh-cn/android/android_doc/android_access_doc?id=network_firm_id)
║     "networkName": "Mintegral",  // Ad network name
║     "networkVersion": "MAL_16.1.41",  // Ad network SDK version
║     "networkUnit": "{\"is_video\":\"0\",\"video_muted\":\"0\",\"suport_video\":\"1\",\"appkey\":\"ef13ef712aeb0f6eb3d698c4c08add96\",\"unitid\":\"1726152\",\"appid\":\"100947\"}",  // The configuration of this ad source in the TopOn dashboard (corresponding to the app and placement information of the third-party ad network)
║     "isHB": 0, // Whether it is a header bidding ad source
║     "msg": "code:[ 4001 ]desc:[ Return Ad is empty. ]platformCode:[  ]platformMSG:[ EXCEPTION_UNIT_ADTYPE_ERROR ]",  // If a load failure occurs, the complete error information will be output here
║     "hourly_frequency": 0,  // Number of impressions in the current hour
║     "daily_frequency": 0,  // Number of impressions in the current day
║     "network_list": "6,6,6",  // The list of IDs of the currently requested third-party ad networks, separated by ","
║     "request_network_num": 1,  // Indicates how many third-party ad network ad source loads are initiated simultaneously (corresponds to the parallel request count in the TopOn dashboard Advanced Settings)
║     "handle_class": "com.anythink.network.mintegral.MintegralATInterstitialAdapter"  // The class name that calls the ad network API
║ }
╚═══════════════════════════════════════════════════════════════════════════════════════
java Copy
TUSDK.setNetworkLogDebug(true);

After enabling the log switch:

  • In Android Studio's Logcat, filter by "thinkup" as the tag to view the SDK logs.
  • The TopOn SDK will print the following log during initialization, from which you can obtain the device ID.
  • If the GAID value is not printed, please check whether the current phone has Google services. You need to use a phone model with Google services for testing.
Copy
thinkup: ****************************************************************************
thinkup: GAID(ADID): b796a53f-61bf-4e91-bc67-d505cdb97cf8 , AndroidID: f669f2b7137d82b9
thinkup: ****************************************************************************

Log Example:

Copy
thinkup_network:
╔═══════════════════════════════════════════════════════════════════════════════════════
║ {
║     "placementId": "b5bbdc725768fa",  // The placement ID that initiated the load
║     "adType": "inter",  // The ad type that initiated the load
║     "mixedFormatAdType": -1,
║     "action": "request_result",  // Action after initiating ad load: request (ad request), request_result (ad return result), impression (ad display), click (ad click), close (ad close)
║     "refresh": 0,
║     "result": "fail",  // Result parameter, success (successful), fail (failed)
║     "segmentId": 0,  // The traffic group of the current ad source. 0 indicates the default group.
║     "adSourceId": "1423289",  // Ad source ID
║     "position": 0,  // The ranking position of the current ad source under the placement
║     "networkType": 6,  // The unique ID used by TopOn to distinguish third-party ad networks. The mapping can be viewed at (https://docs.toponad.com/#/zh-cn/android/android_doc/android_access_doc?id=network_firm_id)
║     "networkName": "Mintegral",  // Ad network name
║     "networkVersion": "MAL_16.1.41",  // Ad network SDK version
║     "networkUnit": "{\"is_video\":\"0\",\"video_muted\":\"0\",\"suport_video\":\"1\",\"appkey\":\"ef13ef712aeb0f6eb3d698c4c08add96\",\"unitid\":\"1726152\",\"appid\":\"100947\"}",  // The configuration of this ad source in the TopOn dashboard (corresponding to the app and placement information of the third-party ad network)
║     "isHB": 0, // Whether it is a header bidding ad source
║     "msg": "code:[ 4001 ]desc:[ Return Ad is empty. ]platformCode:[  ]platformMSG:[ EXCEPTION_UNIT_ADTYPE_ERROR ]",  // If a load failure occurs, the complete error information will be output here
║     "hourly_frequency": 0,  // Number of impressions in the current hour
║     "daily_frequency": 0,  // Number of impressions in the current day
║     "network_list": "6,6,6",  // The list of IDs of the currently requested third-party ad networks, separated by ","
║     "request_network_num": 1,  // Indicates how many third-party ad network ad source loads are initiated simultaneously (corresponds to the parallel request count in the TopOn dashboard Advanced Settings)
║     "handle_class": "com.thinkup.network.mintegral.MintegralTUInterstitialAdapter"  // The class name that calls the ad network API
║ }
╚═══════════════════════════════════════════════════════════════════════════════════════

Note:

  • If the result field of all action type logs is success, then the ad network is integrated correctly.
  • If the result field of a certain log is fail, it means an error occurred in that ad behavior. You need to check the content of the msg field in the log, which has the following format:
Copy
"code[ " + code + " ],desc[ " + desc + " ],platformCode[ " + platformCode + " ],platformMSG[ " + platformMSG + " ]"

code: TopOn SDK internal error code
desc: TopOn SDK internal error description
platformCode: Third-party ad network error code (the error code to check when an ad has no fill)
platformMsg: Third-party ad network error message (the error message to check when an ad has no fill)

You can query the relevant TopOn Error Codes based on code, desc. If code=4001, you need to troubleshoot based on platformCode, platformMSG by checking the Third-Party Ad Network Error Codes & FAQ.

2. Testing Ads via the Test Tool

2.1 Test Tool Introduction

  • Basic Information: Detect information related to the app, device, and SDK.
  • TopOn SDK Settings: Check whether privacy settings and permissions have been successfully configured.
  • Integration Check: Check the integration status of third-party platform SDKs and adapters and test suggestions, as well as test ad loading for third-party ad networks.

Note:

  • Supports detection and use after integrating the TopOn SDK.
  • The test tool is only used for checking SDK integration and cannot replace the APP's own ad logic testing.
  • After testing is complete and before going live, the relevant code that calls the test tool must be removed.
  • SDK version requirement: v6.2.70 and above.

● Version Information

TopOn SDK Version Test Tool Version Description
v6.6.21 and above (Recommended) v1.1.5 Compatible with higher SDK versions, optimized known issues
v6.5.50 and above v1.1.3 Compatible with higher SDK versions, optimized known issues
v6.4.88 and above v1.1.2 Compatible with higher SDK versions, optimized known issues
v6.4.87 and below v1.1.0 Optimized known issues

💡Tips: When using the test tool for testing, focus on the following:

  1. Check whether the integration display of the ad network's SDK is correct.
  2. Whether the requests, impressions, and clicks for each ad format of the ad network are normal.

2.2 Test Tool Integration

(1) Refer to the TopOn SDK Integration Guide to integrate the SDK.

(2) Import the test tool and add the dependency in build.gradle:

Copy
repositories {
    maven {
        url "https://jfrog.anythinktech.com/artifactory/debugger"
    }
}
dependencies {
    // Debugger UI Tools
    implementation 'com.anythink.sdk:debugger-ui-tpn:1.1.3'
}

(3) Launch the test tool

Note: The following method can only be used to access the test tool after initializing the TopOn SDK.

java Copy
ATDebuggerUITest.showDebuggerUI(context);
Copy
repositories {
    maven {
        url "https://jfrog.anythinktech.com/artifactory/debugger"
    }
}
dependencies {
    // Debugger UI Tools
    implementation 'com.thinkup.sdk:debugger-ui:1.1.3'
}

(3) Launch the test tool

Note: The following method can only be used to access the test tool after initializing the TopOn SDK.

java Copy
TUDebuggerUITest.showDebuggerUI(context);

2.3 Test Tool Usage

2.3.1 Basic Information

💡Tips: If GAID is empty, the test tool cannot be used normally for testing. If it is empty, please check:

  1. Whether the test phone has Google services installed.

  2. Whether the following methods have been called in the project; both methods will restrict GAID retrieval.

    Copy
    ATSDK.deniedUploadDeviceInfo(DeviceDataInfo.GAID);
         
    ATSDK.setGDPRUploadDataLevel(ATSDK.NONPERSONALIZED);

💡Tips: If GAID is empty, the test tool cannot be used normally for testing. If it is empty, please check:

  1. Whether the test phone has Google services installed.

  2. Whether the following methods have been called in the project; both methods will restrict GAID retrieval.

    Copy
    TUSDK.deniedUploadDeviceInfo(DeviceDataInfo.GAID);
         
    TUSDK.setGDPRUploadDataLevel(TUSDK.NONPERSONALIZED);

2.3.2 TopOn SDK Settings

TopOn SDK settings include two parts: Privacy Settings and Permission Settings.

(1) Privacy Settings

Device Privacy Data Restricted from Reporting, GDPR

(2) Permission Settings: The list of permissions that the app has requested.

2.3.3 Integration Check

(1) Check the integration status in the ad network list: Integration Abnormal, Integration Complete, Not Integrated.

(2) Toggle the switch to enable debug mode.

(3) Select an ad network to enter debug mode, and click the share icon in the top right corner to share the ad network information for the current page.

(4) Select the ad format of the ad network for testing.

2.3.4 Online ID Test

Online ID testing supports using placements configured in the TopOn dashboard to test ads, and supports filtering ad sources under a placement for testing.

Note: After running the online ID test, switching back to the developer's app for testing requires restarting the app to avoid cache issues caused by the test placement in the app being the same as the test tool placement.

(1) Prerequisites

  • SDK Version: v6.3.68 and above
  • Test Tool Version: v1.0.5 and above
  • Set the SDK Debug Key: The steps to obtain it are Log in to Dashboard -> Account Management -> Key -> SDK Debug Key
  • Debug mode is in the disabled state

(2) Getting Started

Sample code is as follows:

Copy
//1. Initialize the SDK
ATSDK.init(context, "your app id", "your app key");
//2. Set the Debug Key to enter the test tool
ATDebuggerUITest.showDebuggerUI(context, "your debug key");
Copy
//1. Initialize the SDK
TUSDK.init(context, "your app id", "your app key");
//2. Set the Debug Key to enter the test tool
TUDebuggerUITest.showDebuggerUI(context, "your debug key");

(3) Online ID List

  • Supports viewing app information: app name, App ID, app package name, SDK version.
  • Supports viewing the list of placements configured under the app.
  • Supports viewing placement information: name, ID.
  • Supports clicking on a placement to navigate to the placement test page for testing (video streaming ads are temporarily not supported for testing).

(4) Placement Test

  • Supports switching traffic groups.
  • Supports bidding and waterfall ad sources.
  • Supports filtering ad sources: unchecked ad sources will be filtered when initiating a load.

3. Testing Ads via Debug Mode

  • Using debug mode, you can lock onto a single ad network, use TopOn's pre-configured test ad sources, and test and verify the ad network integration.
  • After the test begins, you first need to enable the SDK's log function and obtain the test device ID; then call the API for each ad network to configure the test device, test ad network, and test ad type, enabling debug mode; finally, execute the corresponding adjustments based on the log output results.
  • Each ad network has its own separate method, and different ad formats have different parameter configurations. Please select the method to call based on the ad network and ad format you need to test. For the ad formats supported by each ad network, please refer to: Mediation Platform Overview
  • We recommend calling the API for configuration before initializing the TopOn SDK.
  • After configuration is complete, all placements on the test device will only request the test ad source of the specified ad network in the configuration.

Note:

  • For bidding ad sources, this configuration only supports Meta (Facebook) and TopOn ADX. Other bidding ad sources cannot be tested via this method.
  • When testing overseas ad networks, you need to proxy to an overseas network. For InMobi, it is recommended to proxy to Southeast Asia, with India being the best. For Pangle, proxy to a non-US region. For the Meta platform, the Facebook app must be installed on the test phone, and the fill rate is relatively low, possibly requiring multiple attempts. For other overseas platforms, when loading ads, you can try proxying to the country/region where the platform is located to increase the ad fill rate.

3.1 Ad Networks Supported by Debug Mode

● Meta (Bidding)

Tips:

  1. Meta has a high fill rate in the US.
  2. The Facebook app must be installed on the test device.
  3. Facebook must be in a logged-in state, and the account must function normally.
  4. The App ID and Placement ID prefixes of the Meta ad source must match.
java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Facebook_NETWORK).build());
// Advanced usage
ATSDK.setDebuggerConfig(context, AndroidID,new ATDebuggerConfig.Builder(Facebook_NETWORK).setNativeType(nativeType).build());
Parameter description:
nativeType: Set the native ad type. Supports the following types:
    Facebook_NATIVE_SELF_RENDER: Native Ad (Self-Rendering)
    Facebook_NATIVE_BANNER_TEMPLATE: Native Banner Ad (Template Rendering)
    Facebook_NATIVE_TEMPLATE: Native Ad (Template Rendering)
    Facebook_NATIVE_BANNER_SELF_RENDER: Native Banner Ad (Self-Rendering)

● AdMob

Tips:

  1. AdMob has a high fill rate in the US.
  2. Google Play must be available on the test device and GAID must be obtainable.
java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Admob_NETWORK).build());
// Advanced usage
ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Admob_NETWORK).setNativeType(nativeType).setInterstitial(interType).build());
Parameter description:
nativeType: Set the native ad type. Supports the following types:
    Admob_NATIVE_IMAGE: Image
    Admob_NATIVE_VIDEO: Video
interType: Set the interstitial ad type. Supports the following types:
    Admob_INTERSTITIAL_IMAGE: Interstitial Image
    Admob_INTERSTITIAL_VIDEO: Interstitial Video

● Mintegral

Tips: High fill rate in Europe and the Americas.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Mintegral_NETWORK) .setInterstitial(Mintegral_INTERSTITIAL_VIDEO).build());
// Advanced usage
ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Mintegral_NETWORK).setNativeType(nativeType).build());
Parameter description:
nativeType: Set the native ad type. Supports the following types:
    Mintegral_NATIVE_SELF_RENDER: Native Custom Rendering
    Mintegral_NATIVE_TEMPLATE: Native Auto Rendering

● Huawei

Tips: Must use an overseas version Huawei phone (language cannot be China-Chinese, US-English) or a phone with HMS Core installed.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Huawei_NETWORK).build());
// Advanced usage
ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Huawei_NETWORK).setNativeType(nativeType).setInterstitial(interType).build());
Parameter description:
nativeType: Set the native ad type. Supports the following types:
    Huawei_NATIVE_VIDEO: Video
    Huawei_NATIVE_IMAGE: Small Image
    Huawei_NATIVE_BIG_IMAGE: Large Image
interType: Set the interstitial ad type. Supports the following types:
    Huawei_INTERSTITIAL_IMAGE: Interstitial Image
    Huawei_INTERSTITIAL_VIDEO: Interstitial Video

● ADX

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Adx_NETWORK).build());
// Advanced usage
ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Adx_NETWORK).setNativeType(nativeType).setInterstitial(interType).setBannerType(bannerType).build());
Parameter description:
nativeType: Set the native ad type. Supports the following types:
    ADX_NATIVE_EXPRESS_LEFT_PIC_RIGHT_TEXT: Left Image Right Text
    ADX_NATIVE_EXPRESS_LEFT_TEXT_RIGHT_PIC: Left Text Right Image
    ADX_NATIVE_EXPRESS_TOP_PIC_BOTTOM_TEXT: Top Image Bottom Text
    ADX_NATIVE_EXPRESS_TOP_TEXT_BOTTOM_PIC: Top Text Bottom Image
    ADX_NATIVE_SELF_RENDER: Self-Rendering
interType: Set the interstitial ad type. Supports the following types:
    Adx_INTERSTITIAL_FULL_SCREEN: Full-Screen Interstitial
    Adx_INTERSTITIAL_HALF_SCREEN: Half-Screen Interstitial
bannerType: Set the banner ad type. Supports the following types:
    ADX_BANNER_SIZE_320_50: 320x50 size
    ADX_BANNER_SIZE_320_90: 320x90 size
    ADX_BANNER_SIZE_300_250: 300x250 size
    ADX_BANNER_SIZE_728_90: 728x90 size

● InMobi

Tips: InMobi has a high fill rate in India.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Inmobi_NETWORK).build());

● AppLovin

Tips: High fill rate in China and the US.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Applovin_NETWORK).build());

● Chartboost

Tips: High fill rate in China and the US.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Chartboost_NETWORK).build());

● IronSource

Tips: High fill rate in China.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Ironsource_NETWORK).build());

● Unity Ads

Tips: High fill rate in the US.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(UnityAds_NETWORK).build());

● Vungle

Tips

  1. Test suggestion: First VPN to the US, then uninstall and reinstall the app before loading the ad.
  2. If the bidding debug mode still cannot succeed, you can add a test device in the Vungle dashboard. How to use test mode and test devices – Vungle CN
java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Vungle_NETWORK).build());

Start.io

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(StartApp_NETWORK).build());

● MyTarget

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(MyTarget_NETWORK).build());

● Fyber

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Fyber_NETWORK).build());

● Pangle

Tips: High fill rate in South Korea and Japan.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(Pangle_NETWORK).build());

● Bigo

Tips: High fill rate in Singapore.

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(BigoAds_NETWORK).build());

● Kwai

java Copy
// General setup
ATSDK.setDebuggerConfig(context, GAID, new ATDebuggerConfig.Builder(KWAI_NETWORK).build());

● Meta (Bidding)

Tips

  1. Meta has a high fill rate in the US.
  2. The Facebook app must be installed on the test device.
  3. Facebook must be logged in and the account must be usable.
  4. The App ID and Placement ID prefix of the Meta ad source must be consistent.
java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Facebook_NETWORK).build());
// Advanced usage
TUSDK.setDebuggerConfig(context, AndroidID,new TUDebuggerConfig.Builder(Facebook_NETWORK).setNativeType(nativeType).build());
Parameters:
nativeType: Set the native ad type. Supports the following types:
    Facebook_NATIVE_SELF_RENDER: Native Ad (Self-Rendering)
    Facebook_NATIVE_BANNER_TEMPLATE: Native Banner Ad (Template Rendering)
    Facebook_NATIVE_TEMPLATE: Native Ad (Template Rendering)
    Facebook_NATIVE_BANNER_SELF_RENDER: Native Banner Ad (Self-Rendering)

● AdMob

Tips

  1. AdMob has a high fill rate in the US.
  2. The test device must have Google Play and be able to obtain the GAID.
java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Admob_NETWORK).build());
// Advanced usage
TUSDK.setDebuggerConfig(context, AndroidID, new TUDebuggerConfig.Builder(Admob_NETWORK).setNativeType(nativeType).setInterstitial(interType).build());
Parameters:
nativeType: Set the native ad type. Supports the following types:
    Admob_NATIVE_IMAGE: Image
    Admob_NATIVE_VIDEO: Video
interType: Set the Interstitial ad type. Supports the following types:
    Admob_INTERSTITIAL_IMAGE: Interstitial Image
    Admob_INTERSTITIAL_VIDEO: Interstitial Video

● Mintegral

Tips: High fill rate in Europe and the Americas.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Mintegral_NETWORK) .setInterstitial(Mintegral_INTERSTITIAL_VIDEO).build());
// Advanced usage
TUSDK.setDebuggerConfig(context, AndroidID, new TUDebuggerConfig.Builder(Mintegral_NETWORK).setNativeType(nativeType).build());
Parameters:
nativeType: Set the native ad type. Supports the following types:
    Mintegral_NATIVE_SELF_RENDER: Native Custom Rendering
    Mintegral_NATIVE_TEMPLATE: Native Auto Rendering

● Huawei

Tips: A Huawei phone with an overseas version (language cannot be China-Chinese, US-English) or a phone with HMS Core installed is required.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Huawei_NETWORK).build());
// Advanced usage
TUSDK.setDebuggerConfig(context, AndroidID, new TUDebuggerConfig.Builder(Huawei_NETWORK).setNativeType(nativeType).setInterstitial(interType).build());
Parameters:
nativeType: Set the native ad type. Supports the following types:
    Huawei_NATIVE_VIDEO: Video
    Huawei_NATIVE_IMAGE: Small Image
    Huawei_NATIVE_BIG_IMAGE: Large Image
interType: Set the Interstitial ad type. Supports the following types:
    Huawei_INTERSTITIAL_IMAGE: Interstitial Image
    Huawei_INTERSTITIAL_VIDEO: Interstitial Video

● ADX

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Adx_NETWORK).build());
// Advanced usage
TUSDK.setDebuggerConfig(context, AndroidID, new TUDebuggerConfig.Builder(Adx_NETWORK).setNativeType(nativeType).setInterstitial(interType).setBannerType(bannerType).build());
Parameters:
nativeType: Set the native ad type. Supports the following types:
    ADX_NATIVE_EXPRESS_LEFT_PIC_RIGHT_TEXT: Image Left, Text Right
    ADX_NATIVE_EXPRESS_LEFT_TEXT_RIGHT_PIC: Text Left, Image Right
    ADX_NATIVE_EXPRESS_TOP_PIC_BOTTOM_TEXT: Image Top, Text Bottom
    ADX_NATIVE_EXPRESS_TOP_TEXT_BOTTOM_PIC: Text Top, Image Bottom
    ADX_NATIVE_SELF_RENDER: Self-Rendering
interType: Set the Interstitial ad type. Supports the following types:
    Adx_INTERSTITIAL_FULL_SCREEN: Full-Screen Interstitial
    Adx_INTERSTITIAL_HALF_SCREEN: Half-Screen Interstitial
bannerType: Set the Banner ad type. Supports the following types:
    ADX_BANNER_SIZE_320_50: 320x50 Size
    ADX_BANNER_SIZE_320_90: 320x90 Size
    ADX_BANNER_SIZE_300_250: 300x250 Size
    ADX_BANNER_SIZE_728_90: 728x90 Size

● InMobi

Tips: InMobi has a high fill rate in India.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Inmobi_NETWORK).build());

● AppLovin

Tips: High fill rate in China and the US.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Applovin_NETWORK).build());

● Chartboost

Tips: High fill rate in China and the US.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Chartboost_NETWORK).build());

● IronSource

Tips: High fill rate in China.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Ironsource_NETWORK).build());

● Unity Ads

Tips: High fill rate in the US.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(UnityAds_NETWORK).build());

● Vungle

Tips

  1. Test suggestion: First VPN to the US, then uninstall and reinstall the app before loading the ad.
  2. If the bidding debug mode still cannot succeed, you can add a test device in the Vungle dashboard. How to use test mode and test devices – Vungle CN
java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Vungle_NETWORK).build());

Start.io

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(StartApp_NETWORK).build());

● MyTarget

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(MyTarget_NETWORK).build());

● Fyber

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Fyber_NETWORK).build());

● Pangle

Tips: High fill rate in South Korea and Japan.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(Pangle_NETWORK).build());

● Bigo

Tips: High fill rate in Singapore.

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(BigoAds_NETWORK).build());

● Kwai

java Copy
// General setup
TUSDK.setDebuggerConfig(context, GAID, new TUDebuggerConfig.Builder(KWAI_NETWORK).build());

3.2 Platforms Not Supported by Debug Mode

For platforms not supported by debug mode, you can use the test IDs from the TopOn Demo for testing.

  • Based on the output logs, verify the ad source. From the Logcat log output, you can see the tracking of various ad actions.
  • After calling the API to configure the test rules, you can begin performing various ad actions.
  • Locate the placement to be verified by placementId.

4. GDPR Verification

(1) Switch the network to the EU region.

(2) Action: Start the app for the first time. Expected: A GDPR consent dialog pops up.

(3) Action: Do not click any button; kill the app and restart. Expected: The GDPR consent dialog pops up again (as long as consent is not granted, the consent dialog will appear every time the app starts).

(4) Action: After clicking to authorize GDPR, kill the app and restart. Expected: The GDPR consent dialog does not appear.

Previous
Testing Networks
Next
Error Codes
Last modified: 2026-07-03Powered by