AppsFlyer 研究(四)OneLink Deep Linking Guide

2023-10-26

一、简介

深度链接是指当用户打开移动应用时向其提供个性化的内容,或将用户带到应用内特定位置的操作。通过这种操作,您可以为用户提供优质的用户体验,从而极大加强用户与应用的互动。

两种深度链接类型

由于用户不一定安装了移动应用,所以有两种深度链接类型:

  • 深度链接(Deep Linking)

    向已经安装了移动应用的现有用户直接展示个性化内容。

  • 延迟深度链接(Deferred Deep Linking)

    当新用户或已卸载的用户完成安装打开移动应用时向其展示个性化内容。

借助独特的设备检测追踪链接 - OneLink™,AppsFlyer 同时支持深度链接和延迟深度链接两种方式。

设置深度链接之前,需要正确设置OneLink。

 

深度链接和 OneLink

OneLink 在广告和移动应用之间起到“桥梁”的作用。它可以启动应用并向移动开发者提供定制用户体验所必需的数据。要想实现这一点,移动应用在开发时必须具备深度链接功能和基础架构。

 

深度链接和访客找回

深度链接和 OneLink 是广告主用于与现有或曾经的用户进行再次互动(例如:访客找回)的主要工具。 关于访客找回的相关内容请参阅“访客找回指南”,相关操作在深度链接之后执行。

 

二、设置 深度链接的方法

 

 

 

为了覆盖更全面的用户群体,可以选择多种深度链接方法。 使用的方法依移动平台(iOS/Android)以及用户的系统版本而定。

方法 描述 适用于
URI Scheme 直接打开应用并重定向至URL 参数中指定的af_dp\**行为路径 Android 所有版本(可以选择不包括 Android 6 及更高版本)iOS 8 及更低版本iOS 9 及更高版本(当使用的浏览器或移动应用不支持通用链接Universal Links时)
通用链接Universal Links 直接打开移动应用的特定页面。 需要移动开发者建立一个逻辑,根据 OneLink URL 参数进行重定向或者提供定制内容,例如 af_dpaf_sub1 iOS 9 及更高版本
App Links Android 6 及更高版本  

 

1、URI Scheme

 

(1) 、URI Scheme 介绍

URI Scheme本质上是URLs,用户点击链接后直接引导用户进入移动应用的特定页面。 例如: greatapp://

 

Apple 和 Google 对于应用Scheme都不强制实施唯一命名。 为您的品牌选择一个独特的Scheme名称,以避免不同应用之间的Scheme发生冲突。

 

可以使用Scheme来创建较长的路径,自动将用户链接到应用内特定页面。 例如: greatapp://vintage_items/cars/flying_delorean

 

如果某应用的用户在浏览器的 URL 框中输入Scheme路径,会启动应用并进入具体页面。 AppsFlyer 使用 af_dp 参数,通过 OneLink URL 提供相同的 URI Scheme深度链接功能(必须encode)。

 

示例:

https://go.onelink.ly/qwerty?af_dp=greatapp%3A%2F%2Fvintage_items%2Fcars%2Fflying_delorean

 

重要提示!

为了使 OneLink 能够同时适用于 iOS 和 Android,必须为两个平台定义相同的Scheme。 请参阅 iOSAndroid 的相关说明。

 

(2)、设置 URI Scheme

在应用的代码中设置URI Scheme,如下所示: 在 AppsFlyer 的 OneLink 模板页面也需设置相同的URI Scheme。

 

Android 所有版本

在应用的 Manifest 文件中,给相关的行为添加以下意图过滤器 (Intent-filter):

<activity android:label="@string/app_name" …..  ><intent-filter>
   <action   android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
   <category android:name="android.intent.category.BROWSABLE" />
   <data     android:scheme="your unique scheme" />
</intent-filter></activity>

 

示例

<activity android:label="@string/greatapp" …..  >        
           <intent-filter>
               <action   android:name="android.intent.action.VIEW" />
               <category android:name="android.intent.category.DEFAULT" />
               <category android:name="android.intent.category.BROWSABLE" />
               <data     android:scheme="greatapp" />
           </intent-filter>
</activity>
​

 

