Menu

Fully automatic loading

1. Introduction

Fully automatic loading mode is a one-stop request maintenance solution launched by TopOn. Developers You only need to pay attention to the timing of loading and display calls to reduce the cost of access time.

1.1 Integration recommendations

  1. Initialization:
    • It is recommended to call addAutoLoadAdPlacementIDArray performs fully automatic loading of interstitial ads. If you need to set a proxy and pass in localExtra , please set before calling the automatic loading method
  2. Scene statistics:
    • It is recommended to call entryAdScenarioWithPlacementID after entering the scene where ads can be displayed to count the cache status of the current ad slot. For specific statistical explanations, please view Advertising scenarios to distinguish data between different business scenarios
  3. Ad display:
  • Need to call autoLoadInterstitialReadyForPlacementID Determine whether the ad is ready
    • YES: you can call it directly showAutoLoadInterstitialWithPlacementID Display ads
    • NO: will skip this display opportunity and the SDK will load the Advertisements to fill.

1.2 Notes

  • Fully automatic interstitial advertising is implemented automatically inside Loading logic, will be called back after successful loading didFinishLoadingADWithPlacementID so please avoid didFinishLoadingADWithPlacementID Directly executing ad display in the callback will cause loop display. If the ad slot is set For fully automatic loading, do not call loadADWithPlacementID Load ads
  • In the extra in the loading method, the userId passed in, extraData is only used for the next and subsequent interstitial ads. Loading takes effect, but does not take effect for cached interstitial ads
  • It is not recommended to load ads when the App is in the background to avoid unnecessary exceptions caused by system recycling of resources.

2. API Description

2.1 Loading ads

ATInterstitialAutoAdManager: Fully automatic loading of management classes for interstitial ads

MethodDescription
sharedInstanceGet ATInterstitialAutoAdManager singleton object
addAutoLoadAdPlacementIDArray:Add advertising slots that need to be loaded automatically
placementIds: Advertising slot Id arrays that need to be loaded automatically
setLocalExtra: placementID: Set local parameters for the specified advertising slot
placementId: Advertising slot Id
localExtra: local parameters, key can refer to: Documentation

Sample code for calling:

#import <AnyThinkInterstitial/AnyThinkInterstitial.h>

[ATInterstitialAutoAdManager sharedInstance].delegate = self;
// Setting the extra custom parameter will be returned to the Extra of the agent  
// and can be used to match the custom rules of the AD space
 [[ATInterstitialAutoAdManager sharedInstance] setLocalExtra:@{} placementID:@"your iv placementID"]; 
 [[ATInterstitialAutoAdManager sharedInstance] addAutoLoadAdPlacementIDArray:@[@"your iv placementID"]];

2.2. Display ads

method Description
autoLoadInterstitialReadyForPlacementID:Determine whether there are ads that can be displayed in this ad slot
placementId: the ad slot Id to be queried
showAutoLoadInterstitialWithPlacementID: inViewController: delegate:Show this ad slot interstitial ad
placementId: Advertising slot Id to be displayed
inViewController: viewController to display ads  
delegate: proxy object
showAutoLoadInterstitialWithPlacementID: scene: inViewController: delegate:Display this ad slot rewarded video ad
placementId: the ad slot Id to be displayed
scene: scene id, if you don’t differentiate between scenes, you can pass it empty
inViewController: viewController that displays ads
delegate: proxy object

called Sample code:

BOOL isReady = [[ATInterstitialAutoAdManager sharedInstance] autoLoadInterstitialReadyForPlacementID:@"your iv placementID"];
 if (isReady) {    
       [ [ATInterstitialAutoAdManager sharedInstance] showAutoLoadInterstitialWithPlacementID:@"your iv placementID" inViewController:self delegate:self];
 }

2.3 Scene statistics

Statistics on the probability of users reaching the scene, and the data report presented in the background -> Funnel Analysis Report -> reaches the advertising scene, so it is recommended that developers call it in the right place.

