如何使用我自己的域名缩短Firebase动态链接

我正在尝试在iOS应用中实施Firebase动态链接 。 目标是为营销目的提供一个干净的URL,以便人们可以在社交媒体上分享链接。 这个想法是人们将共享以我的域名开头的干净的URL。

在点击该链接后安装应用程序时,我们希望能够通过查看Firebase提供的有效负载来跟踪推荐应用安装的人员。 我认为此目标类似于Firebase的用例 ,可将网络用户转换为移动应用用户。

我想在社交媒体上分享的示例链接是: http : //example.com/my-payload-here

我已经尝试了几种情况,但无论如何我都无法得到我正在寻找的行为。 有没有人以前成功实现过这个?

这是我的测试程序:

  1. 卸载应用程序
  2. 将要在iMessage中测试的链接发送给自己
  3. 点按我的iOS设备上的链接(不使用模拟器)
  4. 从App Store安装应用程序
  5. 通过点击App Store中的“打开”按钮,在下载完成后启动应用程序

以下是我的发现:

  1. Firebase控制台生成的短链接 ( https://xyz.app.goo.gl/ABCD ) – 链接在App Store中打开。 我安装了应用程序。 在安装后启动应用程序时,不会传递有效内容。 如果我退出应用程序,请返回iMessage中的链接,然后再次启动,交付有效负载。

  2. 与Firebase控制台中的“长动态链接”相同的长链接,用于在#1中生成的链接 ( https://xyz.app.goo.gl/?link=http://example.com/my-payload-here&isi = 12345&ibi = com.example.MyApp ) – 行为与#1相同

  3. 使用我的域的短链接 ( http://example.com/redirect/my-payload-here ,配置为301重定向到#2中的URL) – 在App Store中打开。 我安装。 在安装后启动应用程序时,不会传递有效内容。 如果我退出应用程序,请返回iMessage中的链接,然后再次启动,该链接仍会转到App Store。

我有一些问题:

  1. 案例1和案例2首次启动时为什么没有交付有效载荷?
  2. 我们如何才能启动应用并提供有效负载而不是去App Store?

我还参考了案例2中深层链接的Firebase流程图 。

Firebase目前无法实现此function。 如果您需要带有白标的URL,您需要自己构建它或使用更强大的链接平台,如Branch.io (完全披露:我在分支团队)。

要具体回答你的问题:

  1. 我已经在testbed应用程序中实现了Firebase动态链接,并且可以确认第一次通过安装进行链接是否适用于长URL和短URL变体。 您的AppDelegate配置可能有问题,因此如果您想共享代码,我们可以查看一下。
  2. Firebase目前不支持自定义域。 从理论上讲(如果你能解决上面的第一个问题),你可以通过使用你尝试过的重定向来实现首次安装。 但是,一旦安装了应用,您将永远无法使用Firebase链接数据启动应用。 这是因为Universal Links基于链接的域工作,甚至不请求Web目标。 即使您在自己的域上手动启用通用链接,该应用也会立即打开,而不会调用Firebase,并且永远不会设置链接数据。

Google Firebase团队为动态链接添加了对自定义子域的支持。

  • 您现在可以为动态链接指定最多五个自定义page.link子域。 使用这些新自定义子域的短链接类似于以下示例: https : //example.page.link/abcXYZ

  • 目前无法删除在项目上分配的Firebase动态链接域。(firebase团队正在努力。)

  • 您现在可以将可用作动态链接的深层链接(链接)或后备链接(ifl,ipfl,afl,ofl)的URL模式列入白名单。 如果您定义了白名单,则动态链接不会重定向到与白名单模式不匹配的url。

  • 您可以在Firebase控制台中尝试这两项function。