弹窗API

1. 概述

为满足广大客户更灵活创建弹窗的诉求,GrowingIO 提供了一套创建弹窗的API。本文档旨在说明一些调用流程,逻辑及相关接口说明。

2. 认证

为保证数据安全,GrowingIO所有的API服务,请求Head中需要携带 Token。
Token 获取详见:GrowingIO接口认证
获取到 Token 后所有的 HTTP 请求头都需要带上 X-Client-Id 和 Authorization,具体如下:
名称
类型
描述
示例
X-Client-Id
string
GrowingIO分配的公钥,请在GrowingIO后台“项目配置”页面获取
X-Client-Id: 123abc
Authorization
string
认证后获取到的Token
Authorization: {替换成获取到的Token}
例子:
X-Client-Id: 7f8it37dxdt91x4n5cvuvccc1cgaqe21
Authorization: EcWylTb23T5yoNMkna51VsyVfGovQHMVc1neljuK5TpqNTz9U5c9Z2BYZLUos244

3. 使用注意

  1. 1.
    接口调用频率限制:单个 Token 调用限制 1200次/分钟。
  2. 2.
    项目UID 指的是访问项目的时候,页面 URL 以 /projects/:project_uid 开头,例如 https://www.growingio.com/admin/projects/nxog09md/dashboard 中的 "nxog09mx"。
  3. 3.
    创建站内消息需要使用分群作为目标用户,分群获取接口参考文档:获取分群列表
  4. 4.
    创建消息需要指定对应应用的 ID,通过以下接口获得(请求Head中均需要携带Token )
GET https://www.growingio.com/api/v1/projects/项目UID/meta/products
返回字段:
字段名
类型
说明
示例
id
string
产品编号
GQPDxPNm
name
string
名字
GrowingIO测试产品
displayName
string
产品显示名称,展示在deeplink页面
gio
activated
bool
是否有效
true
spn
string
spn
www.gioee.com
urlScheme
string
产品的URL Scheme
8137d31f4e7b819f
platform
string
平台
iOS
createdAt
long
创建时间
1522019721098
5. 创建站内消息需要先上传素材到GrowingIO服务,参素材上传接口
6. 接口调用流程:

4. 接口说明

接口:素材上传

URL:https://www.growingio.com/api/v1/projects/:project_uid/meta/marketing_medias
方法:POST
请求对象:
字段名
类型
说明
file
字符串
图片base64编码后的值。
请求示例:
Headers:
Content-Type: application/json
X-Client-Id: 7f8it37dxdt91x4n5cvuvccc1cgaqe22
Authorization: EcWylTb23T5yoNMkna51VsyVfGovQHMVc1
Request Body:
{
"file":"data:image/jpeg;base64,......."
}
返回示例:
{
"url":"https://statics.growingio.com/media/20190813/3/1565873249372/test.jpeg"
}

接口:创建消息

URL:https://www.growingio.com/api/v1/projects/:project_uid/meta/marketing_in_app_messages
方法POST
请求对象:
字段名
类型
是否必填
说明
name
字符串
消息名称。建议使用业务含义名称+时间戳,不可重复,便于在管理后台查看使用。
示例:用户召回弹窗20190716170520
audience
字符串
目标人群。
分群:分群 id
访问用户:visitors
新访问用户:newVisitors
登陆用户:loginUsers
新登录用户:newLoginUsers
rule
对象
消息触发规则配置。
state
字符串
activated:上线(默认)
draft:草稿
stop:下线
archived:归档
content
对象
消息素材,图片的地址。
rule
字段名
类型
是否必填
说明
targets
对象数组
指定产品和跳转页面的关系。
action
字符串
打开应用:appOpen
自定义埋点事件:事件key
limit
数字
本条消息最大展示次数。
startAt
数字
预约上线起始时间,unix时间戳
endAt
数字
预约下线时间unix时间戳
triggerCd
数字
本条消息展示间隔,单位秒。
targets里每个target的结构:
字段名
类型
是否必传
说明
productId
字符串
产品ID,从上面的产品信息接口获取
type
字符串
点击转跳链接类型。
打开网页:“openH5”
打开应用内具体页面:“openUrl”
自定义参数:“custom”
url
字符串
点击跳转路径。网页需要制定具体协议,支持 http/https。
示例:com.growingio.push 或者
https://www.gio.com
parameters
对象
点击跳转携带参数,以 queryString 的形式添加到 url 后面。比如 {"key1": "value1"} 会转化为 "?key1=value1" 添加到 url 后。
示例:{"key1": "value1", "key2": "value2"}
请求示例:
Headers:
Content-Type: application/json
X-Client-Id: 7f8it37dxdt91x4n5cvuvccc1cgaqe22
Authorization: EcWylTb23T5yoNMkna51VsyVfGovQHMVc1
Request Body:
{
"name": "用户召回弹窗",
"audience": "nPNYj7aR",
"rule": {
"targets": [{
"productId": "L9GcmZo6",
"type": "openUrl",
"url": "MainActivity",
"parameters": {
"key1": "value1",
"key2": "value2"
}
},
{
"productId": "a9xVmZo5",
"type": "openUrl",
"url": "ViewController",
"parameters": {
"key1": "value1",
"key2": "value2"
}
}
],
"action": "appOpen",
"limit": 2,
"startAt": 1565870400000,
"triggerCd": 86400
},
"content": "https://k8s-statics.growingio.com/media/20190523/3/1558601993407/test.png"
}
返回示例:
字段名
类型
说明
示例
id
字符串
消息ID
xL9GWJ96
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
{
"id" : "wL9GWJ96"
}

接口:更新消息

URL:https://www.growingio.com/api/v1/projects/:project_uid/meta/marketing_in_app_messages/:message_id
方法:PUT
请求体:同创建消息

接口:删除消息

URL:https://www.growingio.com/api/v1/projects/:project_uid/meta/marketing_in_app_messages/:message_id
方法:DELETE
Headers:
Content-Type: application/json
X-Client-Id: 7f8it37dxdt91x4n5cvuvccc1cgaqe22
Authorization: EcWylTb23T5yoNMkna51VsyVfGovQHMVc1
返回:
HTTP/1.1 204 No Content

接口:获取所有消息

URL: https://www.growingio.com/api/v1/projects/:project_uid/meta/marketing_in_app_messages
方法:GET
Headers:
Content-Type: application/json
X-Client-Id: 7f8it37dxdt91x4n5cvuvccc1cgaqe22
Authorization: EcWylTb23T5yoNMkna51VsyVfGovQHMVc1
返回:消息列表
Last modified 2yr ago