After developers import Taku SDK, they need to conduct a series of tests to ensure the correct integration of Taku SDK. Here are a few points, and developers can also add them according to their own needs. Test content:
Before testing and verifying the integration of advertising on each platform, you must first conduct integration verification of the SDK. Please first call the corresponding code according to the following instructions, and then follow the logs output and perform corresponding actions.
1. Call the following code at the program entry (such as the MainActivity function):
Note: Do not include this API in the package submitted for review, otherwise it may affect the listing
ATSDK.integrationChecking(applicationContext);//Note: Do not include this API in the package submitted for shelving review to avoid affecting shelving
1.Based on the output logs, check if the SDK integration of each advertising platform is normal.
Filter the tags of anything in Logcat and view the logs. Pay attention to whether the Status field under each advertising platform is Success. If it is Success, the integration of the advertising platform is correct. Otherwise, the integration is incorrect. Specific parameters need to be checked to make corresponding modifications and supplement the missing integration parts.
An example of log output is as follows:
********************************** Network Integration Status *************************************
----------------------------------------
NetworkName: Admob //The name of the aggregated advertising platform
SDK: VERIFIED //Verify if the aggregation SDK is correct, display Verified if correct, otherwise display NOT Verified
Dependence Plugin: VERIFIED //Verify if the plugins that the advertising platform depends on exist. If correct, display Verified; otherwise, display missing configurations
Activities : VERIFIED //Verify if the Activity declaration of the advertising platform exists, display Verified if correct, otherwise display missing configuration
Providers : VERIFIED //Verify if the provider declaration of the advertising platform exists, display Verified if correct, otherwise display missing configuration
Status: Success //Verify if all advertising platforms are integrated correctly, display Success if correct, otherwise display Failure
----------------------------------------
NetworkName: Facebook
SDK: VERIFIED
Dependence Plugin: VERIFIED
Activities : VERIFIED
Services : VERIFIED
Providers : VERIFIED
Status: Success
********************************** Network Integration Status *************************************
Please note that in order to smoothly integrate various advertising platforms, all files in the SDK compressed package downloaded from Taku must be imported into the project.
Based on our experience, we suggest that you configure and verify the following advertising platforms in a targeted manner.
Advertising platform | Suggest VPN to specified country or region | additional requirements |
---|---|---|
Meta | America | 1. On the testing device, it is necessary to follow the Facebook application. 2. Facebook must be logged in and the account can be used normally. 3. The prefix of the Meta advertising source's App ID and Placement ID should be consistent |
Admob | America | 1. The testing device needs to have a Google Play framework that can obtain GAID |
Pangle | Korea, Japan | - |
HuaWei(海外) | - | 1. Overseas versions of Huawei phones are required (language cannot be Chinese, US English) or HMS Core phones are installed |
Inmobi | India | - |
MyTarget | Russia | - |
Vungle | America | 1. Check if the time has been adjusted on the testing device. 2. If the bidding debugging mode is turned on but the bidding cannot be successful, you can add the testing device to the Vungle backend How to use testing modes and testing equipment - Vungle CN 3. Suggested testing steps: First, climb over the VPN to the United States, then uninstall and reinstall the application before loading the advertisement |
Chartboots | China ,America | - |
AppLovin | China ,America | - |
Mintegral | America | - |
Tapjoy | Singapore、America | - |
ironSource | China | - |
UnityAds | America | - |
AdColony | China,America | - |
Bigo | Singapore | - |
Nend | America | - |
Before initialization, add this code to output logs for obtaining detailed information, viewing error codes, and more.
Note that the logging function needs to be turned off before the application goes live.
ATSDK.setNetworkLogDebug(true);//The application must be closed before going live
After turning on the logging function, you can obtain the test device ID:
• Note: SDK version>=6.2.10, non Chinese Mainland version SDK will no longer obtain the system's AndroidId internally, and you must use a mobile phone with GAID to set the debugging mode. Ensure that there is a real printed GAID in the log, and then use the "ATSDK. setDebuggerConfiguration" method to set the GAID to debugging mode for it to take effect. If the value of Gaid is not printed, it indicates that the current phone does not have Google services and needs to be tested using a phone model with Google services.
anythink: ********************************** UA_5.9.96 *************************************
anythink: GAID(ADID): b796a53f-61bf-4e91-bc67-d505cdb97cf8 , AndroidID: f669f2b7137d82b9
anythink: ********************************** UA_5.9.96 *************************************
• We recommend calling the API to set before the Taku SDK initialization.
Network | Universal Setting Code | 高级用法 |
---|---|---|
Mintegral | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Mintegral_NETWORK) .setInterstitial(Mintegral_INTERSTITIAL_VIDEO).build()); | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Mintegral_NETWORK).setNativeType(nativeType).build()); Parameter Description: nativeType:Set native advertising types to support the following types Mintegral_NATIVE_SELF_RENDER: Native custom rendering Mintegral_NATIVE_TEMPLATE:Native automatic rendering |
GDT | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(GDT_NETWORK).build()); | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(GDT_NETWORK).setNativeType(nativeType).setInterstitial(interType).build()); Parameter Description: nativeType:Set native advertising types to support the following types GDT_NATIVE_TEMPLATE:Platform template rendering GDT_NATIVE_SELF_RENDER:Developer self rendering GDT_NATIVE_DRAW_TEMPLATE:Video patch advertisement (template rendering) GDT_NATIVE_DRAW_SELF_RENDER:Video patch advertisement (self rendering) interType:Set the type of screen insertion advertisement, supporting the following types GDT_INTERSTITIAL:Pop up video GDT_INTERSTITIAL_FULL_SCREEN:Full screen video |
CJS | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(TT_NETWORK).build()); | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(TT_NETWORK).setNativeType(nativeType).build()); Parameter Description: nativeType:Set native advertising types to support the following types TT_NATIVE_TEMPLATE:Information flow advertising+template rendering TT_NATIVE_SELF_RENDER:Information flow advertising+self rendering TT_NATIVE_DRAW_TEMPLATE:Draw information flow advertisement+template rendering TT_NATIVE_DRAW_SELF_RENDER:Draw information flow advertisement+self rendering |
BaiDu | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(BAIDU_NETWORK).build()); | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(BAIDU_NETWORK).setNativeType(nativeType).setInterstitial(interType).build()); Parameter Description: nativeType:Set native advertising types to support the following types BAIDU_NATIVE_SELF_RENDER:Self rendering BAIDU_NATIVE_TEMPLATE:Template rendering interType:Set the type of screen insertion advertisement, supporting the following types BAIDU_INTERSTITIAL_FULL_SCREEN:Full screen video BAIDU_INTERSTITIAL_TEMPLATE:Template screen insertion |
KuaiShou | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(KS_NETWORK).build()); | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(KS_NETWORK).setNativeType(nativeType).build()); Parameter Description: nativeType:Set native advertising types to support the following types KS_NATIVE_SELF_RENDER:Information flow advertising+self rendering KS_NATIVE_TEMPLATE:Information flow advertising+template rendering KS_NATIVE_DRAW:Draw Information Flow Advertising |
HuaWei | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Huawei_NETWORK).build()); | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Huawei_NETWORK).setNativeType(nativeType).setInterstitial(interType).build()); Parameter Description: nativeType:Set native advertising types to support the following types Huawei_NATIVE_VIDEO:video Huawei_NATIVE_IMAGE:Small picture Huawei_NATIVE_BIG_IMAGE:Big picture interType:Set the type of screen insertion advertisement, supporting the following types Huawei_INTERSTITIAL_IMAGE:Insert screen image Huawei_INTERSTITIAL_VIDEO:Insert screen video |
Sigmob | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Sigmob_NETWORK).build()); | - |
MiMeng | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Mimo_NETWORK).build()); | - |
YouKeYing | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Klevin_NETWORK).build()); | - |
ADX | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Adx_NETWORK).build()); | ATSDK.setDebuggerConfig(context, AndroidID, new ATDebuggerConfig.Builder(Adx_NETWORK) .setNativeType(nativeType).setInterstitial(interType).setBannerType(bannerType).build()); Parameter Description: nativeType:Set native advertising types to support the following types ADX_NATIVE_EXPRESS_LEFT_PIC_RIGHT_TEXT:Left picture, right text ADX_NATIVE_EXPRESS_LEFT_TEXT_RIGHT_PIC:Left text, right picture ADX_NATIVE_EXPRESS_TOP_PIC_BOTTOM_TEXT:Picture above and text below ADX_NATIVE_EXPRESS_TOP_TEXT_BOTTOM_PIC:Text above and picture below ADX_NATIVE_SELF_RENDER:SelfRender interType:Set interestitial advertising types to support the following types Adx_INTERSTITIAL_FULL_SCREEN:Full Screen Adx_INTERSTITIAL_HALF_SCREEN:Half Screen bannerType:Set banner advertising types to support 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 |
For platforms that do not support debugging mode, the test ID of Taku Demo can be used for testing
Verify the advertising source based on the output log
After calling the API to configure the testing rules, various advertising actions can begin. From the log output of Logcat, you can see the tracking of various advertising actions.
Locate the advertising space that needs to be verified based on placementId.
The action field in the log refers to the corresponding action in the log after the advertisement is loaded, including request (advertisement request) and request_ Result (the result returned by the advertisement), impression (advertisement display), click (advertisement click), close (advertisement close).
Log example:
anythink_network:
╔═══════════════════════════════════════════════════════════════════════════════════════
║ {
║ "placementId": "b5bbdc725768fa",//Initiated loading of ad slot ID
║ "adType": "inter",//Type of advertising space to initiate loading
║ "mixedFormatAdType": -1,
║ "action": "request_result",//Action after initiating advertisement loading: request (advertisement request), request_ Result (result returned by advertisement), impression (advertisement display), click (advertisement click), close (advertisement close)
║ "refresh": 0,
║ "result": "fail",//Result parameters, success, fail
║ "segmentId": 0,//The traffic group where the current advertising source is located, where 0 represents the default group
║ "adSourceId": "1423289", //Advertising source ID
║ "position": 0, //The sorting position of the current advertising source under the advertising space
║ "networkType": 6,//Taku is a unique ID used to distinguish third-party advertising platforms, and the corresponding relationship can be viewed(https://docs.toponad.com/#/zh-cn/android/android_doc/android_access_doc?id=network_firm_id)
║ "networkName": "Mintegral",//Advertising platform name
║ "networkVersion": "MAL_16.1.41",//Advertising Platform SDK Version
║ "networkUnit": "{\"is_video\":\"0\",\"video_muted\":\"0\",\"suport_video\":\"1\",\"appkey\":\"ef13ef712aeb0f6eb3d698c4c08add96\",\"unitid\":\"1726152\",\"appid\":\"100947\"}",//The configuration of this advertising source in the Taku backend (corresponding to the app and placement information of third-party advertising platforms)
║ "isHB": 0,//Is it a top bidding advertising source
║ "msg": "code:[ 4001 ]desc:[ Return Ad is empty. ]platformCode:[ ]platformMSG:[ EXCEPTION_UNIT_ADTYPE_ERROR ]",//If there is a loading failure, complete error information will be output here
║ "hourly_frequency": 0,//The number of times displayed in the current hour
║ "daily_frequency": 0,//The number of times it was displayed the day before yesterday
║ "network_list": "6,6,6",//The ID of the current third-party advertising platform request list, separated by ","
║ "request_network_num": 1,//Indicates how many third-party advertising platform ad sources are loaded simultaneously (corresponding to the number of parallel requests in the Taku backend advanced settings)
║ "handle_class": "com.anythink.network.mintegral.MintegralATInterstitialAdapter" //The class name for calling the advertising platform API
║ }
╚═══════════════════════════════════════════════════════════════════════════════════════
"code[ " + code + " ]
,desc[ " + desc + " ]
,platformCode[ " + platformCode + " ]
,platformMSG[ " + platformMSG + " ]"
code:TakuSDK Internal error code
desc:TakuSDK Internal error code
platformCode:Error codes of third-party advertising platforms (error codes that need to be checked when the advertisement is not filled)
platformMsg:Error messages from third-party advertising platforms (error messages that need to be checked when the advertisement is not filled)
You can search for relevant information based on code and desc Taku error code,If code=4001, it needs to be queried based on PlatformCode and PlatformMSG Third party advertising platform error codes&common issues Conduct an investigation.
If you have already configured a real bidding advertisement source in your own app, you can also use the following APIs to configure testing devices and verify server bidding advertisements. Through this method, all successful and failed advertising source information can be obtained at once, making it easier to organize and check bidding advertising sources uniformly.
According to the principle of bidding advertising, bidding advertising sources need to first conduct advertising bidding, and only after the bidding is successful will they initiate advertising loading. If you want to debug the complete bidding process, you can call the following API to restart ad loading when ad bidding fails.
Note that this test does not use Taku's pre configured test ad source, but requires that you have completed the configuration of a real bidding ad source.
• Operation steps: First, you need to open the logging function of the SDK and obtain the test device ID; Then call the API, configure the test equipment, and start the bidding debugging mode; Finally, based on the results of the log output, make corresponding adjustments.
1. Open the logging function of the SDK
Before initialization, add this code to output logs for obtaining detailed information, viewing error codes, etc。
Note that the logging function needs to be turned off before the application goes live。
ATSDK.setNetworkLogDebug(true);//The application must be closed before going online
1.After turning on the logging function, you can obtain the test device ID:
anythink: ********************************** UA_5.9.96 *************************************
anythink: GAID(ADID): b796a53f-61bf-4e91-bc67-d505cdb97cf8 , AndroidID: f669f2b7137d82b9
anythink: ********************************** UA_5.9.96 *************************************
2.Call API to configure the Android ID of the testing device
Please note that the methods for SDK versions 5.9.96 and below are different from those for versions 5.9.96 and beyond. In addition, the ID of each device is different, and it needs to be reset when replacing the testing equipment.
//5.9.96 and above versions
//F669f2b7137d82b9 is the Android ID of the testing device. Please use GAID for overseas versions
ATSDK.setDebuggerConfig(this, "f669f2b7137d82b9", null);
//Below version 5.9.96
//F669f2b7137d82b9 is the Android ID of the test device
ATSDK.setBiddingTestDevice("f669f2b7137d82b9");
In Logcat, using anything | HeadBidding filtering, relevant logs can be seen. The output log contains a list of successful bidding ad sources and a list of failed bidding ad sources.You can view Suggestions for testing and validation on various platforms,Adjust the configuration of advertising platforms that have failed bidding.
╔═══════════════════════════════════════════════════════════════════════════════════════
║ {
║ "HeadBidding Success List": [ //Successful bidding list
║ {
║ "network_firm_id": 6,
║ "ad_source_id": "1743362",
║ "content": "{\"video_muted\":\"0\",\"appkey\":\"ef13ef712aeb0f6eb3d698c4c08add96\",\"suport_video\":\"1\",\"placement_id\":\"408774\",\"unitid\":\"1729260\",\"is_video\":\"1\",\"appid\":\"100947\"}"
║ }
║ ],
║ "HeadBidding Fail List": [ //List of failed bids
║ {
║ "network_firm_id": 32,
║ "ad_source_id": "1649704",
║ "content": "{\"slot_id\":\"860601\",\"app_id\":\"991505\"}",
║ "error": "errorCode:[10102],errorMsg:[mytarget return empty]"
║ }
║ ]
║ }
╚═══════════════════════════════════════════════════════════════════════════════════════
Note: Taking Meta (Facebook) and Tencent Advertising as examples
Ad Type | platform | Verification Point | recommendation | pay attention to |
---|---|---|---|---|
Rewarded Video Ad | 1. Display successful 2. Click to jump (download) 3. Reward for ending the video 4. Close the advertisement and return to normal game mode 5. Is the game logic normal when filling in without advertisements | Pre load the next advertisement in advance after displaying the advertisement | - | |
Interstitial ad | 1. Display successful 2. Click to jump (download) 3. Close the advertisement and return to normal game mode 4. Is the game logic normal when filling in without advertisements | Pre load the next advertisement in advance after displaying the advertisement | - | |
Native | 1. Display images (videos) 2. Click 3. Advertising refresh (based on game logic) 4. Is the logic of the game without padding normal | Pre load the next advertisement in advance after retrieving the advertisement cache | Check if the width and height are correctly set before loading native advertisements | |
Banner Ad | 1. Display 2. Click 3. Is the logic of the game without padding normal 4. Advertising refresh (based on game logic) | Enable automatic refresh in "Aggregation Management - Advanced Settings" | Check if the width and height are correctly set before loading the banner advertisement | |
Splash ad | GDT | 1. Display 2. Click 3. Is the logic of the game without padding normal | Pre load the next advertisement in advance after displaying the advertisement | - |
1.Network switch to EU region
2.Operation: Start the application for the first time as expected. Expected: Pop up GDPR consultation box
3.Operation: Do not click any button, kill the application, and restart. Expected: GDPR consultation box will pop up (as long as not authorized, consultation box will pop up every time it is launched)
4.Operation: After clicking on authorize GDPR, kill the application and restart it. Expected: No GDPR consultation box will appear Appendix: Quick Reference Table for Advertising Testing Methods
Note that no matter which testing method is used to test the advertising sources on the advertising space, you need to first perform SDK integration verification. This is explained in detail in the first point of the debugging mode and testing mode documentation.
Advertising platform | SDK version>=5.9.96 | |
Meta(Facebook) | Meta only offers competitive advertising services. The debugging mode has pre configured a test bidding ad source for Meta. You can directly call API methods and use the test bidding ad source for verification without the need for rule configuration in the developer background. Please refer to the details for more information Debugging Mode Document | |
Mintegral GTD CJS BaiDu KuaiShou HuaWei Sigmob MiMeng YouKeYing Admob Nend Huawei InMobi Applovin Chartboost Tapjoy IronSource Unity Ads Vungle Maio Start.io MyTarget Fyber Pangle | Non competitive advertising: The debugging mode has pre configured non competitive advertising sources for testing on various advertising platforms. You can directly call the API methods of various platforms and use test non bidding advertising sources for verification No need to configure rules in the developer backend For details, please check Debugging Mode Document Bid advertising: We do not provide bidding advertising sources for testing on these platforms. You need to pre configure the real bidding advertising source and call a separate API method to test device ID configuration. Open the server bidding advertising log and view the details of the advertising loading process to achieve debugging purposes No need to configure rules in the developer backend For details, please refer to the server bidding advertising source verification scheme | |
Taku ADX | The debugging mode has pre configured bidding and non bidding advertising sources for Taku ADX for testing purposes. You can directly call API methods and use the testing advertising source for verification without the need for rule configuration in the developer's background. Please refer to the details for more information Debugging Mode Document | |
Other advertising platforms | Configure and test using Taku Demo test ID |