MethodDescription
entryAdScenarioWithPlacementID: scenarioID:The corresponding advertising slot enters the business scenario cache status statistics placementId: Advertising slot Id scenarioID: Ad display scenario, the scenario parameters can be created from the background, please refer to Business scenario cache status statistics

Call Sample code for:

/* To collect scene arrival rate statistics, you can view related information https://docs.toponad.com/#/zh-cn/ios/NetworkAccess/scenario/scenario 
Call the "Enter AD scene" method when an AD trigger condition is met, such as: 
** The scenario is a pop-up AD after the cleanup, which is called at the end of the cleanup. 
* 1、Call entryXXX to report the arrival of the scene. 
* 2、Call xxRewardedVideoReadyForPlacementID. 
* 3、Call showXX to show AD view. * (Note the difference between auto and manual) */
[[ATInterstitialAutoAdManager sharedInstance] entryAdScenarioWithPlacementID:@"your iv placement id" scenarioID:@"your scenarioID"];
// Check to see if the AD is ready before showing
if ([[ATInterstitialAutoAdManager sharedInstance] autoLoadInterstitialReadyForPlacementID:@"your iv placement id"]) {
     
   [[ATInterstitialAutoAdManager sharedInstance] showAutoLoadInterstitialWithPlacementID:@"your iv placement id" scene:@"your scenarioID" inViewController:self delegate:self];
}

2.4 Delegate callback

ATAdLoadingDelegate delegate method

MethodDescription
didFinishLoadingADWithPlacementID: Corresponding to Advertising slot id loading success callback
placementId: Advertising slot Id
didFailToLoadADWithPlacementID: error :corresponds to Advertising slot id Loading failure callback
placementId: Advertising slot Id
error: Advertisement loading failure information
didStartLoadingADSourceWithPlacementID: extra :corresponds to An advertising source in the advertising slot id Callback to start loading ads
placementId: Advertising slot Id
extra: Advertising additional parameters
didFinishLoadingADSourceWithPlacementID: extra:corresponds to An advertising source in the advertising slot id Callback for successful loading of advertisements
placementId: Advertising slot Id
extra: Advertising additional parameters
didFailToLoadADSourceWithPlacementID: extra: error:Corresponds to Callback for failure to load ads from an advertising source in the advertising slot id
placementId: advertising slot Id
extra : Advertising additional parameters
error: Ad loading failure information
didStartBiddingADSourceWithPlacementID: extra:corresponds to a certain advertising source in the advertising slot id and the bidding advertisement starts Bidding callback
placementId: Advertising slot Id
extra: Advertising additional parameters
didFinishBiddingADSourceWithPlacementID: extra:corresponds to a certain advertising source in the advertising slot id Callback for successful bidding ad bidding
placementId: Advertising slot Id
extra: Advertising additional parameters
didFailBiddingADSourceWithPlacementID: extra: error:corresponds to An ad source in the ad slot id Callback for failed ad bidding
placementId: ad slot Id
extra: ad additional parameters
error: bid ad failure information


ATInterstitialDelegate delegate Method

MethodDescription
interstitialDidShowForPlacementID: extra:Interstitial ad displayed successfully
interstitialFailedToShowForPlacementID: extra:Interstitial ad display failed
interstitialDidStartPlayingVideoForPlacementID: extra:Interstitial video ad playback begins
interstitialDidEndPlayingVideoForPlacementID: extra:Interstitial video ad play ends
interstitialDidFailToPlayVideoForPlacementID: error: extra:Interstitial video ad playback failed
interstitialDidClickForPlacementID: extra:Interstitial ad click
interstitialDidCloseForPlacementID: extra:Interstitial ads are closed
interstitialDeepLinkOrJumpForPlacementID: extra: result:Whether the interstitial ad click jump is in Deeplink form , currently only returned for TopOn Adx ads
extra: Extended parameter reference Document

Delegate sample code:

#pragma mark - loading delegate
- (void)didStartLoadingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--AD--Start--ATInterstitialViewController::didStartLoadingADSourceWithPlacementID:%@---extra:%@", placementID,extra);
}

