原生广告大概有如下几种分类:
1、无线墙
2、文字链
3、信息流 广告以资讯信息流的形式推送给用户。可以参考百度的信息流广告,查看其展示平台、信息流样式及计费方式。http://e.baidu.com/feed/intro?subsite=bj
4、焦点图
5、内嵌墙
每个原生广告所需要的属性如下:
// 原生广告属性枚举
enum NativeField {
// 标题;
TITLE = 1;
// 广告语;
AD_WORDS = 2;
// 描述;
DESC = 3;
// 主题图;
IMGS = 4;
// 小图标;
ICON = 5;
// click_url;
CLICK_URL = 6;
// download_url;
DOWNLOAD_URL = 7;
// deep_link;
DEEP_URL = 8;
};
DEEP_URL表示当你点击这个链接时打开某个应用。
关于DEEP_URL详情参考:http://www.woshipm.com/operate/287961.html
那么在ProtoBuf的RTB竞价协议中就可以对原生广告做出定义了,其 BidRequest请求协议中对原生广告定义如下:
// 原生广告
message Native {
// 属性集合
repeated NativeField fields = 1;
// 标题最大长度
optional uint32 title_max = 2;
// 描述或者广告语最大长度
optional uint32 desc_max = 3;
// 图片宽度
optional uint32 image_width = 4;
// 图片高度
optional uint32 image_height = 5;
// 允许图片数量
// 1: 单张图片, 2: 2张图片, 3: 3张图片
optional uint32 image_nums = 6;
}
其中通过fields来标识本次原生广告需要的一些素材,而Native对象中还对一些素材的属性进行了详细的描述。
那么在BidRequest中可以定义message Ads对象,将原生请求对应的素材返回去即可,主要的属性如下:
message Ads {
// DSP声明的广告创意类型
// 1:图片, 2:原生, 3:文字, 4:图文, 5:HTML, 6:视频, 7:动画
optional uint32 creative_type = 4;
// 原生广告属性信息
message Attr{
// 属性名 参见 属性集合
required string name = 1;
// 属性值
required string value = 2;
}
repeated Attr attr = 9;
}
其中省略了许多的属性,如一些反馈地址,素材信息等。
假如现在要请求的原生广告为三图样式:
那么这个三图样式需要有TITLE、IMGS、CLICK_URL,其中IMGS需要3幅图片,那么在Attr中可以约定为其返回三个图片的URL即可。