首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >投了广告,平台怎么知道用户买了东西?

投了广告,平台怎么知道用户买了东西?

原创
作者头像
小唐同学.
发布2026-08-08 18:20:56
发布2026-08-08 18:20:56
600
举报
文章被收录于专栏:云计算云计算

抖音上投广告,用户点了广告,跳进你的微信小程序,逛了一圈,下单买了东西。问题来了:这笔订单,平台(巨量引擎)不知道。

平台不知道用户买了,它就没法判断广告到底有没有用,也就没法帮你优化投放。投出去的钱,等于打了水漂还不知道响。

所以你需要做的事,叫"转化回传"——简单说,就是把用户在你小程序里干了什么,告诉平台

这事本身不难,但里面有几个弯弯绕绕,新手容易绕晕。我尽量用大白话讲清楚,代码就用官方文档里的例子。

一、先说一个词:归因

归因这个词听起来高级,其实就是"认账"。

用户点广告进来时,平台会悄悄在他身上贴一个"小票号"(官方叫 clickid)。用户之后在你小程序里注册、付费,你把这个小票号连同行为一起报给平台,平台一查:哦,这单是从我的广告来的——这就叫归因。

小票号从哪拿? 用户点广告跳进小程序时,平台会把参数直接拼在小程序打开的地址上,长这样:

代码语言:c
复制
/pages/index.html?project_id=xxx&promotion_id=xxx&mid1=xxx&clickid=EPHk9cX3pv4CGJax4ZENKI7w4MDev_4C&req_id=xxx&advertiser_id=xxx

中间那一长串 EPHk9cX3pv4CGJax4ZENKI7w4MDev_4C 就是小票号(clickid)。你的小程序启动时,用微信自带的 wx.getLaunchOptionsSync() 就能把它取出来,不用自己造。

有两点要记住:

  • 这个号每次都不一样。用户点了十次广告,进来十次,就是十个号。别想着存起来复用,一个号对应一次行为,对上了就报,报完就完事。
  • 别按参数顺序硬取。平台拼参数时可能会打乱顺序,老老实实按名字取,稳。

二、拿到号之后,回传时发什么?

用户在你小程序里完成了某件事(比如注册、付钱),你就把它报给平台的固定接口,方式是 POST 请求,内容大概长这样(官方文档原例):

代码语言:json
复制
{
    "event_type": "active",
    "event_weight": 0.21312,
    "context": {
        "ad": {
            "callback": "EPHk9cX3pv4CGJax4ZENKI7w4MDev_4C",
            "match_type": 3
        },
        "device": {
            "platform": "ios",
            "idfa": "FCD369C3-F622-44B8-AFDE-12065659F34B"
        }
    },
    "properties": {
        "pay_amount": 1231.211
    },
    "timestamp": 1604888786102
}

别被这堆字母吓到,真正必须理解的只有四行:

  • event_type:这次发生的事是什么。激活就写 active,付费就写 active_pay,注册写 active_register——平台有固定的说法,照着它的词表写就行;
  • context.ad.callback小票号,必须带上。这是平台认账的关键,忘了它,等于白报;
  • properties.pay_amount:附加信息,比如付了多少钱。注意,平台对金额有自己的单位要求(文档里写的是"分"),别自己想当然;
  • timestamp:这事发生的时间。注意单位,平台要的是毫秒,你传成秒就白报了。

三、重点:不是报了,就算数了

这是我特别想提醒新手的一点。

你把数据报上去,平台返回"成功",你是不是就觉得完事了?不一定。

平台收你的数据是有"规矩"的,比如:

  • 你说"用户付了 6.6 元",那就得是数字,你要是传个"是的是的"或者打个勾上去,平台认不出来,会悄悄扔掉
  • 你想额外报点自定义的信息(比如"这个用户是会员"),但事先没跟平台的人打过招呼,这种没登记过的字段,也会被悄悄扔掉

最坑的是,它扔掉的时候不吭声,照样给你回个"成功"。你看着是绿的,实际数据已经没了。

文档里给了个很直观的例子,同样一个金额字段,这样传合法、那样传就被丢:

代码语言:json
复制
"properties": {
    "pay_amount": 1.234,        // 合法,采纳
    "pay_amount": "1.234",      // 能被转成数字,也采纳
    "pay_amount": true,         // 非法,悄悄丢掉
    "pay_amount": "some string" // 非法,悄悄丢掉
}

所以新手最容易犯的错就是:自己加一堆自认为有用的字段传上去,以为对投放有帮助,结果人家全给你扔了,你还美滋滋。

结论:想加自定义字段,先找平台的人确认;报数据之前,对着官方文档把格式核对一遍。

四、再提醒几个小细节

这几个事单独看都不大,但新手基本都会栽:

  • 报数据要用 POST 方式,不能用 GET。 有些朋友图省事,浏览器地址栏直接打开那个接口,看到 404 还以为是平台坏了,其实是自己用错了方式;
  • 时间戳的单位要看清,上面说过了,毫秒,不是秒;
  • 别把广告流量和自然流量混着报。 用户从广告进来,然后把小程序分享给朋友,朋友直接打开产生的行为,这是"自然流量",不用报。报了反而报错。

另外,如果你的场景需要用到老的那套(clue_token 链路),它有个签名校验,要把密钥、时间、随机数三个字符串先按字典序排好、拼起来、再做一次 sha1 加密,文档里给了好几种语言的现成代码。这属于进阶玩法,小白阶段知道有这回事就行,真用到的时候直接抄官方示例,别自己发明排序方式

五、最后说点心态上的

说实话,这个对接技术门槛不高,会点基础的人都能做。真正耗时间的,不是写代码,而是把文档里那些"写了但没划重点"的地方想明白。

我的建议是:把官方文档当清单用,别当小说翻。 接之前,把"接口对不对、格式对不对、单位对不对、有没有要登记的字段"过一遍,能省下后面一大半折腾的时间。

还有一句话想送给你:接口返回"成功",不代表数据真的被收下了。做数据对接,永远要有一根弦——结果要对得上,才算数

第一次做这个,别慌,一步一步来。坑就那么几个,提前知道了,就都不是坑了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、先说一个词:归因
  • 二、拿到号之后,回传时发什么?
  • 三、重点:不是报了,就算数了
  • 四、再提醒几个小细节
  • 五、最后说点心态上的
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档