全部产品

开屏广告

接入

  1. 初始化开屏广告

    // 初始化开屏广告组件
    self.splashView = [[AliCloudCodeAdSplashView alloc] initWithSlotID:@"广告位" adSize:CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) isFullScreen:NO];
    
    //设置开屏广告组件delegate
    self.splashView.adDelegate = self;
    
    //设置rootViewController
    self.splashView.rootViewController = self;
    
    //如果当前是非全屏模式下的开屏广告,设置自定义展示区域,需要尽量保证开屏素材区域比例为2:3
    CGFloat areaHeight = [UIScreen mainScreen].bounds.size.width * (3.0 / 2.0);
    self.customViewHeight = [UIScreen mainScreen].bounds.size.height - areaHeight;
    UIView *customView = [[UIView alloc] init];
    [self.splashView setCustomView:customView viewHeight:self.customViewHeight];
    
    //开始加载广告数据
    [self.splashView loadAdData];       

  2. 实现广告相关代理

    - (void)aliccAdViewRenderSuccess:(UIView *)aliccAdView {
        UIWindow *keyWindow= nil;
        if (@available(iOS 13.0, *))
        {
            for (UIWindowScene* windowScene in [UIApplication sharedApplication].connectedScenes)
            {
                if (windowScene.activationState == UISceneActivationStateForegroundActive)
                {
                    for (UIWindow *window in windowScene.windows) {
                        if (window.keyWindow) {
                            keyWindow = window;
                            break;
                        }
                    }
                }
            }
        } else {
            for (UIWindow *window in [UIApplication sharedApplication].windows) {
                if (window.keyWindow) {
                    keyWindow = window;
                    break;
                }
            }
        }
        //展示广告
        [keyWindow addSubview:self.splashView];
    }
    

API

  • 属性(property)

    /// 广告代理
    @property (nonatomic, weak) id<AliCloudCodeAdSplashViewDelegate> adDelegate;
    
    /// 设置rootViewController 作为广告点击后present的视图父视图使用,如果不传默认使用keywindow作为父视图
    @property (nonatomic, weak) UIViewController *rootViewController

  • 开屏广告初始化

    /// 广告初始化构造函数
    /// @param slotID slotID
    /// @param adSize 传入广告尺寸 会按照传入的尺寸创建
    /// @param isFullScreen 是否全屏展示
    - (instancetype)initWithSlotID:(NSString *)slotID adSize:(CGSize)adSize isFullScreen:(BOOL)isFullScreen
    

    参数

    类型

    是否必填

    说明

    slotID

    NSString

    广告位ID。

    adSize

    CGSize

    渲染广告位尺寸。

    isFullScreen

    BOOL

    开屏模式,包含:

    • YES: 全屏模式。

    • NO: 非全屏模式,支持底部自定义。

  • 广告数据加载

    /// 创建广告
    - (void)loadAdData;
  • 移除广告

    /// 手动移除广告
    - (void)removeSplashView;
  • 设置开屏广告自定义view

    /// 注意: 仅当非全屏模式下设置有用,且自定义View设置的高度要保证素材展示区域比例为2:3
    /// 布局在当前开屏广告底部用于放置logo等自定义素材,宽度是当前开屏广告的宽度,高度可以自定义
    /// @param view 自定义view
    /// @param height 设置自定view的高度 设置的高度要尽量保证上部素材展示区域比例为2:3
    - (void)setCustomView:(UIView *)view viewHeight:(CGFloat)height;

    参数

    类型

    是否必填

    说明

    view

    UIView

    自定义view

    height

    CGFloat

    自定义view的高度

    说明

    仅当非全屏模式下设置有用,且自定义view设置的高度要尽量保证素材展示区域比例为2:3。自定义view会放置在开屏广告的底部用于放置logo等自定义素材使用,宽度是当前开屏广告的宽度,高度可以自定义。

  • 相关代理说明

    • 通用广告代理

      @protocol AliCloudCodeAdViewProtocol <NSObject>
      
      /// 广告开始加载
      /// @param aliccAdView aliccAdView
      - (void)aliccAdViewLoadStart:(UIView *)aliccAdView;
      
      
      /// 广告数据源加载成功
      /// @param aliccAdView aliccAdView
      - (void)aliccAdViewLoadSuccess:(UIView *)aliccAdView;
      
      
      /// 广告数据源加载失败
      /// @param aliccAdView aliccAdView
      /// @param error error
      - (void)aliccAdViewLoadFail:(UIView *)aliccAdView error:(NSError * __nullable)error;
      
      
      /// 广告渲染成功
      /// @param aliccAdView aliccAdView
      - (void)aliccAdViewRenderSuccess:(UIView *)aliccAdView;
      
      
      /// 广告渲染失败
      /// @param aliccAdView aliccAdView
      /// @param error error
      - (void)aliccAdViewRenderFail:(UIView *)aliccAdView error:(NSError * __nullable)error;
      
      
      /// 广告将要展示
      /// @param aliccAdView aliccAdView
      - (void)aliccAdViewWillVisible:(UIView *)aliccAdView;
      
      
      /// 广告展示
      /// @param aliccAdView aliccAdView
      - (void)aliccAdViewDidVisible:(UIView *)aliccAdView;
      
      
      /// 广告将要关闭
      /// @param aliccAdView aliccAdView
      - (void)aliccAdViewWillClose:(UIView *)aliccAdView;
      
      
      /// 广告关闭
      /// @param aliccAdView aliccAdView
      - (void)aliccAdViewDidClose:(UIView *)aliccAdView;
      
      
      @end
      
    • 开屏广告代理

      /// 开屏广告
      @protocol AliCloudCodeAdSplashViewDelegate <AliCloudCodeAdViewProtocol>
      
      /// 开屏广告: 广告点击事件
      /// @param splashAdView splashAdView
      - (void)aliccAdSplashViewDidClick:(AliCloudCodeAdSplashView *)splashAdView;
      
      /// 开屏广告: "跳过"按钮点击
      /// @param splashAdView splashAdView
      - (void)aliccAdSplashViewDidClickSkip:(AliCloudCodeAdSplashView *)splashAdView;
      
      /// 开屏广告: 倒计时结束事件
      /// @param splashAdView splashAdView
      - (void)aliccAdSplashViewCountdownToZero:(AliCloudCodeAdSplashView *)splashAdView;
      
      
      @end