【问题标题】:Branch.io deferred deep link missing data after installBranch.io 安装后延迟深度链接丢失数据
【发布时间】:2021-12-01 21:55:39
【问题描述】:

我正在尝试让延迟的深层链接在 Android 上运行。我在仪表板中添加了一个测试设备并重置设备数据并确保该应用程序已卸载。当我单击一个 branch.io 链接时,它会按预期将我带到 Play 商店。然后我从 Android Studio 将应用程序启动到手机上,然后日志显示 Branch SDK 向https://api2.branch.io/v1/install 发送了请求,但问题是响应不包含我设置的原始链接、查询参数或键值对在仪表板中。这是我在onInitFinished 收到的 JSONObject:

{"+match_guaranteed":true,"link_click_id":"976953359423305632","+clicked_branch_link":true,"+click_timestamp":1634196720,"+is_first_session":true,"utm_source":"test-referrer"}

所有其他信息在哪里?这不包括原始链接、键值对、标签等。

作为比较,这是我在 iOS 应用中收到的:

["$ios_passive_deepview": "branch_passive_default", "source": "test-referrer", "+is_first_session": 1, "~channel": test-referrer, "$matching_ttl_s": 7200, "~id": 976763609660742721, "~creation_source": 1, "$one_time_use": 0, "~marketing": 1, "~referring_link": "https://myapp.test-app.link/test-referrer", "~feature": "test", "+click_timestamp": 1634249299, "+match_guaranteed": 0, "$og_description": "My app description", "$og_title": "MyApp", "+clicked_branch_link": 1, "$marketing_title": "Test Referral Link", "~tags": ["test-referrer"], "~campaign": "test"]

如果我旋转手机以重新创建 Activity 或单次重新打开应用程序,它会向 https://api2.branch.io/v1/open 发送请求并返回我最初预期的所有信息。 安装应用后如何获取信息?

我目前正在使用 myapp.test-app.link 进行测试,并且在我的自定义应用程序类的 onCreate() 中,我在 Branch.getAutoInstance(this) 之前调用了 Branch.enableTestMode()。我也尝试使用实时链接并得到相同的结果。

这些是我在 build.grade 中使用的库:

implementation 'io.branch.sdk.android:library:5.0.13'
implementation 'com.google.firebase:firebase-appindexing:20.0.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
implementation 'androidx.browser:browser:1.3.0'

我还在仪表板和应用程序中设置了应用程序链接和 uri 方案。在安装后的第一个会话中使用getFirstReferringParams()getLatestReferringParams() 也无济于事。

更新: 重复我上面描述的完全相同的测试过程,现在传递到onInitFinished 的 JSONObject 的信息更少,并且声称我没有点击分支链接:

{"+clicked_branch_link":false,"+is_first_session":true}

getFirstReferringParams() 返回一个空的 json 对象。 我即将开始以这种速度寻找替代方案。

【问题讨论】:

    标签: android deep-linking branch.io


    【解决方案1】:

    我通过在初始化 Intent 时在 this.activity.setIntent(intent); 之后添加 intent.putExtra("branch_force_new_session", true); 来解决此问题。像这样的:

    ...
    this.activity.setIntent(intent);
    intent.putExtra("branch_force_new_session", true);
    Branch
      .sessionBuilder(this.activity)
      .withCallback(branchReferralInitListener)
      .reInit();
    ...
    

    查看here 以获取branch_force_new_session 参考。

    丢失数据的另一个原因是链接别名不存在,但当您在 ​​iOS 中尝试使用相同链接时,情况似乎并非如此。

    【讨论】:

    • 几天后,我只是举手并切换到 Firebase 动态链接。但既然你是唯一一个得到回答的人,请继续并获得赏金大声笑(已经一周了,甚至 branch.io 支持都没有回复我。)
    • 感谢您的赏金!虽然 branch.io 不是小菜一碟,而且有问题,但根据我的经验,firebase 链接并没有更好,而且更不灵活,更不透明。
    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2018-10-23
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2017-02-08
    相关资源
    最近更新 更多