iOS 8 及更低版本

  • 在 Xcode 中,打开应用信息 plist 文件。

  • 添加 URL 类型条目

  • 展开 URL 类型和“item 0”行,添加一个新行。

  • 为应用添加一个唯一的标识符作为 URL 标识符。 最好选择一个不太可能被其他应用使用的独特标识符。

  • 右键点击 URL 标识符,选择“添加行”,然后选择 URI Scheme并将 Item 0 的值设置为您特有的Scheme。

 

设置OneLink模板:

在 AppsFlyer 控制面板中,找到深度链接自定义 URL 方案(iOS8/Android 5 及更低版本)下面的 OneLink 配置界面,填入已定义的Scheme(例如,"scheme://")。

 

 

(3)、测试 URI Scheme

  • 在您的设备上安装并运行应用。

  • 打开默认浏览器,在地址栏中输入您的URL Scheme(例如,"greatapp://")。

  • 移动应用按默认行为启动。

 

2、通用链接

 

(1)、通用连接介绍

在 iOS 9 及更高版本中,Apple用通用链接替代 URI Scheme作为主要的深度链接方法。 这种方法的安全性更高,因为其他应用无法获取通用链接。 用户体验也更好,因为可以直接启动iOS应用,不会将用户先重定向至浏览器。

本质上,通用链接的方法是将iOS移动应用和相关的网站/域连接,例如 AppsFlyer 的 OneLink 域 (xxx.onelink.me)。 要实现这一点,需要执行以下步骤:

  1. 配置 OneLink 子域并链接到移动应用(通过托管 ‘apple-app-site-association’ 文件 - AppsFlyer 会处理好这一部分)

  2. 配置移动应用,注册已认证的域。

完成以上步骤后,每当用户点击一个已授权域的 URL 时(设备上已安装了该应用),iOS 会启动相关联的应用并打开相关页面。

 

建议

即使对于 iOS 9 以上的版本,仍然有必要实施 URI Scheme,因为有些浏览器或应用会不支持通用链接,仍需要使用URI Scheme的方法。

 

(2)、配置 OneLink 子域并链接到应用

  1. 要完成这个步骤,开发者必须从 Apple Developer 门户网站(‘View Account >> Account Summary’ 下面)获取 ‘Team ID’(如果是多个 Team ID,则为 ‘App Prefix’)。

  2. 在应用的 AppsFlyer 控制面板/设置中,点击‘配置 OneLink’>>在‘iOS’ 下面勾选‘启用Universal Links支持深度链接’复选框,填入在第1步中获取的Team ID/App Prefix。

  • 选择一个OneLink子域,将其填入额外配置下面的深度链接(iOS9/Android6或以上版本)子域字段中。

 

 

(3)、配置移动应用,注册已认证的域

  1. 在 Apple Developer 门户网站的 Identifiers >> App IDs 下面,选择应用并启用关联域 (Associate Domain),然后生成应用的 Provisioning 文件,下载这些文件并双击安装到 Xcode 上。

  2. “功能”的Xcode中,启用已关联的域,填入在“OneLink 配置”(AppsFlyer 账户)中配置的 OneLink 域。

     

    注意

    该域必须以“applinks:”为前缀。例如:applinks:mydomain.onelink.me

     

 

3、Android 应用链接

 

 

 

三、深度链接的备选方案

 

深度链接可以提供优质的用户体验,失效的深度链接绝对不会!多种原因可导致深度链接失效,如配置错误或媒体平台上面的变化。

因此,我们强烈建议,在为深度链接创建Onelink的时候,同时做好备选方案。

af_ios_url和af_android_url可以将点击了Onelink的用户导向着陆页,而不是应用商店。但是当Onelink上面加入了深度链接,会优先打开深度链接的页面。

这意味着当使用深度链接的时候,可以同时放心加这些参数。如果深度链接正常工作,就可以让用户进入到相关页面;如果因为某些原因导致深度链接失效时,用户就会进入到设定的着陆页,比如商店页或主页,而不是直接导致页面崩溃。

 

四、测试和使用深度连接

 

1、建立 OneLink URL

