文档

​
​

Development

User Acquisition

Monetization

工业

Unity LevelPlay

Unity SDK

Android SDK

iOS SDK

Adobe AIR SDK

Flutter SDK

React Native SDK

Unity LevelPlay

Monetization
​
​
LevelPlay
  • LevelPlay SDK
  • LevelPlay 平台
    • 开始使用
    • 基础知识
    • 测量和报告
    • 高级设置
      • Placements
      • Segments
      • Introduction to capping and pacing
      • Rewarded settings
      • Server-to-server callback settings
      • Server-to-server callback event handlers
    • API
    • 最佳实践
  • 法律资源
  • 帐户
  1. 实现游戏增长
  2. Unity LevelPlay
  3. LevelPlay 平台
  4. 高级设置

服务器到服务器回调事件处理程序

使用提供的 PHP 或 Java 参数和示例代码实现和验证 ironSource 服务器到服务器委托事件回调,以安全地奖励用户已完成的广告推荐。
阅读时间7 分钟
最后更新于 2 天前

佣金事件发生在用户完成广告推荐后。
  • 对于奖励视频和优惠墙,这意味着应该向用户奖励虚拟货币或物品。 Ironsource 会调用佣金事件回调(在应用程序设置的 Callback 网址 参数中定义)以及有关奖励的详细信息。
  • 对于奖励视频和优惠墙,必须实现委托事件回调,以便代码将正确的金额奖励给正确的用户。对于 Interstitial,事件仅通知您用户已完成优惠(不涉及奖励)。
以下部分将介绍委托事件回调的语法,提供代码示例,并介绍如何验证、管理和测试事件回调。
  • 对于奖励视频,除了调用服务器端佣金事件回调之外,还会在用户完成广告推荐时发送客户端事件(请参阅 iOS 的 RewardedVideoDidReceiveCredit 或 Android 的 onRVAdCredited)。
  • 对于 OfferWall,调用客户端事件 ssaOfferWallDidReceiveCredit(适用于 iOS)或 onOWAdCredited(适用于 Android)。建议的最佳做法是使用服务服务器端事件触发器用户奖励,因为可以验证回调的真实性。确保在处理
    ssaRewardedVideoDidReceiveCredit
    (iOS) 或
    onRVAdCredited
    (Android) 时,不要针对同一事件两次奖励用户。
注意
如果不为应用程序操作后端数据服务器,并希望仅依赖客户端事件,则可以禁用服务器到服务器的回调系统。

委托事件回调

当用户完成广告推荐并应该获得信用或虚拟物品奖励时,将调用佣金事件回调。您负责实现处理此事件的代码。

参数

Name

类型

描述

[USER_ID]字符串要奖励的用户的唯一标识符。这是调用 app 在初始化 ironSource 商品时发送的。将传递网址编码的形式(例如,“123%40abc.com”而不是“123@abc.com”)。
[REWARDS]Int要授予用户的信用单位数。
[EVENT_ID]字符串回调事件的唯一标识符,由 ironSource 服务器生成,由字母数字角色组成
[ITEM_NAME]字符串要授予的虚拟物品的名称(如果使用虚拟物品选项)。
时间戳字符串调用此回调的确切日期和时间的字符串表示,格式如下:YYYYMMDDHHMM(例如:"20100102 ⁇ " 表示 2010 年 1 月 2 日 14:55)。
signature字符串用于身份Authentication的 MD5 哈希字字符串。此密钥基于以下公式生成:md5([TIMESTAMP][EVENT_ID][USER_ID] [REWARDS][PRIVATE_KEY])。USER_ID 元素是 userID 的网址解码值(例如,“123@abc.com”而不是“123%40abc.com”)。私有变量_KEY 元素是在私有变量设置中定义的值。

响应

应用程序必须通过发送状态为 200 (OK) 的 HTTP 响应来确认收到委托事件,其中
"\[EVENT\_ID\]:OK"
字符串出现在响应中的任何位置。
<xml><status>dae8e6cf42b1357f8652ad6ecb5b24f1:OK</status></xml>
注意
发送具有正确语法的响应非常重要,这样 ironSource 就不会继续发送回调重试。

