Adjust提供很多稳定可靠的系统,用以为您的任何端点提供实时回调。您可以利用回调实时地将 Adjust 数据与您的服务器或商务智能系统进行同步。

Adjust回调可以提供有关定向到或经过您应用的每次点击、展示、安装、再归因、事件、被拒安装(适用于已启用防作弊套件的账户)、更新的归因、卸载、重装、重装再归因和广告支出的实时数据。作为客户,这些数据是属于您的,而且您可以要求Adjust将数据发送到您指定的任何位置。

本指南中,我们将介绍如何以适合您的需求和技术基础架构的方式实施回调解决方案。有的人大量使用 Adjust 回传,研究自身流量源的大量数据组以进行定制分析,或者通过回调获得关于应用内结构的重要数据。

1术语

  • 回调或回发: 由 Adjust 服务器预先定义的ping命令,在某些事件触发时被送到您的服务器中
  • 回调/回发URL: 指向您的服务器(数据将被送到该服务器中)的URL
  • 占位符: 要求 Adjust 服务器将特定数据输入特定位置的指令参数
  • 添加: 到 URL 中用来发送数据的值 端点您服务器上的一个具体位置
  • 编码: 用安全内容替换 URL 中的敏感字符
  • GET: 标准的网络请求类型,具有特定语法

2在您的 Adjust 控制板中添加回调

您可在控制板中的“原始数据导出”屏幕内添加回传。使鼠标在每行上悬停,会出现 “Add Callback” 或 “Edit” 按钮,可点击这些按钮打开 Add Callback 屏幕。

添加端点URL以及所需参数,并填充有效的占位符。请确保每次都指定所用的超文本传输协议(Hypertext Transfer Protocol)(http:// 或 https://)。例如,每次安装时您都希望回传至http://myserver.com/register/,并将每次安装的IDFA、时间戳和跟踪链接作为参数,那么应添加:

http://myserver.com/register/?idfa={idfa}&timestamp={created_at}&source={tracker_name}

花括号中的短语是占位符,在发送给您之前我们的服务器会将其替换。后面的“占位符”部分将列出可通过占位符接收的数据类型。

当然,您还可以使用占位符来组合除简单GET参数外的其他语法,例如:

http://myserver.com/register/{tracker_name}/{idfa}/?data={created_at}

不过,自定义的SDK参数总是使用GET语法进行组合。客户端回调目前不支持POST请求。

您可添加多个回传,用空格将不同URL分开即可。

2.1使用统一回传

除了针对每个事件指定特定的回传外,您也可以指定单一个统一回传。所有事件,包括点击丶对话丶安装及再归因,都可启动统一回传。

您可以展开您的应用,点击”添加统一回传”,将统一回传添加至 Events 屏幕中。除此之外,统一回调的运作方式与其他的回调相同,都使用同样的占位符。

除了您所指定的其他回传之外,统一回传也会启动。若您指定统一回传,且对於特定的事件使用相同的回传URL(网址),则该回传URL(网址)将会启动两次 - 一次为统一回传,另一次为该特定事件的回传。

您可使用以下占位符来表示不同种类的事件:

  • {activity_kind}, 显示回传是由点击、展示、安装(包括安装和被拒安装)、会话、再归因、卸载、重装、重装再归因、事件还是成本更新触发;
  • {event}, 由事件识别码替代;
  • {event_name}, 由事件名称替代。

为了确实识别出特定的应用内事件,您应使用{event}{event_name} 主要用来接收可人工读取的标签。事件的标记是固定的,但事件的名称可随时修改。这表示名称本身不适合作为标识符。

3最佳实践:从外部访问Adjust归因数据

很多情况下,您希望将 Adjust 归因数据与来自其他数据源(例如应用内分析、内部用户记录或更宽的BI系统)的数据进行组合。

首先,您需要为回调确定或建立合适的端点。您的数据需要送到您的服务器中,也就是记录参数值的地方。这可以是仅用来将参数写到数据库的简单的服务器脚本,或者是可对后续计算进行初始化的更全面设置。

您需要决定哪些数据记录在自己这一侧,哪些在默认情况下从 Adjust 中得到,哪些需要利用SDK中的自定义参数来补充。首先需要对以上问题做出回答,您应对数据组进行分析或采取 进一步处理机制,以回答这几个问题。应记住 Adjust 已经运行很多繁重的计算任务,并通过 联机或利用导出功能提供针对聚合数据的报告。

将输入数据想象成一个透视表(pivotal table),一行代表一个特定的点击、安装或事件。表中的每个行用来记录收到时间或创建时间、特定形式的用户或器件ID,以及所采取的行动。

我们假设您想要将内部用户ID与来自Adjust的归因数据进行连接。这样,您可以连接来自其他流量源的内部记录,例如在线使用习惯或更具体的购买模式。

在自定义分析时回答以下问题:

  • 是否具有特定人口统计特征的用户会有可能退货?
  • 在移动设备上重定向之前或之后,重定向用户是否在我的在线应用上处于活跃状态?

您可能会创建一个用来记录用户单一动作的简单端点,而且随后可在内部系统中查询。您可以在SDK中将用户ID添加为自定义参数,并在 Adjust 控制板中定义回调,用以向您发送设备ID和跟踪链接名称。现在可将内部记录连接到移动购买、注册、等级完成或正在追踪的其他应用软件内事件。

4使用动态回调参数传输自定义数据点

动态回调参数(DCPs)可以让您发送任意数量的自定义点击、安装、再归因、会话或事件参数。如果您的渠道所使用的参数数量超过 Adjust 可支持范围,或您需要为系统收集额外的用户特定数据时,您可以使用DCPs。

请注意DCPs仅适用于点击、安装、再归因、会话和事件回调。

说明

  1. 命名您的参数 (例如 campaign_name_3)
  2. 添加dcp_前缀,并将其作为点击、安装、再归因或S3回调的占位符 (例如 {dcp_campaign_name_3})
  3. 将不含dcp_的参数添加到您的点击跟踪链接中 (例如 campaign_name_3={campaign_macro})
  4. 将该点击跟踪链接提交至您的广告渠道,并要求渠道将其集成至他们的服务器中

一旦Adjust接收到这些参数中的数据,将会在原始数据回调中发送相关信息。

5最佳实践:使用回调来提供用户奖励

任何用户获取战略均需要一个归因机制,无论是通过绩效营销、关联公司、或是病毒性邀请来获取用户。您如何才能向那些成功邀请自己朋友来注册您的服务的用户提供奖励?

这是一个简单的设置:通过社交网络、电子邮件或聊天来邀请您的朋友,并得到一份小的应用内奖励或优惠。Adjust 专门设计用于建立起资源和获取之间的联系,并通过回调,您甚至可以通过 Adjust 来输送您的数据,以此提供硬币、VIP 身份,或您向用户做出的任何承诺。

以下是一个工作流程示例:

  1. 您的一位用户 - Bob - 使用您的应用,邀请了他的侄子 Tom。那位朋友通过 Adjust 跟踪链接加入进来。您可以在控制面板中创建一个标准的跟踪,这里使用的 ID 是“f0ob4r”,并添加您的用户 ID 为[点击标签](#sending-any-data-through-attribution-with-the-click-label)。(如需了解更多有关活动结构和跟踪链接生成的信息,请参阅我们的跟踪链接生成参考资料)。
     https://app.adjust.com/f0ob4r?label=[user_id]
     
  2. 您的应用将 [user_id] 替换为 Bob 的 ID,并通过电子邮件/短信/ Snapchat 将链接发送给 Tom。当 Tom 点击该链接后,Adjust 便将 Tom 的点击归因于 Bob 的邀请。

  3. Tom 安装了应用,Adjust则将该安装归因于 Bob。 您的服务器收到带有 Bob 用户 ID 的回调(通过 {label} 占位符)。

  4. Tom注册了一个账号,您会收到带有 Bob 用户 ID 以及 Tom 用户 ID 的回调(通过自定义 SDK 参数)。

  5. 现在,您的服务器已经有了为 Bob 提供奖励所需要的全部数据,将 Tom 自动添加 Bob 的好友列表,并分析您的邀请程序成果。

您还可以使用您 SDK 中的委托回调(delegate callbacks)来访问第 3 步中的标签 - 使您可以即时接收应用内的两组数据,因此在该基础上进一步加强您应用中的逻辑。

如果您在具体实施方面还有任何进一步的问题,请随时发送电子邮件至 support@adjust.com

6参考:Adjust回调系统

Adjust 是一个实时的回调系统。我们的系统只要得到事件请求,就会检查针对该事件的所有回调,包括您的客户回调、您所激活的任何合作伙伴以及关联到开放回发API的任何流量合作伙伴。(如需具体了解合作伙伴可通过回调接收哪些数据,请查看“合作伙伴特别指南”-(English)“网络集成指南”.

在接收事件数据后几秒钟内就能够可靠地启动回调。每个安装或事件都会触发所需数量的回调,您可在控制板中输入任意数量的回调,激活任意数量的合作伙伴,此外还可在点击URL上添加多个回调。

回调服务器会记录端点的HTTP响应,但是,如果您的端点返回错误代码(例如HTTP 500或400),回传服务器不会跟随定向,也不会重新尝试回调。不过,如果您的端点返回有意义的响应,服务器确实能协助我们的技术支持团队进行故障排除。

在评估您的服务器需要有多快以及有多少数据需要发送时,您应该首先考虑应用中的用户数量。如果您只追踪一次性事件(例如注册),那么回传的数量将直接随营销推广而增长,即每个转换用户有一个回调。通常,转换事件的回调不会给客户端服务器带来特别高的负荷。

6.1将 Adjust 回调 IP 列为白名单

作为辅助的安全措施,您能够将来电回传限制到 Adjust 使用的具体 IP 地址范围。这样,您就可以唯一地标识 Adjust 的服务器 - 举例来说,用以防止您的服务器会记录非 Adjust 源中的伪造数据。

所有 Adjust 回传由两个子网执行,其可以用于创建您接收服务器的白名单。这两个子网如下:

178.162.216.64/26
178.162.216.128/26

这是子网符号。您可以查看 完整的 IP 列表摘录

7参考:添加URL参数

URL参数是被赋予特定名称的值,并以大部分服务器能够识别的专用语法来发送。标准GET语法如下:

http://callbacks.myserver.com/path?parameter_one=value_one&parameter_two=value_two

可在URL中path的后边加添参数。紧接着问号的是第一个参数的名称,等号后面是参数值,即”ip_address equals 192.168.1.1”。后面的参数用&隔开。

您可以在URL中添加任意数量的参数,只要您的服务器知道如何处理它们就可以。

如果想在URL中添加附加参数,只需在最后一个参数值后面添加&符号,键入参数名称,在等号后添加参数值。很多时候,您需要动态参数。这种情况可使用占位符,占位符是位于括 号中的字符串,用来指导我们的服务器注入动态值:

http://callbacks.myserver.com/path?campaign=12346&tracker_name={tracker_name}&idfa={idfa}

一定要考虑问号和&符号的特殊性,错误的符号摆放可导致您的回传被错误地解读。参考“编码”部分了解更多内容。

如果您无法接收正确的参数值,应检查以下几点:

  • 特殊字符位置正确且未被编码;
  • 不存在未编码的无用特殊字符,例如放错位置的&或空格;
  • 占位符应使用后面章节所规定的正确名称;
  • 所使用的占位符在请求回调时有效(例如点击回调不能包含设备ID);
  • 参数应被正确命名。

参数的顺序通常没有任何影响。

8参考:自定义SDK参数

有些情况下,您需要利用可在您的SDK中访问的附加参数来扩展 Adjust 提供的数据组。这些是自定义参数。这些参数从我们的 SDK 中送到我们的服务器,然后从我们的服务器再发送到您的端点。

为在应用中实施自定义参数,需要向应用中的 trackEvent 调用附加参数字典。如需了解如何对这些调用进行组合,请参考SDK自述文件获得详细实例。

例如,假设您将用户ID作为自定义参数从附加的SDK发送到购买事件,例如,追踪用户123456的一次购买。您还在控制板中定义了一个URL,例如:

http://myserver.com/revenue/?tracker={trackerName}

将其作为收入事件的端点。当使用附加的自定义参数追踪购买时,自定义参数会被自动添加到您的回发URL中。

参数不应在控制板中指定。自定义参数将被自动附加到您在控制板中输入的任意字符串中。字典的键名作为参数名,而参数值被设定为该键的键值。

这样每次Adjust追踪购买事件时,您都会立即收到一个回调:

http://myserver.com/revenue/?tracker=name_of_the_tracker_encoded&userID=123456

不论端点的名称和路径如何,Adjust服务器都可以智能地添加正确的描绘器和语法。

自定义参数最有效的用法是追踪与被追踪事件有关的数据,例如购买和注册事件的用户ID,购买事件的产品ID,或者应用中具体点的当前状态。

注意,您只能将参数附加到安装后的事件。用户在安装前无法采取任何行动,因此安装时需要发送的参数很少,而且那些需要发送的可能已被有效的占位符所覆盖。

9参考:编码

编码是保持正确URL结构(即使包含复杂参数)的必要操作。如果您向参数添加复杂字符串,例如URL中的值、收入符号或电子邮件地址,应对这些内容进行编码以实现最大安全性。编码的作用是将敏感字符替换为不敏感的字符串,通常是百分号后加两个字符,该内容可被服务器正确解读。

如果您在控制板中为回传字段添加静态参数,应确保参数不包含字母和数字以外的字符,如果包含,一定要首先对其进行编码。使用花括号的 Adjust 占位符({ 或 })不应进行编码。例如,在将空格输入回调之前,必须对空格编码。很容易找到可帮您完成URL编码的在线编码工具。

只能对以下所示内容进行编码,URL结构本身绝对不能编码:

URL-不安全的URL

http://callbacks.myserver.com/registration?username=Bob Uncle&email=bob.uncle@mail.com&website=http://www.bobuncle.com

编码后的URL

http://callbacks.myserver.com/registration?username=Bob%20Unclde&email=bob.uncle%40mail.com&website=http%3A%2F%2Fwww.bobuncle.com

很多服务器和系统将译码输入的 URL 参数作为标准操作。应确保您的服务器在将回调设置为完全有效之前也进行此项操作。

来自 SDK 的自定义参数也应编码,被服务器接收后即进行译码。

10参考:有效的占位符

您可随时在我们的网站上找到最新的数据列表。

11根据条件筛选或调整回调

您可以使用有条件回调,根据占位符的值更改整个回调URL。例如,我们可以根据环境(无论事件是否来自于生产或沙箱)、设备类型、以及任何其他可用的占位符,来筛选回调。

您可以选用以下前缀之一:

equal,只适用于指定的准确值; + notequal,适用于指定的值外所有的值; + contained, 适用于任何指定的值。

结构应如:prefix,{placeholder},value,callback。当所有关键设置设好,指定的条件将生效。

请参看以下提供的几个例子:

equal,{environment},sandbox,http://test.your-server.com?source={tracker_name}

在控制面板添加了以上例子为您回调,沙箱数据将回传到测试服务器。

您的回传可以通过该语法来使用任何占位符和值。

你甚至可以将值连接起来:

equal,{environment}{device_type},sandboxtablet,http://test.your-server.com?source={tracker_name}

您可以同样的方式使用 notequal 和 contained

            
notequal,{tracker_name},Organic,http://test.your-server.com?source={tracker_name}

在控制面板添加了以上例子为您回调,将会把跟踪链接名称非 Organic 的所有活动回调到测试服务器。  

                     
contained,{event},abc123;xyz456,http://production.your-server.com?source={tracker_name}

在控制面板添加了以上例子为您回调,将会把事件识别码为 abc123 或 xyz456 触发的所有事件回调到实际执行服务器。

请注意:使用空格分隔,您可以添加多个使用不同前缀的回调。以下例子以供参考:

            
equal,{environment}{device_type},sandboxtablet,http://test.your-server.com?source={tracker_name} notequal,{environment}{device_type},productiontablet,http://production.your-server.com?source={tracker_name} contained,{event},abc123;xyz456,http://production.your-server.com?source={tracker_name}