您可以基于OneLink模板创建和使用OneLink URL,数量不限:

  • 进入相关应用的控制面板(例如,在 OneLink 相应模板中配置的一个应用)。

  • 点击Link Management, 然后点击“添加自定义跟踪链接

  • 选择跨平台Onelink

  • 总配置中填写链接名称

  • 填写相关归因参数,如媒体平台名称、广告系列、广告组或其他子参数。

  • 如要启用再营销,开启再营销广告活动按钮

  • 根据需要,选择是否添加深度链接(deeplink) 或重定向参数

  • 根据需要,可在高级部分自定义点击归因窗口期。

  • 根据需要,可以在跟踪链接中设置固定的安装成本。

  • 点击创建链接,复制该链接并将其用于您自己的媒体或任何其他相关媒体渠道

 

2、测试 OneLink URL

 

(1)、针对URI Scheme,测试直接深度链接

  • 在您的设备(或 iOS 中的 iPhone 模拟器)上安装并启动应用。 [如果刚刚安装应用,则将应用置于后台,然后再返回前台,重复两次或更多。]

  • 为应用准备一个 OneLink URL,应包含 af_dp 参数并且具有有效的方案路径(例如 "greatapp://cars")。

  • 在测试设备上,将该链接粘贴到电子邮件、便签、短信、二维码生成器等程序中。

  • 点击链接

预期的结果:应用应按照 af_dp 打开指定的页面。

 

(2)、测试通用链接或 Android 应用链接

  • 在您的设备(或 iOS 中的 iPhone 模拟器)上安装并启动应用。 [如果刚刚安装应用,则将应用置于后台,然后再返回前台,重复两次或更多。]

  • 为应用准备一个 OneLink URL,应包含 af_dp 参数(或另一个参数)并且具有有效的方案路径(例如 "greatapp://cars")。

  • iOS - 将该链接粘贴到便签、iMessage 中,或使用 Apple Mail 客户端粘贴到电子邮件中。 Android - 将该链接粘贴到电子邮件、Chrome、短信、二维码生成器等程序中。不要使用 Slack、Facebook 或任何其他社交应用点击该链接!

  • 点击链接

预期的结果:直接打开应用,不会通过浏览器进行重定向。可以提取 af_dp 参数,用户按照 af_dp 的值被重定向至应用内指定页面。

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AppsFlyer 研究(四)OneLink Deep Linking Guide 的相关文章

