菜单

横幅广告

💡Tips

  • 🚀 采用预加载机制提升用户体验
  • ⚠️ 注意处理生命周期防止内存泄漏
  • 🔧 推荐使用标准化回调处理流程

1. 集成建议

宽高设置需要与在Taku后台配置的宽高比一致,并根据实际效果进行调整。


2. 加载广告

objective-c 复制代码
//导入头文件
#import <AnyThinkBanner/AnyThinkBanner.h>

@interface BannerVC () <ATADXPublicLoadingDelegate, ATADXPubBannerDelegate>

@property (nonatomic, strong) ATADXBannerAd *bannerAd;

@end

@implementation BannerVC

//广告位ID
#define BannerPlacementID @"对应广告位id"

//场景ID,可选,可在后台生成。没有可传入空字符串
#define BannerSceneID @""

//请注意,banner size需要和后台配置的比例一致
#define BannerSize CGSizeMake(320, 50)

#pragma mark - Load Ad 加载广告
  /// 加载广告 
- (void)loadAd {      
    NSMutableDictionary * loadConfigDict = [NSMutableDictionary dictionary];
    [loadConfigDict setValue:[NSValue valueWithCGSize:BannerSize] forKey:kATAdLoadingExtraBannerAdSizeKey];
    
    // 设置自定义参数
    // [loadConfigDict setValue:@"media_val_BannerVC" forKey:kATAdLoadingExtraMediaExtraKey];
    ATADXBannerAd *adInfo = [[ATADXBannerAd alloc] initAdWithPlacementId:BannerPlacementID];
    adInfo.extra = loadConfigDict;
    adInfo.loadDelegate = self;
    adInfo.showDelegate = self;
    self.bannerAd = adInfo;
    // 开始加载
    [adInfo loadAd];
}

#pragma mark - ATADXPublicLoadingDelegate
/// 广告位加载完成
- (void)didFinishLoadingADXItem:(ATADXBaseAd *)item bannerView:(UIView *)bannerView {
}

/// 广告位加载失败
- (void)didFailToLoadADXItem:(ATADXBaseAd *)item
                       error:(NSError*)error {
}

3. 展示广告

objective-c 复制代码
#pragma mark - Show Ad 展示广告
/// 展示广告
- (void)showAd {
    // 场景统计功能,呈现在后台的 数据报表 -> 漏斗分析报表 -> 到达广告场景 ,在展示广告前调用。可选接入
    // [[ATAdManager sharedManager] entryBannerScenarioWithPlacementID:BannerPlacementID scene:BannerSceneID];

    // 检查是否有就绪
    BOOL isReady = [self.bannerAd isReady];
    if (!isReady) {
        return;
    }
    
    // 展示配置,Scene传入后台的场景ID,没有可传入空字符串,showCustomExt参数可传入自定义参数字符串
    ATShowConfig *config = [[ATShowConfig alloc] initWithScene:BannerSceneID showCustomExt:@"testShowCustomExt"];
    [self.bannerAd showBannerViewWithConfig:config];
  	// 展示广告
    UIView *bannerView = self.bannerAd.bannerContainerView;
    if (bannerView != nil) {
        // 赋值
        bannerView.delegate = self;
        bannerView.presentingViewController = self;
        bannerView.translatesAutoresizingMaskIntoConstraints = NO;
        [self.view addSubview:bannerView];
        self.bannerView = bannerView;
        
        // 布局
        [self.bannerView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.centerX.mas_equalTo(self.view);
            make.height.equalTo(@(BannerSize.height));
            make.width.equalTo(@(BannerSize.width));
            make.top.equalTo(self.textView.mas_bottom).offset(5);
        }];
    }
}

#pragma mark - ATADXPubBannerDelegate

/// 横幅广告已展示
- (void)adxBannerDidShowAd:(ATADXBaseAd *)item {
}

/// 横幅广告被点击
- (void)adxBannerDidClick:(ATADXBaseAd *)item {
}

/// 关闭按钮点击
- (void)adxBannerDidTapCloseButton:(ATADXBaseAd *)item {
}

/// 横幅广告已打开或跳转深链接页面
- (void)adxBannerDidDeepLinkOrJump:(ATADXBaseAd *)item result:(BOOL)success {
}

4. 销毁广告

objc 复制代码
#pragma mark - 销毁广告
- (void)removeAd { 
  if (self.bannerAd) {
    [self.bannerAd destroy];
  }
}

5. 客户端竞价

可参考此文档:客户端竞价

最近修改: 2025-12-03Powered by