android - 如何正确使用和跟踪 App-invites?

标签 android firebase google-analytics google-app-invites

背景

Google 允许执行应用邀请并跟踪它们对您的应用安装的改进程度:

https://www.youtube.com/watch?v=UfdCNYXMC9M

问题

我做了一个简单的应用邀请,似乎人们确实使用它,使用以下代码:

public static Intent getAppInviteIntent(Context context) {
    return new AppInviteInvitation.IntentBuilder(title,appName).setCustomImage(imageUri).setMessage(message).setCallToActionText(download).build();
}


startActivityForResult(getAppInviteIntent(this), GOOGLE_APP_INVITES_REQUEST_CODE);

这可行,但在 Analytics webpage ,我找不到显示应用程序邀请统计信息的方法,即使他们说它是自动的(here)。可悲的是,即使我发现的东西似乎也很老旧,而且它们使用了已弃用的功能。

我尝试过的

我认为它可能不是完全自动的(因为教程也有一些额外的接收器部分代码,here),我们可能需要添加一些代码,如 this docs说:

When the user accepts an invitation and installs the app, getInvitation(GoogleApiClient, Activity, boolean) will update the invitation state to installed and return the invitation data in an intent accessed from AppInviteInvitationResult using getInvitationIntent()

查看 Google 的示例 (here),我注意到他们创建了 2 个 Activity 。一个是主要 Activity ,它确实调用了“getInvitation”,另一个被称为“DeepLinkActivity”,并处理深度链接(可能用于额外数据,如优惠券)。

我还发现了一些关于跟踪的 stackOverflow 问题(例如 here ),但我看到的只是人们还没有成功跟踪。

问题

  1. 如视频所示,跟踪邀请所需的最少代码是多少以及它们的工作情况如何?分析页面本身应该配置什么?我目前不使用深度链接,所以我不想使用它。

  2. Google 似乎将 app-invites 功能移至“firebase”gradle 存储库。它是必须的吗?有什么优势?我们目前使用以前的那些(“com.google.android.gms:play-services-appinvite:...”)。 FireBase 的仪表板似乎没有像 Google Analytics 那样包含那么多的分析 UI。更不用说应用邀请了。

  3. 如果#1 的答案是我需要使用“getInvitationIntent”,它是否必须在应用程序的主要 Activity 中?它是否必须在一个 Activity 中(也许是broadcastReceiver?)?

  4. 似乎也可以邀请到 IOS(如 herehere 所示,使用“setOtherPlatformsTargetApplication”)。这个对吗?它是如何工作的?当IOS用户点击链接时会发生什么? “clientId”的参数中应该放入什么,我从哪里得到它?

  5. G+ 有应用邀请吗?如果有,它是否也有分析功能?

最佳答案

好问题。我会尽力回答一切。请询问您是否需要澄清。

分析跟踪需要一个跟踪 ID,您需要使用 setGoogleAnalyticsTrackingId(String trackingId) 设置该 ID,我在您的示例中没有看到该 ID。然后将此跟踪 ID 传递给为您记录分析跟踪事件的下游事件:

  • 发送邀请时(电子邮件和短信)。
  • 当受邀用户通过点击邀请链接或按钮接受邀请时。
  • 当开发者调用 getInvitation() 时
  • 当开发者调用 convertInvitation()

所以,为了回答你的具体问题,这里是:

  1. 只需如上所述将您的跟踪 ID 添加到构建器中,所有跟踪事件都会被报告。无需深层链接,邀请时可选。
  2. 是的,appinvites api 被复制到 firebase,同时保留原始。现在它们完全一样。 future 的改进将在 firebase 中进行,因此请在您有时间的时候进行迁移。
  3. getInvitationIntent() 是在 getInvitation() 回调中返回的结果上调用的,因此回调应该在一个 Activity 中。此外,由于您只会在发布后立即收到邀请,因此您实际上只需要 checkin 主要 Activity 以及将从深层链接上触发的 Intent 过滤器启动的任何 Activity 。听起来您不使用深层链接,所以只使用主要 Activity 。通常,您应该从可能直接从邀请启动的所有 Activity 中调用 getInvitation(),这是您确定应用是否从邀请启动的方式。
  4. 是的,邀请可以双向跨平台,iOS -> android 和 android -> iOS。您需要在 console.developers.google.com 的同一个项目中定义这两个应用程序,这是关联它们所必需的。如果项目中有多个 iOS 应用程序,则需要该 api 调用来消除与 android 应用程序配对的 iOS 应用程序的歧义。当您使用凭据部分的下拉菜单创建 OAuth 客户端 ID 时,会在控制台中生成 ClientID 参数。
  5. 没有任何单独的 G+ 邀请。

关于android - 如何正确使用和跟踪 App-invites?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37703852/

相关文章:

安卓 : Slow layout loading

angular - 如何使用 Angular 从 firebase 中删除用户帐户

google-analytics - 如何测试我的 Google Analytics 集成?

java - 使用 Java 在 Google Analytics 上进行分页

javascript - 从 Angular 4 将数据发布到 Firebase

google-analytics - 谷歌标签管理器预览和调试显示事件,但浏览器的调试器不显示任何事件

带有 ListView 和自定义光标适配器的 Android 奇怪行为

java - 如何将视频文件加载到发送到 youtube 的请求中?

安卓 FirebaseException : Failed to bounce to type

firebase - Firebase 存储和 Cloud Firestore/实时数据库有什么区别?