Help Center/Details/

New template to render interstitial ads


The new template rendering interstitial ads developers can choose the size of the ads: divided into full-screen and interstitial, developers can choose the type of ads to be placed in both full-screen and interstitial scenarios, which are picture+video, video only, and picture only.


**Template rendering interstitial ads: **Open by default

SDK version requirements

Dual-ended 3550 and above SDK

Code bit ID creation parameter description:

Template rendering interstitial ads

Instructions for use

The new template rendering interstitial uses the BUNativeExpressFullscreenVideoAd object to call loadAdData to request ads, and the BUNativeExpressFullscreenVideoAd object to call showAdFromRootViewController: to display the ads. By setting the BUNativeExpressFullscreenVideoAdDelegate agent, get the ads, Display, click, close and other callbacks.

Create an ad slot object and request an ad


You need to pass in the ad slot object when requesting an ad, and the ad slot id must be passed in when the ad slot object is created

Required parameters:

Field Definition Field Name Field Type Remarks
SlotID Ad Slot NSString Code Slot ID

Use BUNativeExpressFullscreenVideoAd to create an object, use BUNativeExpressFullscreenVideoAd to call loadAdData to request ads

self.fullscreenAd = [[BUNativeExpressFullscreenVideoAd alloc] initWithSlotID:slotID];
self.fullscreenAd.delegate = self;
[self.fullscreenAd loadAdData];

Receive ads loading results


Callback Method Notes
nativeExpressFullscreenVideoAd:didFailWithError The returned error code (error) indicates the reason why the ad failed to load. Please refer to the link for details of all error codes. Link
nativeExpressFullscreenVideoAdViewRenderFail:error Rendering failed, the rendering failed due to network or hardware reasons, you can replace the mobile phone or network environment test. It is recommended to upgrade to the latest version of the CSJ SDK
nativeExpressFullscreenVideoAdDidLoad Ad material loaded successfully
nativeExpressFullscreenVideoAdDidDownLoadVideo Video/picture download is complete, it is recommended that developers display ads after this callback

BUNativeExpressFullscreenVideoAdDelegate callback description

Callback Method Notes
nativeExpressFullscreenVideoAdDidLoad: This callback enters to prove that the ad material has been successfully loaded
nativeExpressFullscreenVideoAd: didFailWithError: This callback method can locate the error code corresponding to the specific failure reason, and just print the error. Please see the link for details of all error codes. Link
nativeExpressFullscreenVideoAdViewRenderSuccess: Rendering success callback method
nativeExpressFullscreenVideoAdViewRenderFail:error: Entering this callback proves that the rendering failure condition is triggered, and the mobile phone or network environment test can be replaced. It is recommended to directly upgrade to the latest version of the CSJ platform
nativeExpressFullscreenVideoAdDidDownLoadVideo: Advertising is displayed in this callback method to ensure smooth playback and smooth display, and a better user experience.
nativeExpressFullscreenVideoAdWillVisible: New template interstitial ads will be displayed soon callback
nativeExpressFullscreenVideoAdDidVisible: The new template interstitial ad has been displayed callback
nativeExpressFullscreenVideoAdDidClick: Click callback
nativeExpressFullscreenVideoAdDidClickSkip: Clicking to skip will trigger this callback. If you need to do related logic processing when the user clicks to skip, you can handle it in this callback
nativeExpressFullscreenVideoAdWillClose: This callback method knows that the user has closed the advertisement, and the corresponding logic processing when the user closes the advertisement can be performed in this callback method
nativeExpressFullscreenVideoAdDidClose: Clicking the close button will trigger this callback
nativeExpressFullscreenVideoAdDidPlayFinish: This callback will be triggered when the ad is played
nativeExpressFullscreenVideoAdCallback:withType: This callback can know the ad type of the new template interstitial
nativeExpressFullscreenVideoAdDidCloseOtherController: interactionType: This callback is called when the ad jumps to another controller and the controller is closed. InteractionType: This parameter can be distinguished from the opened appstore/webpage/video ad details page

By setting BUNativeExpressFullscreenVideoAdDelegate agent, get callbacks such as advertisement, display, click, and close. For other proxy methods, please refer to the section of BUDExpressFullScreenVideoViewController#pragma mark-BUFullscreenVideoAdDelegate in demo

Display ads

Call the showAdFromRootViewController: method to display the new template interstitial ad, where the currently displayed page needs to be passed in. Be sure to set rootViewController, which is the viewController needed to display ads and jump landing pages. It is recommended that developers display ads after receiving the nativeExpressFullscreenVideoAdDidDownLoadVideo callback to ensure playback and display Effect.

Show new templates to render interstitial ads

//WKWebview will be rendered during show. It is recommended to display up to three ads at a time. If there are more than 3, it will cause WKWebview rendering to fail. Of course, under normal circumstances, only one full-screen video will be shown at a time
if (self.fullscreenAd) {
   [self.fullscreenAd showAdFromRootViewController:self];


Display ads after receiving the nativeExpressFullscreenVideoAdDidDownLoadVideo callback to ensure the playback and display effects.

-(void)nativeExpressFullscreenVideoAdDidDownLoadVideo:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd {
//After the callback, display the advertisement to ensure the playback and display effect

Reload the ad after the ad is shown

**The ads with the same request can only be counted for one impression at most, and repeated impressions will be filtered by the system. ** Therefore, it is recommended that developers set the original ad object to nil in the nativeExpressFullscreenVideoAdDidClose callback after the user has watched the ad to ensure that the ad object is the new request object

-(void)nativeExpressFullscreenVideoAdDidClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd {
//In this callback method, the advertisement can be blanked


  1. rootViewController must be set to handle ad jumps. All jumps in the SDK adopt the method of present. Please ensure that the rootViewController passed in cannot be empty and no other controllers are presented, otherwise the presentedViewController will already exist and the presentation will fail.
  2. nativeExpressFullscreenVideoAdViewRenderSuccess The rendering success callback will return after ** the ad is displayed**
  3. In order to ensure smooth playback and smooth display, and a better user experience, the advertisement will be displayed after receiving the nativeExpressFullscreenVideoAdDidDownLoadVideo callback
  4. Determine whether the ad is effective directly using self.fullscreenAd to judge
  5. Personalized template ads In order to optimize the display speed, local templates will be used, and relevant data will be intercepted when requesting. If the access party is using the H5 page to send the request, the request body will be cleared, and the other logic will remain unchanged. If you use body transmission Please change to other methods. For example: jsBridge method.
  6. Every time data is requested, a new BUNativeExpressFullscreenVideoAd object needs to be reinitialized. Do not reuse the locally cached full-screen video object for multiple display.


For detailed access, please refer to the BUDExpressFullScreenVideoViewController class in Demo, the advertisement loading request part can refer to the loadFullscreenVideoAdWithSlotID method, and the advertisement display part can refer to the showFullscreenVideoAd method

Did the content solve your problem?
Contact us