本节将为您介绍蹊径落地页的相关接口。
在了解下方接口前,需要理解落地页制作工具运营模板和私有模板的概念,需要先获取到合适的运营或私有模板 id,此后,调用获取模板接口,根据返回的模板进行数据填充,再调用创建和送审接口,需要时,可以调用删除接口进行删除。
模板 id 的获取:
制作端, 使用某个模板, url 上有 templateId 字段
公共请求参数是指每一个接口都需要使用到的参数。详情参考,代码案例参考。
参数名称 | 参数类型 |
---|---|
access_token | 授权令牌,完成 OAuth 2.0 授权后获得,参考【授权认证】章节 |
timestamp | 当前的时间戳,单位为秒,允许客户端请求最大时间误差为 300 秒。MarketingAPI 所使用的时间戳,若无特殊说明,均为秒级时间戳 MarketingAPI 所使用的时区为 GMT+8,例如当时间戳为 1494840119 时,表示 2018-05-15 17:21:59 |
nonce | 随机字串标识,不超过 32 个字符,由调用方自行生成,需保证全局唯一性 |
fields | get 接口增加 fields 字段,用于指定返回参数的字段列表,为选填字段。如不填写,则根据默认值进行返回 |
请求地址:
xijing_page/list
请求方法:
GET
请求参数:
名称 | 类型 | 描述 |
---|---|---|
account_id | integer | 推广帐号 id,有操作权限的帐号 id,包括代理商和广告主帐号 id,必填 |
page_id | integer | 蹊径落地页 id,非必填 |
page_name | string | 蹊径落地页名称,非必填 |
page_type | string[] | 蹊径落地页类型,非必填 |
page_status | string[] | 蹊径落地页状态,非必填 |
page_publish_status | string[] | 蹊径落地页发布状态,非必填 |
page_last_modify_start_time | string | 蹊径落地页最后修改时间,查询时间开始范围,非必填 |
page_last_modify_end_time | string | 蹊径落地页最后修改时间,查询时间结束范围,非必填 |
page_size | integer | 查询数据量大小,非必填 |
page_index | integer | 查询数据量偏移,非必填 |
请求实例:
curl -G 'https://api.e.qq.com/v1.1/xijing_template/get?access_token=<ACCESS_TOKEN>×tamp=<TIMESTAMP>&nonce=<NONCE>&account_id=<ACCOUNTID>'
应答示例:
{
"code": 0,
"message": "",
"data": {
"total_pages": 322, // 落地页总数
"page_size": 10, // 查询展示数据量
"page_index": 1, // 查询展示偏移量
"list": [ // 落地页列表
{
"page_id": 1003124,
"page_name": "pageName1",
"page_type": "XJ_ANDROID_APP_H5",
"page_publish_status": "LANDING_PAGE_STATUS_UNPUBLISH",
"page_status": "LANDING_PAGE_STATUS_EDITING",
"page_last_modify_time": "2020-08-04T10:04:22",
}
],
"mobile_app_id": "" // app id
}
}
各落地页仅展示该落地页“线上版本”的状态,对于副本的状态未予以展示。 落地页副本:编辑已发布状态的落地页并保存或送审时,系统会生成一份落地页副本。
类型 | 说明 |
---|---|
XJ_DEFAULT_H5 | 默认落地页 |
XJ_ANDROID_APP_H5 | Android应用落地页 |
XJ_IOS_APP_H5 | IOS应用落地页 |
XJ_WEBSITE_H5 | 网页落地页 |
XJ_ANDROID_APP_NATIVE | android app原生落地页 |
XJ_IOS_APP_NATIVE | ios app原生落地页 |
XJ_WEBSITE_NATIVE | 原生落地页 |
XJ_FENGLING_LBS | 风铃电商 |
以下是page_publish_status的说明
类型 | 说明 |
---|---|
LANDING_PAGE_STATUS_UNPUBLISH | 草稿:“保存”和“未送审”的落地页处于草稿状态,不可用于广告投放,只有“送审”后才会进入落地页审核。 |
LANDING_PAGE_STATUS_PUBLISHED | 已发布:审核通过的落地页即处于已发布状态。 |
LANDING_PAGE_STATUS_OFFLINE | 审核下线:已审核通过的落地页,可能因为侵权、被投诉或不符合新规等原因被审核人员下线。修改后可重新送审。 |
LANDING_PAGE_STATUS_DELETING | 落地页删除中 |
LANDING_PAGE_STATUS_DELETED | 落地页已删除 |
以下是page_status的说明
类型 | 说明 |
---|---|
LANDING_PAGE_STATUS_EDITING | 编辑中 |
LANDING_PAGE_STATUS_PENDING | 审核中:送审后,审核人员一般需要2-3小时完成审核,这期间的落地页处于审核状态。 |
LANDING_PAGE_STATUS_APPROVED | 审核通过 |
LANDING_PAGE_STATUS_REJECTED | 审核不过:落地页存在违规内容,审核拒绝。修改后可重新送审。 |
LANDING_PAGE_STATUS_DELETED | 操作版本已删除 |
请求地址:
xijing_template/get
请求方法:
GET
请求参数:
名称 | 类型 | 描述 |
---|---|---|
account_id | integer | 推广帐号 id,有操作权限的帐号 id,包括代理商和广告主帐号 id |
template_id | integer | 蹊径落地页模板 id,公共的营销模板 id,或有权限的私有模板 id |
请求实例:
curl -G 'https://api.e.qq.com/v1.1/xijing_template/get?access_token=<ACCESS_TOKEN>×tamp=<TIMESTAMP>&nonce=<NONCE>' \
-d 'account_id=<ACCOUNT_ID>' \
-d 'template_id=<TEMPLATE_ID>'
应答示例:
{
"code": 0,
"message": "",
"data": {
"page_template_id": 1006, // 模板 id
"page_type": "PAGE_TYPE_XIJING_ANDROID", // 模板类型,支持 PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS、PAGE_TYPE_XIJING_WEBSITE
"page_name": "", // 落地页名称,用于管理
"page_title": "", // 落地页标题,用于展示
"component_spec_list": [ // 组件列表
{
"type": "COMPONENT_TYPE_IMAGES",
"image_list_spec": {
"image_list": [
{
"image_id": ""
}
]
}
},
{
"type": "COMPONENT_TYPE_BUTTON",
"button_spec": {
"text": ""
}
}
],
"mobile_app_id": "" // app id
}
}
以上是获取到的模板,我们需要填充模板的空白字段,此后,将填充好的模板+数据用于创建接口
以下是模板的详细解释
{
"code": 0,
"message": "",
"data": {
"page_template_id": 1006, // 模板 id
"page_type": "PAGE_TYPE_XIJING_ANDROID", // 模板类型,支持 PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS、PAGE_TYPE_XIJING_WEBSITE
"page_name": "", // 落地页名称,用于管理
"page_title": "", // 落地页标题,用于展示
"component_spec_list": [ // 组件列表
],
"mobile_app_id": "" // Android 或 iOS app id
}
}
PAGE_TYPE_XIJING_WEBSITE 类型的模板不会返回 mobile_app_id
page_type 枚举值如下
PAGE_TYPE_XIJING_WEBSITE
PAGE_TYPE_XIJING_ANDROID
PAGE_TYPE_XIJING_IOS
支持 PAGE_TYPE_XIJING_WEBSITE、PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS
{
"type": "COMPONENT_TYPE_VIDEO",
"video_spec": {
"video_id": "" // 调用 Marketing API 视频上传接口返回的视频 id
}
}
{
"type": "COMPONENT_TYPE_TEXT",
"text_spec": {
"text": "", // 普通文本
"rich_text": "" // 富文本
}
}
text 和 rich_text 字段互斥,根据模板的设置,只会返回其中一个
支持 PAGE_TYPE_XIJING_WEBSITE、PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS
{
"type": "COMPONENT_TYPE_IMAGES",
"image_list_spec": {
"image_list": [
{
"image_id": "", // 调用 Marketing API 图片上传接口返回的图片 id
"hot_area": [
// hot_area 字段只会在 PAGE_TYPE_XIJING_WEBSITE 类型的落地页设置了热区之后出现,因 PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS 类型的落地页的热区不需要设置 url,所以没有该字段
{
"url": "" // 热区跳转的外部链接
},
{}, // 如果热区不是跳转到外部链接,则返回空对象
{
"url": ""
}
]
},
{
"image_id": ""
}
]
}
}
支持 PAGE_TYPE_XIJING_WEBSITE、PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS
{
"type": "COMPONENT_TYPE_BUTTON",
"button_spec": {
"text": "", // 按钮文案
"url": "" // url 字段只在 PAGE_TYPE_XIJING_WEBSITE 类型的落地页出现,PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS 类型的落地页不需要 url,所以不返回
}
}
支持 PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS
{
"type": "COMPONENT_TYPE_APP_INFO_BUTTON",
"app_info_button_spec": {
"text": "" // 组件中部的 APP 描述
}
}
支持 PAGE_TYPE_XIJING_ANDROID、PAGE_TYPE_XIJING_IOS
{
"type": "COMPONENT_TYPE_FIXED_BUTTON",
"fixed_button_spec": {
"desc": "", // 下载描述字段 (app log 的样式)
"text": "" // 下载按钮文案 (一个按钮的样式)
}
}
desc、text 两个字段互斥,根据模板设置,只会返回其中一个
{
"type": "COMPONENT_TYPE_GAME_DEMO",
"game_demo_spec": {
"game_url": "", // 游戏链接, https 协议, 必填
"cover_image_id": "", // 封面图, 如果是空字符串, 则采用模板的封面图, 如果模板没有封面图, 则保持没有封面图, 如果指定图片 id, 则以该字段为主
"button_text": "立即下载", // 普通下载按钮样式对应的下载按钮文案, 最大字符数: 20
"button_desc": "下载描述", // 卡片样式(左 app logo, 中间文字, 右边按钮)对应的下载描述, 最大字符数: 18
"wait_time": 3 // 按钮入场等待时间, 单位: 秒
}
}
button_text 与 button_desc 互斥, 根据模板设置只会返回一个
button_text, button_desc, wait_time 只有在启用了 "下载按钮" 开关, 才会返回
支持 PAGE_TYPE_XIJING_WEBSITE
{
"type": "COMPONENT_TYPE_LINK",
"link_spec": {
"text": "", // 链接文本
"url": "" // 链接地址
}
}
{
"type": "COMPONENT_TYPE_LAYER_CARD",
"layer_card_spec": {
"text": "", // 浮层页卡下载按钮 必填
"description": "", // app应用描述 必填
"image_list": [
"" // 浮层页卡轮播图图片adsId
]
}
}
请求地址:
xijing_page/add
请求方法:
POST
请求参数:
名称 | 类型 | 描述 |
---|---|---|
account_id | integer | 推广帐号 id,有操作权限的帐号 id,包括代理商和广告主帐号 id |
is_auto_submit | integer | 1 为自动送审,其它值或不填,则只创建,后期自行调用接口送审 |
pages | struct[] | 模板填充数据列表,每个元素为填充完成的模板 |
{
"account_id": 20458,
"is_auto_submit": 1, // 是否自动送审
"pages": [
{
"page_template_id": 1003, // 模板 id,保持与模板一致
"page_type": "PAGE_TYPE_XIJING_ANDROID", // 落地页类型,保持与模板一致
"page_name": "落地页名称", // 落地页名称, 用于管理
"page_title": "落地页标题", // 落地页标题,用于展示
"component_spec_list": [], // 组件列表
"mobile_app_id": "" // app id
}
]
}
请求参数示例(application/json):
{
"account_id": 20458,
"pages": [
{
"page_template_id": 1006,
"page_type": "PAGE_TYPE_XIJING_ANDROID",
"page_name": "落地页名称 - 用于管理",
"page_title": "落地页标题 - 用于展示",
"component_spec_list": [
{
"type": "COMPONENT_TYPE_VIDEO",
"video_spec": {
"video_id": "1540"
}
},
{
"type": "COMPONENT_TYPE_TEXT",
"text_spec": {
"text": "hi 蹊径落地页"
}
},
{
"type": "COMPONENT_TYPE_IMAGES",
"image_list_spec": {
"image_list": [
{
"image_id": "1000437"
}
]
}
},
{
"type": "COMPONENT_TYPE_BUTTON",
"button_spec": {
"text": "123"
}
},
{
"type": "COMPONENT_TYPE_APP_INFO_BUTTON",
"app_info_button_spec": {
"text": "底部下载图的描述"
}
},
{
"type": "COMPONENT_TYPE_FIXED_BUTTON",
"fixed_button_spec": {
"desc": "下载描述文案"
}
}
],
"mobile_app_id": "1104790111"
}
]
}
应答示例:
{
"code": 0, // 0 为成功,68031 为失败,68030 为部分失败
"message": "",
"data": [
{
"id": "576460752303438398",// 落地页服务id
"landingPageId": "523034383985764607",// 落地页Id
"message": "操作成功",
"code": 0 // 0 为成功
}
]
}
请求地址:
xijing_page_by_components/add
请求方法:
POST
请求参数:
名称 | 类型 | 描述 |
---|---|---|
account_id | integer | 推广帐号 id,有操作权限的帐号 id,包括代理商和广告主帐号 id |
is_auto_submit | integer | 1 为自动送审,其它值或不填,则只创建,后期可自行调用接口送审 |
pages | struct[] | 落地页配置信息列表,每个元素为各个页面的配置信息 |
请求结构体说明:
{
"account_id": 20458,
"is_auto_submit": 1, // 是否自动送审
"pages": [
{
"page_type": "PAGE_TYPE_XIJING_ANDROID", // 落地页类型,目前只支持安卓落地页
"page_name": "落地页名称", // 落地页名称, 用于管理
"page_title": "落地页标题", // 落地页标题,用于展示
"mobile_app_id": "", // app id
"bg_color": "rgba(189, 16, 224, 1)", // 落地页背景色
"bg_image_id": "", // 调用 Marketing API 图片上传接口返回的图片 id
"component_spec_list": [] // 组件列表,当前只支持固定按钮组件及多图组件
}
]
}
多图组件配置说明:
{
"type": "COMPONENT_TYPE_IMAGES", // 组件类型
"image_list_spec": {
"image_list": [
{
"image_id": "1000437", // 调用 Marketing API 图片上传接口返回的图片 id
/* 设置热区,最多设置3个 */
"hot_area": [
{
/* 以下属性不设置均为示例所示默认值,单位均为% */
/* 此处会校验合法性,不合法范围判断:
* top + height > 100
* width + left > 100
* width、height、top、left存在小于0的值
*/
/* 设置热区大小 */
"width": 30, // 宽度
"height": 30, // 高度
/* 设置热区位置 */
"top": 20, // 与顶部距离
"left": 20 // 与左侧距离
}
],
/* 设置图片边距,以下属性不设置均为示例所示默认值,单位均为px */
"padding": [
{
"top": 0,
"right": 0,
"bottom": 0,
"left": 0
}
],
/* 进度条样式,不设置为示例所示默认值 */
"progress_bar": [
{
"color": "rgb(255, 255, 255)",
"backgroundColor": "#1890ff"
}
]
}
]
}
}
固定组件配置说明:
{
"type": "COMPONENT_TYPE_FIXED_BUTTON", // 组件类型
"fixed_button_spec": {
"button_style": "fixedBtn-1", // 按钮类型:fixedBtn-1(app信息类型), fixedBtn-2(纯文案类型), fixedBtn-3(自定义图片类型)
/* 通用配置 */
"common_setting": {
"position": "bottom", // 按钮位置:top,bottom
"white_space": 80, // 留白,防止底部内容被遮挡[0,200]
"distance_to_view_port": 1 // position为top:据viewport顶部的高度,position为bottom:据viewport底部的的距离[0,100]
},
/* 各类型按钮配置
* btn_setting为不同类型的固定按钮的单独配置
* 依据button_style的类型选择下述对应的一个配置信息即可
*/
/* fixedBtn-1(app信息类型)配置 */
"btn_setting": {
"desc": "是兄弟就来", // app类型描述文案,minLength:0,maxLength:18
"background_color": "#1890ff", // 下载点击按钮背景色
"color": "rgb(255, 255, 255)" // 下载点击文字颜色
},
/* fixedBtn-2(纯文案类型)配置 */
"btn_setting": {
"text": "xxxx", // 下载按钮文本,minLength:1,maxLength:18
"background_color": "#1890ff", // 下载点击按钮背景色
"color": "rgb(255, 255, 255)" // 下载点击文字颜色
},
/* fixedBtn-3(自定义图片类型)配置 */
"btn_setting": {
"align": "center", // 图片居中位置:left, center, right
"image_id": "", // 调用 Marketing API 图片上传接口返回的图片 id
"wrapper": {
"padding_left": 0, // 图片左边距[0,100]
"padding_right": 0 // 图片右边距[0,100]
}
}
}
}
试玩组件配置说明:
// 试玩组件与其他组件不兼容
{
"type": "COMPONENT_TYPE_GAME_DEMO", // 组件类型
"game_demo_spec": {
"game_url": "https://game_demo/url"
"cover_image_id": "1000437", // 调用 Marketing API 图片上传接口返回的图片 id
"wait_time": 10, // 入场等待时间
"game_download": false, // 启用游戏内下载
"btn_download": true, // 启用按钮下载
"btn_style": "downLoadBtn", // 按钮类型:downLoadBtn,fixedBtn-1
/* 各类型按钮配置
* btn_setting为不同类型的固定按钮的单独配置
* btn_setting依据button_style的类型选择下述对应的一个配置信息即可
*/
/* downLoadBtn(纯文案类型)配置 */
/* fixedBtn-1(app信息类型)配置 */
"btn_setting": {
"text": "downLoadBtn下载文案", // 下载文案,minLength:0,maxLength:20
"desc": "fixedBtn-1App描述", // app类型描述文案,minLength:0,maxLength:18
"background_color": "#1890ff", // 下载点击按钮背景色
"color": "rgb(255, 255, 255)" // 下载点击文字颜色
"font_size": 16 // 文字大小:16, 18, 20, 22
"border_radius": 4 // 圆角: [0,30]
"top": 0 // 纵向位置: [0,100]
"height": 40 // 仅在类型为downloadBtn时有效:高度: [30,60]
/* left + width <= 100 */
"left": 40 // 横向位置: fixedBtn-1[0,30],downloadBtn[0,80]
"width": 40 // 宽度: fixedBtn-1[70,100],downloadBtn[20,100]
}
}
}
请求参数示例(application/json):
{
"account_id": 20458,
"is_auto_submit": 1,
"pages": [
{
"page_type": "PAGE_TYPE_XIJING_ANDROID",
"mobile_app_id": "应用Id",
"page_name": "落地页名称 - 用于管理",
"page_title": "落地页标题 - 用于展示",
"bg_color": "rgba(189, 16, 224, 1)",
"bg_image_id": "",
"component_spec_list": [
{
"type": "COMPONENT_TYPE_IMAGES",
"image_list_spec": {
"image_list": [
{
"image_id": "1000437",
"hot_area": [
{
"width": 30,
"height": 30,
"top": 20,
"left": 20
}
],
"padding": [
{
"top": 0,
"right": 0,
"bottom": 0,
"left": 0
}
],
"progress_bar": [
{
"color": "rgb(255, 255, 255)",
"backgroundColor": "#1890ff"
}
]
}
]
}
},
{
"type": "COMPONENT_TYPE_FIXED_BUTTON",
"fixed_button_spec": {
"button_style": "fixedBtn-1",
"common_setting": {
"position": "bottom",
"white_space": 80,
"distance_to_view_port": 14
},
"btn_setting": {
"desc": "是兄弟就来",
"background_color": "#1890ff",
"color": "rgb(255, 255, 255)"
}
}
}
]
}
]
}
应答示例:
{
"code": 0, // 0 为成功,68031 为失败,68030 为部分失败
"message": "",
"data": [
{
"id": "576460752303438398",// 落地页服务id
"landingPageId": "523034383985764607",// 落地页Id
"message": "操作成功",
"code": 0 // 0 为成功
}
]
}
请求地址:
xijing_page/update
请求方法:
POST
请求参数示例(application/json):
{
account_id: 123456,
is_submitted_for_review: true,
page_id_list: ["576460752303438398", "576460752303438399", "..."]
}
应答示例:
{
"code": 0, // 0 为送审成功,68033 为送审失败,68032 为部分送审失败
"message": "",
"data": [
{
"id": "576460752303438398",
"message": "操作成功",
"code": 0 // 0 为成功,其它值为失败
},
{
"id": "576460752303438399",
"message": "操作成功",
"code": 0
},
{
"id": "...",
"message": "操作成功",
"code": 0
}
]
}
请求地址:
xijing_page/delete
请求方法:
POST
请求参示例(application/json)
{
"account_id": 123456,
"page_id_list": ["576460752303438398", "576460752303438399", "..."]
}
应答示例:
{
"code": 0, // 0 为删除成功,68035 为删除失败,68034 为部分删除失败
"message": "",
"data": [
{
"id": "576460752303438398",
"message": "操作成功",
"code": 0 // 0 为成功,其它值为失败
},
{
"id": "576460752303438399",
"message": "操作成功",
"code": 0
},
{
"id": "...",
"message": "操作成功",
"code": 0
}
]
}