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

and*_*per 20 android google-analytics firebase 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);
Run Code Online (Sandbox Code Playgroud)

这可行,但在Google Analytics网页中,我找不到显示app-invite统计信息的方法,即使他们说这是自动的(此处).可悲的是,即使我发现的东西看起来很旧,他们使用已弃用的功能.

我试过的

我想也许它不是很自动(因为教程在接收器部分也有一些额外的代码,这里),我们可能需要添加一些代码,因为这个文档说:

当用户接受邀请并安装应用程序时,getInvitation(GoogleApiClient,Activity,boolean)将更新邀请状态以安装并使用getInvitationIntent()从AppInviteInvitationResult访问的意图中返回邀请数据

看看谷歌的样本(这里),我注意到他们创建了2个活动.一个是主要活动,它调用"getInvitation",另一个称为"DeepLinkActivity",并处理深层链接(可能是额外的数据,如优惠券).

我还发现了一些关于跟踪的stackOverflow问题(比如这里),但我看到的是人们还没有成功跟踪.

问题

  1. 如视频所示,跟踪邀请及其工作情况所需的最少代码是什么?应在Analytics页面中配置什么?我目前不使用深层链接,所以我不想使用它.

  2. Google似乎将app-invites功能移至"firebase"gradle存储库.这是必须的吗?有什么好处?我们目前使用之前的("com.google.android.gms:play-services-appinvite:...").FireBase的信息中心似乎不包含与Google Analytics一样多的分析用户界面.更不用说app-invites了.

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

  4. 似乎也可以邀请到IOS(如此此处所示,使用"setOtherPlatformsTargetApplication").它是否正确?它是如何工作的?当IOS用户点击链接时会发生什么?什么应该放入"clientId"的参数,我从哪里得到它?

  5. G +有app-invites吗?如果是这样,它是否也有分析?

小智 5

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

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

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

那么,要回答您的具体问题,请执行以下操作:

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