在我的应用程序中发送App邀请时,我正在尝试找到一种向其添加元数据的方法,以便我可以在内部跟踪发送邀请的人以及他们的成功程度(Facebook仅显示对话框打开时的数据和没有办法跟踪特定的漏斗)。
我发送邀请的代码是:
private void openFacebookAppInvite() {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(FACEBOOK_APP_LINK_URL)
.setPreviewImageUrl(INVITE_PREVOEW_IMAGE_URL)
.build();
// WANT TO ADD METADATA HERE
AppInviteDialog.show(this, content);
}
答案 0 :(得分:4)
也许这不是您所希望的答案,但我认为这有助于实现您的要求。
第1部分:使用AppInvite直接发送数据
据我所知,无法直接使用AppInvites创建AppInviteContent.Builder
的自定义数据。我将在第3部分中解释一个更复杂的可能性。但是GameRequest可能是你的选择。可以使用setData
对象初始化GameRequestDialog
。类GameRequestContent.Builder
"的方法AppInviteDialog
设置了可用于跟踪的可选数据"。
第2部分:跟踪邀请
当然,您可以跟踪用户打开/me/apprequests
(通过向您的服务器发出简单请求)。遗憾的是,无法跟踪邀请的用户数量。
但是,在受邀用户接受邀请后,安装并运行移动应用程序(或者在画布上授予您权限,如果您还有画布应用程序),您可以获得所有AppRequests
(邀请) )使用Graph API对POST
进行查询。
也可能:
request_ids
请求,您的服务器将在受邀用户打开画布页面后获得,其中包含参数AppLinkData.fetchDeferredAppLinkData
。这是逗号分隔的app-request-ids列表,可以在图表查询中使用。 appLinkData.getTargetUri().getQueryParameter("request_ids")
。请参阅文档中的"Supporting incoming links"部分。现在您可以创建图形api请求。 第3部分:通过App-Link通过AppInvite发送数据
如第2.2部分所示,受邀用户打开应用后,您将获得targetUrl
。此targetUrl
在您用于AppInvite的AppLink下找到的AppLinkUrl中指定。使用"Dynamic App Link endpoint",可以将数据发送给被邀请者。
在这里想一想如何实现这个:
POST:http://example.com/users/${USER}/invites/
定义端点。 $ {USER}是邀请函发件人的用户名。GET:http://example.com/users/${USER}/invites/${UUID}
。对此端点的响应是具有已定义AppLink的页面,其中al:android:url
为example://users/${USER}/invites/${UUID}
- 当然占位符$ {USER}和$ {UUID}将替换为步骤1和2中的正确值。 http://example.com/users/${USER}/invites/${UUID}
)作为app-link-url。