随机推荐

  • STM32-CubeMX学习笔记

    例程参考链接 http bbs elecfans com jishu 714935 1 1 html 1 首次使用参见文档 http blog csdn net tq384998430 article details 53466263 2
  • 彻底搞懂Java中的synchronized关键字

    synchronized的作用 synchronized 的作用主要有三 原子性 所谓原子性就是指一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断 要么就都不执行 被synchronized修饰的类或对象的所有操作都是原子
  • 【歪门邪道】懒得麻烦UI同学切图所以用AndroidStudio生成icon

    每次新建项目 是不是都默认生成一个 ic launcher 对于这个icon 你是不是从来都是一删了事 你有没有一次 打开并留意过里头 ic launcher foreground 和 ic launcher background 文件 如
  • 关于以太坊的nonce值

    文章目录 每笔交易nonce值的各个情况 总结 关于Nonce的保管 依赖节点 自行管理nonce 参考代码 nonce在区块链中是一个非常重要的概念 从比特币到以太坊都有nonce的身影 在比特币中 nonce主要用于调整pow挖矿的难度
  • Go语言学习——4、数据存储:数组,切片,映射

    目录 一 数组 1 声明数组 2 初始化数组 3 遍历数组 二 切片 1 从数组或切片生成新的切片的语法格式 2 直接生成一个新的切片 3 切片添加元素 4 从切片删除元素 5 遍历切片 三 映射 1 声明映射 2 初始化映射 3 遍历映射
  • Linux--僵死进程(僵尸进程)

    1 僵死进程产生的原因或者条件 当子进程先于父进程结束 父进程没有获取子进程的退出码 此时子进程变成僵死进程 即就是子进程结束了 但父进程还没有结束的时候才会出现僵死进程 代码中 子先于父 后台运行 当一个进程结束的时候 只有进程的退出码被
  • 前端 token 应该放在哪里呢?

    总结 反正是服务端加密的传过来让前端存着的 通常的存储都可以放 只不过需要防范攻击就是了 风险 放在 webStorage 里的话 因为同源策略 可以在当前页面中注入脚本进行 xss 攻击来获取信息 比如在一个帖子下面回复了一串 js 脚本
  • 点云数据下的KD-tree

    点云数据下的KD tree检索 数据结构 构建KD tree 最近邻检索 KD tree简称K维树 是一种空间划分的数据结构 常被用于高维空间中的搜索 比如范围搜索和最近邻搜索 kd tree是二进制空间划分树的一种特殊情况 在激光雷达SL
  • go mod vender package io/fs is not in GOROOT (/usr/local/go/src/io/fs)

    一 问题解决 最近写区块链相关项目时候 对于智能合约部署时对其进行vender时报错 io fs is not in GOROOT usr local go src io fs 搜索了一下是因为go版本问题 我原本是1 15 5的版本 后来
  • 实施MES系统有何难点,以及怎么解决?

    实施MES系统有何难点 以及怎么解决 很多制造企业当前对于MES系统还处于认知阶段 制造业管理者们在不断了解MES系统的过程中 发现实施MES并没有想象中的简单 一个成熟的MES系统要经历哪些难点 如何更好的解决 一 MES系统有哪些实施难
  • Docker之DockerFile相关基础知识

    DockerFile相关基础知识 一 Docker镜像原理 1 操作系统组成部分 1 1 七大子系统 1 2 Linux文件系统 2 Docker镜像原理介绍 2 1 原理图 2 2 Docker镜像本质 2 3 统一文件系统 2 4 复用
  • react配置项目路径别名@

    为什么有的项目引入路径写 可以 自己的不行呢 因为别人的项目是配置过路径别名的 就表示src目录 因此我们也需要配置一遍 以下是react项目示范 vue项目同理 ts对 指向src目录的提示是不支持的 vite默认也不支持 所以需要手动配
  • 如何计算TCP吞吐量

    为什么80 的码农都做不了架构师 gt gt gt FROM how to calculate tcp throughput for long distance links 如何计算广域网链路的 TCP 吞吐量 刚刚点亮数据中心之间的高速网
  • Linux IP出现inet6 addr :fe80::20c:29ff:fe47:fd61/64 scope:l

    经常出现 inet6 addr fe80 20c 29ff fe47 fd61 64 scope link1 这种情况的不要担心了 试试这个方法 这也是我折磨了好多天整理的 不喜勿喷 谢谢 虚拟机设置权限 sudo chown book b
  • Git学习笔记

    配置user信息 配置user name git config global user name your name 配置user email git config global user email your email 查看所有配置信息
  • Jenkins中连接Git仓库时提示:无法连接仓库:Error performing git command: git ls-remote -h

    问题 Jenkins中连接Git仓库时提示 无法连接仓库 Error performing git command git ls remote h 原因 git的账号密码错误 解决方案 重新设置账号密码 操作 控制面板 凭证管理器 wind
  • 有趣的异常

    缘起 最近 在项目中遇到一个有趣的异常 在没附加调试器的情况下会直接崩溃 附加调试器后 会中断到调试器中 但是按 F5 继续运行后 程序还能继续执行 interesting 你能猜出这是个什么异常吗 初遇错误 在测试程序功能的时候 意外的崩
  • 【教程】一款Markdown 编辑器,免费版本 Typora 下载与使用.

    csdn资源老挂 再补一个网盘的 哪个能用用哪个吧 链接 https pan baidu com s 19c MJQRuas9v5lHxF1uB6A pwd f3n5 提取码 f3n5 gt gt 资源 lt
  • EXCEL-数据透视表、日数据整理成月数据

    1 当你面对一个很多年的日数据 想要把它整理成月数据 下图是2015年1月到2022年1月的日数据 2 首先我们把没用的信息挪开 在时间和日数据上加个表头 3 接着选中数据 包括表头 点击 插入 数据透视表 4 跳出来的框框 直接确认 5
  • AppsFlyer 研究(四)OneLink Deep Linking Guide

    一 简介 深度链接是指当用户打开移动应用时向其提供个性化的内容 或将用户带到应用内特定位置的操作 通过这种操作 您可以为用户提供优质的用户体验 从而极大加强用户与应用的互动 两种深度链接类型 由于用户不一定安装了移动应用 所以有两种深度链接