- (void)didFinishLoadingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--AD--Finish--ATInterstitialViewController::didFinishLoadingADSourceWithPlacementID:%@---extra:%@", placementID,extra);
}

- (void)didFailToLoadADSourceWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra error:(NSError*)error{
    NSLog(@"ADSource--AD--Fail--ATInterstitialViewController::didFailToLoadADSourceWithPlacementID:%@---error:%@", placementID,error);
}

// bidding
- (void)didStartBiddingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--bid--Start--ATInterstitialViewController::didStartBiddingADSourceWithPlacementID:%@---extra:%@", placementID,extra);
}

- (void)didFinishBiddingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--bid--Finish--ATInterstitialViewController::didFinishBiddingADSourceWithPlacementID:%@--extra:%@", placementID,extra);
}

- (void)didFailBiddingADSourceWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra error:(NSError*)error{
    NSLog(@"ADSource--bid--Fail--ATInterstitialViewController::didFailBiddingADSourceWithPlacementID:%@--error:%@", placementID,error);
}

-(void) didFinishLoadingADWithPlacementID:(NSString *)placementID {
    NSLog(@"ATInterstitialViewController::didFinishLoadingADWithPlacementID:%@", placementID);
}

-(void) didFailToLoadADWithPlacementID:(NSString*)placementID error:(NSError*)error {
    NSLog(@"ATInterstitialViewController::didFailToLoadADWithPlacementID:%@ error:%@", placementID, error);
}

#pragma mark - showing delegate
-(void) interstitialDidShowForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidShowForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialFailedToShowForPlacementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialFailedToShowForPlacementID:%@ error:%@ extra:%@", placementID, error, extra);
}

-(void) interstitialDidFailToPlayVideoForPlacementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidFailToPlayVideoForPlacementID:%@ error:%@ extra:%@", placementID, error, extra);
}

-(void) interstitialDidStartPlayingVideoForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidStartPlayingVideoForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialDidEndPlayingVideoForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidEndPlayingVideoForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialDidCloseForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidCloseForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialDidClickForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidClickForPlacementID:%@ extra:%@", placementID, extra);
}

- (void)interstitialDeepLinkOrJumpForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra result:(BOOL)success {
    NSLog(@"ATInterstitialViewController:: interstitialDeepLinkOrJumpForPlacementID:placementID:%@ with extra: %@, success:%@", placementID,extra, success ? @"YES" : @"NO");
} 

2.5 Other API

方法说明
checkValidAdCachesWithPlacementID:Query all cached information of this ad slot. The first item in the array is the ad data to be displayed.
placementId: the advertising slot Id to be queried

sample code:

// Query all cached information of this ad slot
 NSArray *array = [[ATInterstitialAutoAdManager sharedManager] checkValidAdCachesWithPlacementID:self.placementID];
 NSLog(@"ValidAds.count:%ld--- ValidAds:%@",array.count,array);

3. Sample code

#import <AnyThinkInterstitial/AnyThinkInterstitial.h>

@interface ATInterstitialViewController () <ATAdLoadingDelegate, ATInterstitialDelegate>
@end

@implementation ATInterstitialViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self loadAd];
}

- (void)loadAd {

    [ATInterstitialAutoAdManager sharedInstance].delegate = self;
    [[ATInterstitialAutoAdManager sharedInstance] addAutoLoadAdPlacementIDArray:@[@"your iv placementID"]];
}

- (void)entryAdScenario {
    /* To collect scene arrival rate statistics, you can view related information https://docs.toponad.com/#/zh-cn/ios/NetworkAccess/scenario/scenario 
    Call the "Enter AD scene" method when an AD trigger condition is met, such as: 
    ** The scenario is a pop-up AD after the cleanup, which is called at the end of the cleanup. 
    * 1、Call entryXXX to report the arrival of the scene. 
    * 2、Call xxRewardedVideoReadyForPlacementID. 
    * 3、Call showXX to show AD view. 
    * (Note the difference between auto and manual) */
    [[ATInterstitialAutoAdManager sharedInstance] entryAdScenarioWithPlacementID:@"your iv placement id" scenarioID:@"your scenarioID"];
}

