Menu

Integration Checklist

This checklist is designed to help you systematically verify the application integration process, ensuring seamless integration and efficient operation of the advertising SDK.


1. API Usage Check

  • During application initialization, make sure to use the correct App Key and App ID, and ensure that the placement IDs for each ad format match the configuration in the Taku dashboard; also check that the application Bundle ID matches the configuration
  • Check permission configurations in Info.plist such as ATT and HTTP
  • After SDK initialization, all placements should be able to load and display ads normally

2. Ad Format Check

Rewarded Video Ads

  • Correctly set Placement ID
  • Implement ad event Delegate (ATRewardedVideoDelegate)
  • Correctly call ad loading method (loadADWithPlacementID)
  • Check if ad is ready before showing (rewardedVideoReadyForPlacementID)
  • Correctly call ad display method and set delegate (showRewardedVideoWithPlacementID:config:inViewController:delegate:), avoid calling display APIs in - (void)viewWillAppear:(BOOL)animated and - (void)viewWillDisappear:(BOOL)animated
  • Correctly implement preloading (didFailToLoadADWithPlacementID requires a delay before initiating preloading, for details see Sample Code; rewardedVideoDidFailToPlayForPlacementID requires no delay; rewardedVideoDidCloseForPlacementID requires no delay)
  • [Optional] Set ad revenue listener (didRevenueForPlacementID)

Interstitial Ads

  • Correctly set Placement ID
  • Implement ad event Delegate (ATInterstitialDelegate)
  • Correctly call ad loading method (loadADWithPlacementID)
  • Check if ad is ready before showing (interstitialReadyForPlacementID)
  • Correctly call ad display method and set delegate, ensure the input parameter controller can normally present ads in the ad scenario (showInterstitialWithPlacementID:showConfig:inViewController:delegate:nativeMixViewBlock:), avoid calling display APIs in - (void)viewWillAppear:(BOOL)animated and - (void)viewWillDisappear:(BOOL)animated
  • Correctly implement preloading (didFailToLoadADWithPlacementID requires a delay before initiating preloading, for details see Sample Code; interstitialDidFailToPlayVideoForPlacementID requires no delay; interstitialDidCloseForPlacementID requires no delay)
  • [Optional] Set ad revenue listener (didRevenueForPlacementID)

Splash Ads

  • Correctly set Placement ID
  • Set ad event Delegate (ATSplashDelegate)
  • Correctly call ad loading method (loadADWithPlacementID)
  • Check if ad is ready before showing (showSplashWithPlacementID:config:window:inViewController:extra:delegate:)
  • Correctly call ad display method and set delegate, ensure the input parameter Window and controller can normally present ads in the ad scenario (showAdWithWindow:viewController:withExtra:), avoid calling display APIs in - (void)viewWillAppear:(BOOL)animated and - (void)viewWillDisappear:(BOOL)animated
  • Correctly set timeout duration (kATSplashExtraTolerateTimeoutKey)
  • For hot start splash scenarios, correctly implement preloading (splashDidCloseForPlacementID requires preloading)
  • [Optional] Set ad revenue listener (didRevenueForPlacementID)
  • Correctly set Placement ID
  • Set ad event Delegate (ATBannerDelegate)
  • Correctly set Banner Size (kATAdLoadingExtraBannerAdSizeKey)
  • Correctly call ad loading method (loadADWithPlacementID)
  • Check if ad is ready before showing (bannerAdReadyForPlacementID)
  • Correctly call ad display method (retrieveBannerViewForPlacementID)
  • Correctly set the visibility of ATBannerView and its container to properly display ads
  • Correctly set the delegate of ATBannerView and its presentingViewController
  • [Optional] Set ad revenue listener (revenueDelegate)
  • Auto-refresh feature configuration: TopOn Dashboard > App Management > Select Target App > Enter Target Banner Placement > Advanced Settings
  • When temporarily not displaying, you can set the banner object's isHidden; when permanently not displaying, you need to destroy it with destroyBanner

Native Self-Rendered Ads

  • Correctly set Placement ID
  • Set ad event Delegate (ATNativeADDelegate)
  • Correctly call ad loading method (loadADWithPlacementID)
  • Use ATNativeADConfiguration for pre-display configuration
  • Correctly create ATNativeAdOffer through getNativeAdOfferWithPlacementID and use after null check
  • Self-rendered ads: Create self-rendered view, and correctly assign values and layout to components based on the information content in ATNativeAdOffer
  • Correctly create native ad view through [[ATNativeADView alloc] initWithConfiguration:config currentOffer:placementID:]
  • Self-rendered ads: Correctly call [nativeADView getMediaView] to get mediaView object, check for null, and if not null, need to correctly add layout
  • Self-rendered ads: Call registerClickableViewArray to correctly pass in UI controls for registering click events
  • Self-rendered ads: Call ATNativePrepareInfo loadPrepareInfo: to correctly pass in UI controls to be bound for rendering
  • Correctly call rendererWithNativeAdView:selfRenderView:adInfo: for rendering, then set nativeADView to visible
  • Correctly implement preloading (didFailToLoadADWithPlacementID requires a delay before initiating preloading, for details see Sample Code; didTapCloseButtonInAdView requires no delay)
  • [Optional] Set ad revenue listener (didRevenueForPlacementID)
  • Correctly release ad resources (destroyNative, ATNativeAdOffer=nil)

Native Template Ads

  • Correctly set Placement ID
  • Set ad event Delegate (ATNativeADDelegate)
  • Correctly call ad loading method (loadADWithPlacementID)
  • Use ATNativeADConfiguration for pre-display configuration
  • Correctly create ATNativeAdOffer through getNativeAdOfferWithPlacementID and use after null check
  • Correctly create native ad view through [[ATNativeADView alloc] initWithConfiguration:config currentOffer:placementID:]
  • Correctly call rendererWithNativeAdView:selfRenderView:adInfo: for rendering, then set nativeADView to visible
  • Correctly implement preloading (didFailToLoadADWithPlacementID requires a delay before initiating preloading, for details see Sample Code; didTapCloseButtonInAdView requires no delay)
  • [Optional] Set ad revenue listener (didRevenueForPlacementID)
  • Correctly release ad resources (destroyNative)

3. General Check Items

  • Use debugging tools to verify ad integration status ([[ATDebuggerAPI sharedInstance] showDebuggerInViewController:vc showType:ATShowDebugUIPresent debugkey:@"Enter your DebugKey, DebugKey can be obtained from Backend->Account Management->Key, DebugKey needs to correspond with AppID and AppKey"];)
  • Enable debug log switch during debugging phase ([ATAPI setLogEnabled:YES];)

4. Third-Party Revenue Reporting

Previous
Error code
Next
Testing Checklist
Last modified: 2025-08-11Powered by