1.广告投放账户创建数据源
2.开发者账户创建App应用 redirectUrl和授权填写的url一致
2.获取授权access_token
授权页面的地址为 https://open-ad.vivo.com.cn/OAuth?clientId={您的client_id}&state={开发者标识}&redirectUri={您的redirectUri}
注意:
client_id 开发者账号创建的应用clientid
redirectUri(回调地址)域名需与申请应用时填写的redirectUri域名一致;
state必填(内容不限)例如:授权的营销平台账户名称或账户ID。
3.get请求授权页面地址将数据上传权限赋予投放账户 此时code和state会通过redirecturl保存到广告主数据库
4、应用程序调用接口用授权码(Authorization Code)获得 access_token,同时获得一个用于刷新 access_token 的 refresh_token;详情参考获取Access Token;
获取Access Token
请求地址
https://marketing-api.vivo.com.cn/openapi/v1/oauth2/token
请求方法
Get
public String getToken(String clientId,String secret,String code) {
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder().url("https://marketing-api.vivo.com.cn/openapi/v1/oauth2/token?client_id="+clientId+"&client_secret="+secret+"&grant_type=code&code="+code)
.method("GET", null)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
参数解释:
client_id 应用 id,在开发者官网创建应用后获得,可通过应用列表 查看
client_secret 应用秘钥 开发者创建的App应用获取
grant_type 获取token方式,目前固定值为code,表示根据authorization_code获得
code 绑定应用的时候获取到的authorization_code值 保存到数据库的code值
5.用户行为数据上传
请求地址
https://marketing-api.vivo.com.cn/openapi/v1/advertiser/behavior/upload
public String send() {
String url = "https://marketing-api.vivo.com.cn/openapi/v1/advertiser/behavior/upload";
String advertiserId = "X";
String nonce = "XX";
String accessToken = "XXX";
String timestamp = "XXXX";
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
String jsonStr = "XX"; //使用请求参数的json串替换,格式如下方示例
RequestBody body = RequestBody.create(mediaType, jsonStr);
Request request = new Request.Builder()
.url(url + "?access_token=" + accessToken + "×tamp=" + timestamp + "&nonce=" + nonce + "&advertiser_id=" + advertiserId)
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
{
"dataList": [{
"creativeId": "CreativeId_0000000000000",
"cvParam": "param1:value1,param2:value2",
"cvTime": 1568617282000,
"cvType": "ACTIVATION",
"userId":"oaidKSByShAaVlpqwWbECdNVqKVJAcTtCOrKGXisGyJQXqcQgIwNoGpZwAjpDUWt",
"dlrSrc": "DlrSrc0",
"userIdType": "oaid",
"requestId": "RequestId_111111111111122",
"CvCustom": "ddddddddd"
}
],
"pageUrl": "abc",
"pkgName": "com.vivo.sen2",
"srcId": "ds-201909120272",
"srcType": "app"
}
注意
post请求url路径上面需要带上几个参数
userId 为oaid时候只能为vivo的设备的oaid 否则会提示oaid错误\
access_token 授权令牌,完成 OAuth 2.0 授权后获得,参考Oauth2.0授权-授权流程章节。
以Query Parameter方式在请求路径中传递。
nonce
随机字串标识,不超过32个字符,由调用方自行生成,需保证全局唯一性。
以Query Parameter方式在请求路径中传递。(每个字符串只能用一次)
timestamp 当前的时间戳,单位为毫秒,允许客户端请求最大时间误差为600秒。MarketingAPI 所使用的时间戳,若无特殊说明,均为毫秒级时间戳。MarketingAPI 所使用的时区为GMT+8,例如当时间戳为1598451101338时,表示 2020-08-26 22:11:41
以Query Parameter方式在请求路径中传递。
advertiser_id 账户ID。
如果授权帐号是二代账户,需要填写要操作的对应投放账户id(可通过查询二代下属广告主接口获取,取UUID字段);
如果授权账户是广告主投放账户则可以不填;
以Query Parameter方式在请求路径中传递。
请求成功之后 可在投放账户数据源查看App的对应事件