很多网站运营在是VIVO联调 回传API遇到困难,可以看下下面教程,也可以点击右侧客服收费添加联调,不光是VIVO,其他OPPO,百度,推啊等等都可以对接
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的对应事件