最近小程序想要投放广告,希望能根据用户数据来分析,并作出运营方面的决策。首次客户从腾讯那边对接之后发给我们交付团队一份开发文档,需要迅速spike出能否做,做需要多少effort。看了半个小时之后我迅速给到结果。需要几个点是我们需要做的:
快速Spike
- OAuth授权认证
- 定期刷新access_token
- click_id 从URL的参数里面拿到
- landing page看要不要做
- 获取用户数据可以调用marketing api
以上是迅速spike的结果 ,因为那个时候我们没有测试账号,也无法验证这些步骤是否可行,也不知道是否需要额外的操作。但是当我们真正做的时候发现其实没有那么麻烦。
真正实现
- 生成测试账号,这个账号包含开发者测试账号,同时也包含广告主的账号(从DMP平台可以查看接入的数据),但是这个地方需要填写企业的相关信息,所以在填写qq等信息的时候要用公用的qq账号 ,防止后续员工调动带来的影响;另外在DMP平台我们必须要公司上传企业法人等相关的信息,这个地方我们是让客户自己去上传的。
- 创建应用(私有应用或者是第三发应用),用于打通生产环境的API调用。我们这里只说第三方应用,可以看到需要填写一个回调地址,这个地址用于后续广告主授权之后跳转的那个页面,同时会带上token参数。
- 通过应用的相关信息,打开提供的链接,获取authorization_code。链接类似于:developers.e.qq.com/oauth/autho…
需要开发者相应地改掉参数。
- 根据authorization_code生成access_token,是因为接口的通用参数包含access_token,而为了快速上线该功能,定时刷新的需求是被砍掉了的。生成access_token 的API:
API: api.e.qq.com/oauth/token Method: Get Query params:
- 生成用户数据源:
API: api.e.qq.com/v1.1 Method: Get Query params:
- 根据以上参数加上其他的一些参数调用Marketing API进行用户行为数据上报,去DMP平台查看接入的数据。
API: api.e.qq.com/v1.3/user_a… Method: POST Query params:
Request body: { "actions":[ { "action_time":1605668193, "action_type":"VIEW_CONTENT", "user_id":{ "wechat_openid": {app_id} }, "trace": { "click_id":{click_id} //wx0fzoqjbewm**** } //这个地方要注意trace是放在actions里的,注意结构,否则腾讯广告后台收不到clickid对应的数据 } ], "account_id":{account_id}, "user_action_set_id":${user_action_set_id} }
- DMP数据接入示例:
Note: 关于clickid的说明和获取方式以及 还有其他的参数比如广告id也可以获取得到 :
References: