Branch 匹配概述

概述

Branch 使用多种机制将数据传递到应用程序,并对应用程序会话归因。我们始终使用具有最高匹配置信度的方法。当我们100%确信时,深度链接接数据将包含变量+match_guaranteed=true

匹配精度为100%的方法

直接深度链接

如果应用程序目前已安装在手机上,你已经在您的应用程序内配置了 Branch 的 URI scheme( myapp:// )或使用通用链接或 App 链接,我们将立即打开应用程序,并将点击标识符传递至原生库。然后将该点击标识符发送到 Branch 服务器,以检索与链接关联的数据字典。

例如,我们调用myapp://open?link_click_id=123456 立即打开应用程序。 Branch 原生库完成解析link_click_id: 123456 ,并将其传递回Branch API,以检索与该链接点击关联的数据字典。

跨 Branch 网络的设备ID令牌匹配

当用户点击您的应用程序的 Branch 链接时,我们看到该用户点击了我们合作伙伴网络上另外的 应用程序的链接,那么我们已经将它们与相应的设备标识符进行了匹配。这意味着,当用户安装应用程序时,我们可以100%确信他们刚刚来自该链接点击。

我们拥有如此庞大的应用程序网络,拥有数亿用户点击了链接,这意味着当您加入平台时,您可以受益于我们所有应用程序用户贡献的“浏览器-应用程序”匹配关系而获得的众包准确性。可以在此网站了解更多关于这是多么重要的:我们的博客

利用其他匹配技术

我们已经建立了特定于每个平台,确保深度链接接是准确的自定义深度链接接机制。以下是一些我们使用的技术:

匹配方式 实施细节
Facebook deferred deep linking API 我们已经与Facebook深度集成,如果在一个应用程序内,用户发起邀请或广告,我们与Facebook定制集成的API有100%的把握知道,安装是否源于此渠道。如果您要支持此功能,则需要在Branch上通过Facebook进行身份验证 。
Android Google Play referrer Google Play支持在我们侦听的安装过程中传递一个referrer。从Chrome重定向时,它众所周知是不可靠的,目前不受支持。但是,我们会尽可能使用它。 SDK集成指南介绍了启用此方法。
iOS 9/10 Safari cookie passthrough 我们在iOS SDK中内置了一种自定义技术,该技术可确保当用户从Safari浏览器中点击时,iOS 9/10上的准确性为100%。仅当您在应用程序中包含SafariServices.framework时才适用。请使用我们推荐的新路径来使用此功能 。请注意,由于iOS 9/1/16上的政策更改,此方法存在一些风险。
Android Chrome Tabs cookie passthrough 我们在Android SDK中内置了自定义技术,当用户来自Chrome浏览器时,该技术可确保100%的准确性。我们会根据app.link自动进行Cookie匹配,但您可以根据用例配置域。请在此处查看指南

没有100%匹配准确度的方法

浏览器到应用程序的指纹匹配

当用户处于浏览器中时(通过点击 Branch 链接),然后在他们打开应用程序之后,Branch都会收集有关设备的信息。此信息包括 IP地址(包括V6) OS OS版本设备模型和其它参数。这是用户的 数字指纹 ,可以在浏览器和应用程序中获得。

如果没有100%匹配的方法,我们会将在应用程序中收集的唯一指纹与在浏览器中收集的唯一指纹连接起来,以确定用户起源。

自定义指纹匹配条件

如果您担心用户可能具有相同的指纹,则可以选择让我们在出现两个相同的指纹时不匹配用户。

在控制台' s 链接设置页面上的高级选项下,您应将Match Type 设置为Unique

图像

您还可以为所有链接修改7200秒(2小时)的默认到期时间,

图像

使用$match_duration 控制参数为单个链接进行配置。

这意味着,如果在同一wifi上具有相同指纹的两个用户点击您的应用程序的“Branch”链接,我们将在有效期内将这些数字指纹列入黑名单。因此,当任何一个用户打开您的应用程序时,都不会匹配。

将iOS应用配置为100%匹配(仅> iOS 10)

仅适用于iOS 10及更低版本

100%匹配有点用词不当,因为与用户从Safari浏览器点击时相比,只有100%匹配。根据我们的分析,通过Safari浏览器点击的大约有50-75%,具体取决于用例。例如,从Facebook或Chrome浏览器点击不会触发100%的匹配。不过此技术仍然对匹配精度有利,所以我们建议采用它。

集成 SafariServices.framework

首先,你需要集成SafariServices.framework 到您的应用程序以充分利用它。当前,一旦添加框架,Branch将开始触发基于Safari的100%匹配技术。要添加框架,只需转到您的Xcode项目:

  • 选择正确的构建目标
  • 选择General 标签
  • 向下滚动到 Linked Frameworks and Libraries
  • 点击+ 按钮
  • 添加 SafariServices.framework

将匹配的域设置为app.link

因为我们的Safari View Controller匹配方法,是基于将点击时Branch设置的Cookie与使用View Controller的Cookie进行比较,所以域必须一致。 iOS假设您在bnc.lt 域上,因此如果您将 app.link 域作为默认域(大多数应用程序),则必须在PLIST文件中指定此域。

请在您的PLIST中将branch_app_domain 设置为app.link ,如下所示:

图像

将您的Android应用配置为100%匹配

与iOS相似,100%匹配有点用词不当,因为这种方法仅在用户通过Chrome浏览器点击时才有效。其他浏览器(如Facebook和Twitter)将无法从此方法中受益。我们没有像在iOS上的统计数据,但我们假设是与Safari浏览器相似的(点击的50-75%)。

启用Cookie匹配

在您的build.gradle 文件的“依赖项”部分添加compile 'com.android.support:customtabs:23.3.0'

使用旧版bnc.lt域进行Cookie匹配

与在iOS上我们假设您的域位于bnc.lt ,在Android上我们假定它是app.link 域。如果要覆盖它,则必须通过调用Branch来设置所需的域,如下所示:

// call before calling getAutoInstance in the Application class
Branch.enableCookieBasedMatching("bnc.lt");
Branch.getAutoInstance(this);

2个月前更新

Branch 匹配概述


建议的编辑仅限于API参考页

您只能建议对Markdown正文内容进行修改,而不能建议对API规范进行修改。