SDK数据接口使用指南
1. 简介:
数据接口适用范围: 轮播图(HeadlineView), 开屏(Splash), 信息流(Feeds)
2. 典型应用场景
- Step1: 创建用于获取创意数据的实例
在对应的文件中 #import “MMUNativePromoterManager.h”
_mPromoterManager = [[MMUNativePromoterManager alloc] initWithSlotId:@"22030713" layoutType:MMULayoutTypeFeeds];
_mPromoterManager.delegate = (id<MMUNativePromoterManagerDelegate>)self;
- Step2: 请求创意数据
[_mPromoterManager requestPromoterDataInBackground];
- Step3: 通过回调事件获取创意数据
- (void)promoterManager:(MMUNativePromoterManager *)manager didLoadDataFinishedWithPromoters:(MMUMamaResponse *)response
{
NSArray *creatives = [response creatives]; // 创意数据
}
- Step4: 创意被展现时,调用处理创意展现的接口
[_mPromoterManager sendImpressionReportForPromoters:shownPromoters fromResponse:self.mResponse];
- Step5: 创意被点击时,调用处理创意点击的接口
[_mPromoterManager didClickedPromoter:clickedPromoter fromResponse:self.mResponse];
- Step6: 自定义事件的上报
[_mPromoterManager sendCustomEvent:romoter withEventId:@"Your event ID" data:@"Your data"];
目前自定义事件主要用于视频创意播放事件的上报,描述如下:
时间ID | 对应的data | 描述 |
---|---|---|
1001 | 用户自定义附加信息 | 手动播放事件 |
1002 | 用户自定义附加信息 | 播放开始事件 |
1003 | 用户自定义附加信息 | 播放中止事件 |
6 | 用户自定义附加信息 | 播放结束事件 |
3.数据结构说明:
- MMUMamaResponse
- (nonnull NSArray<MMUMamaPromoter *> *)creatives; // 创意列表
- (nonnull NSDictionary *)settings; // 创意展现相关的一些控制信息
- (nullable NSDictionary *)azSettings; // 推广位相关的一些信息
- (nullable NSDictionary *)platformInfo; // 针对特定平台描述信息
-(NSDictionary*)platformInfo返回结构 如下:
字段名 | 类型 | 描述 |
---|---|---|
addInfo | dict | 第三方平台的数据信息 |
name | string | 平台名字 |
type | string | 平台编号 |
- MMUMamaPromoter
@property (nonatomic, readonly, copy) NSString *promoterId; // 创意ID
- (NSDictionary *)materials; // 创意元信息,key会根据创意所属的模板类型有所变化
- (NSDictionary*)effects; //创意效果配置信息
- (NSDictionary *)providerInfo; //创意广告商、角标信息
-(NSDictionary*)effects 如下:
字段名 | 类型 | 描述 | 注释 |
---|---|---|---|
play_type | int | 自动播放方式 | 1.手动播放;2.自动播放;3.仅WiFi自动播放 |
duration | int | 显示时长 | 单位:秒。例:开屏图片创意显示时长、等等 |
-(NSDictionary*)providerInfo 如下:
字段名 | 类型 | 描述 | 注释 |
---|---|---|---|
name | string | 广告商名称 | |
icon | dict | 广告商角标信息 | -- |
其中icon结构如下:
字段名 | 类型 | 描述 | 注释 |
---|---|---|---|
icsz | dict | 角标尺寸 | |
iccu | string | 角标点击地址 | |
icu | string | 角标地址 | |
icpos | int | 角标位置 | -1: 未设置 0: 未启用 1: 左上角 2: 左下角 3: 右上角 4: 右下角 5: 不限定 |
其中icsz结构如下:
字段名 | 类型 | 描述 | 注释 |
---|---|---|---|
width | int | 角标宽 | |
height | int | 角标高 | -- |
4.templateType说明:
不同的渲染模板,对应的 MMUMamaPromoter 中的 materials 信息会有差异,具体的映射关系为:
templateType = 1
字段名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
title | string | N | 标题描述 |
price | string | N | 原价 |
promoprice | string | N | 折扣价 |
sell | string | N | 销量 |
img_url | string | Y | 图片地址 |
渲染示例
templateType = 2
字段名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
title | string | Y | 标题描述 |
sub_title | string | Y | 副标题 |
img_url | string | Y | 图片地址 |
渲染示例
templateType = 3
字段名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
title | string | Y | 标题描述 |
img_url | string | Y | 图片地址 |
渲染示例
templateType = 9
字段名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
title | string | Y | 标题描述 |
price | string | N | 原价 |
promoprice | string | N | 折扣价 |
sell | string | N | 销量 |
img_url | string | Y | 图片地址 |
渲染示例
templateType = 10
字段名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
price | string | Y | 标题 |
video_url | string | Y | 视频地址 |
img_url | string | Y | 图片地址 |
渲染示例
templateType = 11
字段名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
title | string | Y | 标题 |
video_url | string | Y | 视频地址 |
img_url | string | Y | 图片地址 |
渲染示例
templateType = 0
动态模板,因为模板中的字段都是在网站端个性化定制的,所以,UI渲染和点击的处理需要您自行完成。
注:SDK的接口调用与模板类型无关,必须按照Part2部分严格执行,否则事件统计会有遗漏
5.Settings说明:
焦点图样式
字段名 | 类型 | 描述 | 注释 |
---|---|---|---|
dt | int | 展示时间 | display time |
开屏样式
字段名 | 类型 | 描述 | 注释 |
---|---|---|---|
dt | int | 展示时间 | displayTime |
ec | int | 允许点击 | enalbe click |
esc | int | 允许点击跳过 | enable skip click |
6.azSettings说明:
焦点图样式
字段名 | 类型 | 描述 | 注释 |
---|---|---|---|
fridx | int | 创意帧在焦点图中的位置 | 只有在单帧管理时返回 |
7.其它说明:
- 媒体自定义标签
媒体自定义的标签可以通过 MMUNativePromoterManager 实例的 mTags 属性回传
@property (nonatomic, copy) NSString *mTags; // 当前用户的标签信息
格式:属性:标签1,标签2,... 多组属性用分号隔开
- 数据流调试
SDK支持数据流调试功能,开启该功能后,即可通过console查看SDK数据加载过程中主要节点的状态信息,方便排查数据加载问题。该功能默认为关闭(建议仅在debug状态下开启)
@property (nonatomic, assign) MMULogLevel logLevelMask;
开启示例:
#ifdef DEBUG // 建议仅在debug模式下开启
[MMUSDK sharedInstance].logLevelMask = MMULogoLevelInfo;
#endif
- 特例说明
受百度信息流SDK使用方式限制,对于百度SDK返回的数据,目前尚不支持完 全自定义UI,UI渲染这块需要基于百度提供的view做进一步的开发,有一定的额外开发工作,需要您根据我们返回的平台信息做区分处理,详情请参考SDK中的Demo
NSNumber *platformType = [response.platformInfo objectForKey:@"type"];
if (MMUAdNetworkTypeBaiduMobAd == [platformType integerValue]) //判断平台类型
{
//百度
}