广告类共有属性

简介

由于聚合广告的特殊性,只有在广告最终展示的时候才会知道展示广告的具体信息。SDK提供了接口供开发者在展示最优广告时获取这些广告的信息。

注意:所有广告广告类型从创建到结束过程中均需引用广告管理类,否则无法接收代理回调

三方ADN枚举

// 三方Adn枚举
typedef NS_ENUM (NSInteger, CloooudAdnType) {
  CloooudAdnNoPermission = -3,  // 无权限访问
  CloooudAdnNoData = -2, // 暂时无真实数据,未获取到最佳广告,一般在未展示之前提前调用
  CloooudAdnNone = 0,   // 未知adn
  CloooudAdnPangle = 1,  // 穿山甲adn
  CloooudAdnAdmob = 2,  // 谷歌Admob
  CloooudAdnGDT = 3,   // 腾讯广点通adn
  CloooudAdnMTG = 4,   // Mintegral adn
  CloooudAdnUnity = 5,  // unity adn
  CloooudAdnBaidu = 6,  // 百度adn
  CloooudAdnKs = 7,    // 快手Adn
  CloooudAdnSigmob = 8,  // Sigmob adn
  CloooudAdnKlevin = 9,  // Klevin游可赢
};

接口说明(以开屏广告为例,其他广告类型同):

// 返回显示广告对应的披露信息,当没有权限访问时Ecpm会返回'-3'

- (CloooudRitInfo *)getShowEcpmInfo;

调用示例(以开屏广告为例):

注意:除原生广告外其他广告务必在收到展示回调Visible后访问可获取到正确信息

/**
 This method is called when splash ad slot will be showing.
 */
- (void)splashAdWillVisible:(CloooudSplashAd *_Nonnull)splashAd {
    CloooudD_LogCallback(@"%s", __func__);

    CloooudRitInfo *info = [splashAd getShowEcpmInfo];
    CloooudD_Log(@"ecpm:%@", info.ecpm);
    CloooudD_Log(@"platform:%@", info.adnName);
    CloooudD_Log(@"ritID:%@", info.slotID);
    CloooudD_Log(@"requestID:%@", info.requestID ?: @"None");

    CloooudD_Log(@"waterfallFillFailMessages:%@", [splashAd waterfallFillFailMessages]);
}

原生广告在收到加载回调load之后,即可访问这些属性:

# pragma mark ---<CloooudNativeAdsManagerDelegate>---
- (void)nativeAdsManagerSuccessToLoad:(CloooudNativeAdsManager *_Nonnull)adsManager nativeAds:(NSArray<CloooudNativeAdView *> *_Nullable)nativeAdViewArray {

    CloooudD_Log(@"%s:%ld", __func__, nativeAdViewArray.count);

    for (CloooudNativeAdView *model in nativeAdViewArray) {
        NSUInteger index = rand() % (self.dataSource.count-3)+2;

        model.rootViewController = self;
        model.delegate = self;

        CloooudRitInfo *info = [model getShowEcpmInfo];
        CloooudD_Log(@"ecpm:%@", info.ecpm);
        CloooudD_Log(@"platform:%@", info.adnName);
        CloooudD_Log(@"ritID:%@", info.slotID);
        CloooudD_Log(@"requestID:%@", info.requestID ?: @"None");

        [self.dataSource insertObject:model atIndex:index];
    }

    [self.tableView reloadData];
}