委托事件回调代码示例 - PHP

以下 PHP 代代码示例演示了一个典型的委托事件回调处理程序。复制代码后需要做的就是实现
**alreadyProcessed()**\
和
**doProcessEvent()**
函数并将
**\[YOUR\_PRIVATE\_KEY\]**
字符串设置为正确的值。
// get the variables$userId = $_GET['applicationUserId'];$eventId = $_GET['eventId'];$rewards = $_GET['rewards'];$signature = $_GET['signature'];$timestamp = $_GET['timestamp'];$privateKey = ‘[YOUR_PRIVATE_KEY]';// validate the call using the signatureif (md5($timestamp.$eventId.$userId.$rewards.$privateKey) != $signature){ echo "Signature does not 匹配 参数"; return;}// check that we haven't processed the same event beforeif (!alreadyProcessed($eventId)){ // grant the rewards doProcessEvent($eventId, $userId, $rewards);}// return okecho $eventId.":OK";

委托事件回调代码示例 - Java

以下 Java 代码示例演示了一个典型的委托事件回调处理程序。复制代码后需要做的就是实现
**getPostParameter()**
和
**alreadyProcessed()**\
方法并将
**\[myPrivateKey\]**
字符串设置为正确的值。
import java.security.*;import java.math.BigInteger;public class HelloWorld { public static void main(String []args) { validateSuperSonicCallback(); } public static String getPostParameter(String param){ // TODO : your app implementaion for get post parmas return ""; } public static boolean alreadyProcessed(String eventId){ // TODO return true; } public static boolean validateSuperSonicCallback() { String applicationUserId = getPostParameter("applicationUserId"); String eventId = getPostParameter("eventId"); String signature = getPostParameter("signature"); String userId = getPostParameter("userId"); String rewards = getPostParameter("rewards"); String timestamp = getPostParameter("timestamp"); String privateKey = "myPrivateKey" ;// enter your private key String mySignature = ""; try { String message = timestamp + eventId + userId + rewards +privateKey; MessageDigest md = MessageDigest.getInstance("MD5"); md.update(message.getBytes()); BigInteger hash = new BigInteger(1, md.digest()); String result = hash.toString(16); while(result.length() < 32) { result = "0" + result; } System.out.println(result); // 显示字符串。 } catch (NoSuchAlgorithmException e){ } if (mySignature!=signature){ return false; }else{ return !alreadyProcessed(eventId); } }}

验证委托事件回调

为了保护代码免受未经授权的访问,建议的最佳做法是测试委托事件回调签名音频源代码,以验证调用是否由 Ironsource 发出。
要验证委托事件回调,可以执行以下操作:
  1. 根据以下公式从调用的参数生成 MD5 哈希值:
    md5(\[TIMESTAMP\]\[EVENT\_ID\]\[USER\_ID\] \[REWARDS\]\[PRIVATE\_KEY\])
    ,然后验证结果与签名参数值是否相同。
  2. 验证调用是否源自以下 IP 地址之一:
    • 79.125.5.179
    • 79.125.26.193
    • 79.125.117.130
    • 176.34.224.39
    • 176.34.224.41
    • 176.34.224.49
    • 34.194.180.125
    • 34.196.56.165
    • 34.196.251.81
    • 34.196.253.23
    • 54.88.253.218
    • 54.209.185.78

Copyright © 2026 Unity Technologies
法律信息隐私政策CookiesDocumentation Terms of Use请勿出售或分享我的个人信息您的隐私选择(Cookie 设置)

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属公司在美国和其他地方的商标或注册商标(此处查看更多信息)。其他名称或品牌是其各自所有者的商标。

为方便起见,一些页面是机器翻译的,可能包含不准确的内容。如有信息不一致的情况,以英文版本为准。

  • 在本页上
    • 委托事件回调

      • 参数

      • 响应

    • 委托事件回调代码示例 - PHP

    • 委托事件回调代码示例 - Java

    • 验证委托事件回调


报告此页面的问题