如何在服务器上验证Admob奖励视频广告?

时间:2019-02-19 23:36:11

标签: firebase admob admob-rewardedvideoad

是否可以验证服务器上的客户端(OnAdRewarded)是否观看了“奖励视频广告”?我可以与Google Cloud Functions集成吗?

我认为可以使用admob admin SDK来验证客户端发送给服务器的令牌,但是似乎不可能,我们只能在客户端上验证广告。

4 个答案:

答案 0 :(得分:2)

不确定这是否与 Firebase 相关,但这里有一些详细信息,以防有人使用 Node/JS。您可以使用 Node 的内置 crypto 库。首先 fetch 来自 https://gstatic.com/admob/reward/verifier-keys.json 的可用 Google AdMob 验证程序密钥。

然后您需要遍历返回的 JSON keys 数组并获取与传入 pem 字符串的 req.query.key_id 参数对应的 req.url 公钥文件字符串.

那么我们希望用来验证签名的“消息”是传入的 req.url 子字符串,介于参数 ? 符号和 &signature... 字符串之间。

现在我们可以轻松验证了:

   const verifier = crypto.createVerify("sha256");
   
   verifier.update(message);
   
   if(verifier.verify(pem, req.query.signature, "base64"))
      console.log("Ad was successfully verified.");
   else
      console.log("Ad could not be verified - quick call the cops !");

需要注意的一个警告是,您可能需要在使用之前 unescape(...) req.url 字符串,因为某些字符可能已被转义。我被困在那里一两个小时。您可以使用例如Node 的内置 querystring 库。

答案 1 :(得分:1)

目前不行。根据我最近收集的内容,该功能已经处于内测一段时间。我能找到的最后一个提及是在链接的讨论中,大概有人从Google那里说该功能将很快向公众推出。该帖子来自1月22日。

https://groups.google.com/forum/#!topic/google-admob-ads-sdk/weXTAGZfYQ8

答案 2 :(得分:0)

现在可以使用Server-Side Verification (SSV) Callbacks.

  

服务器端验证回调是URL请求,其查询参数由Google扩展,由Google发送到外部系统,以通知用户与奖励视频广告进行互动应获得奖励。奖励视频SSV(服务器端验证)回调提供了额外的保护层,可防止欺骗性地欺骗客户端回调以奖励用户。

答案 3 :(得分:0)

如果您正在寻找Admob SSV在Golang上的一种简单方法。

只需使用此hiyali/go-lib-ssv,希望可以挽救生命:)