// show ad
- (void)showInterstitialAd {
       [self entryAdScenario];
       
       BOOL isReady = [[ATInterstitialAutoAdManager sharedInstance] autoLoadInterstitialReadyForPlacementID:@"your iv placement id"];
       
       if (isReady) { 
           [[ATInterstitialAutoAdManager sharedInstance] showAutoLoadInterstitialWithPlacementID:@"your iv placement id" scene:@"your scenarioID" inViewController:self delegate:self]; 
        }
}

#pragma mark - loading delegate
- (void)didStartLoadingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--AD--Start--ATInterstitialViewController::didStartLoadingADSourceWithPlacementID:%@---extra:%@", placementID,extra);
}

- (void)didFinishLoadingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--AD--Finish--ATInterstitialViewController::didFinishLoadingADSourceWithPlacementID:%@---extra:%@", placementID,extra);
}

- (void)didFailToLoadADSourceWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra error:(NSError*)error{
    NSLog(@"ADSource--AD--Fail--ATInterstitialViewController::didFailToLoadADSourceWithPlacementID:%@---error:%@", placementID,error);
}

// bidding
- (void)didStartBiddingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--bid--Start--ATInterstitialViewController::didStartBiddingADSourceWithPlacementID:%@---extra:%@", placementID,extra);
}

- (void)didFinishBiddingADSourceWithPlacementID:(NSString *)placementID extra:(NSDictionary*)extra{
    NSLog(@"ADSource--bid--Finish--ATInterstitialViewController::didFinishBiddingADSourceWithPlacementID:%@--extra:%@", placementID,extra);
}

- (void)didFailBiddingADSourceWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra error:(NSError*)error{
    NSLog(@"ADSource--bid--Fail--ATInterstitialViewController::didFailBiddingADSourceWithPlacementID:%@--error:%@", placementID,error);
}

-(void) didFinishLoadingADWithPlacementID:(NSString *)placementID {
    NSLog(@"ATInterstitialViewController::didFinishLoadingADWithPlacementID:%@", placementID);
}

-(void) didFailToLoadADWithPlacementID:(NSString*)placementID error:(NSError*)error {
    NSLog(@"ATInterstitialViewController::didFailToLoadADWithPlacementID:%@ error:%@", placementID, error);
}

#pragma mark - showing delegate
-(void) interstitialDidShowForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidShowForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialFailedToShowForPlacementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialFailedToShowForPlacementID:%@ error:%@ extra:%@", placementID, error, extra);
}

-(void) interstitialDidFailToPlayVideoForPlacementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidFailToPlayVideoForPlacementID:%@ error:%@ extra:%@", placementID, error, extra);
}

-(void) interstitialDidStartPlayingVideoForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidStartPlayingVideoForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialDidEndPlayingVideoForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidEndPlayingVideoForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialDidCloseForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidCloseForPlacementID:%@ extra:%@", placementID, extra);
}

-(void) interstitialDidClickForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
    NSLog(@"ATInterstitialViewController::interstitialDidClickForPlacementID:%@ extra:%@", placementID, extra);
}

- (void)interstitialDeepLinkOrJumpForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra result:(BOOL)success {
    NSLog(@"ATInterstitialViewController:: interstitialDeepLinkOrJumpForPlacementID:placementID:%@ with extra: %@, success:%@", placementID,extra, success ? @"YES" : @"NO");
}

@end

For detailed interstitial ad sample code, please refer to: Demo’s ATInterstitialViewController class.

4. Advertising platform special configuration instructions

4.1 Sigmob

Rewarded video is used as an interstitial (calling Sigmob's rewarded video API). The Sigmob advertising source of TopOn's background interstitial advertising space needs to be configured with Sigmob's rewarded video ads slot id.

 NSDictionary *extra = @{kATInterstitialExtraUsesRewardedVideo:@YES};
[[ATAdManager sharedManager] loadADWithPlacementID:@"your interstitial placement id" extra:extra delegate:self];


Last modified: 2025-05-30Powered by