Facebook应用程序邀请:将竞选参数传递给Play商店

时间:2015-07-19 17:22:14

标签: android facebook google-play

我正在使用Facebook App Invites for Android。一切正常:我发送邀请,我在目标设备上收到邀请,我可以从Google Play安装应用。

现在我想将用户的推荐人代码传递给Google Play。这个想法是我的朋友"安装应用程序,他自动拥有我的推荐代码。我的BroadcastReceiver正在捕捉Google广告系列参数。

我有一个服务器端脚本,它生成一个简单的代码:

<html>
<head>
    <meta property="fb:app_id" content="<MY_APP_ID>">
    <meta property="og:title" content="<APP_NAME>">
    <meta property="al:android:url" content="market://details?id=<PACKAGE_NAME>&amp;referrer=utm_source%3D<REF_CODE>">
    <meta property="al:android:app_name" content="<APP_NAME>">
    <meta property="al:android:package" content="<PACKAGE_NAME>">
</head>
<body>
    Redirect...
</body>
</html>

问题是Facebook更改广告系列参数,所以我收到这样的内容:

utm_source = apps.facebook.com
utm_content = {"app":0,"t":<SOME_NUMERIC_ID>}
utm_campaign = fb4a

Android端:发送邀请:

AppInviteContent content = new AppInviteContent.Builder()
                        .setApplinkUrl("<SERVER_SCRIPT_URL>.php?referral="+ref_code)
                        .setPreviewImageUrl("<IMAGE>.png")
                        .build();
                if (AppInviteDialog.canShow()) {
                    appInviteDialog.show(getActivity(), content);
                }

Android端:广播接收器:

@Override
public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();
    String referrerString = extras.getString("referrer");
    ...
}

我在2014年here发现了一个类似的问题,但未提供答案。

所以,我的问题是如何通过Facebook App Invites将自己的参数传递给Play Store,如何通过BroadcastReceiver接收它?

2 个答案:

答案 0 :(得分:1)

由于Facebook控制流量,您无法使用Android或iOS的任何内置机制(如referrer参数)来接收延迟的深层链接参数。此外,即使您可以在Android上安装引荐来源,有时也需要几秒钟才能为Google Play投放,从而导致用户体验相当滞后。

Facebook有一个未记录的机制,您可以在其广告和邀请产品之上构建自己的延迟深层链接解决方案。不幸的是,正如接受的答案所提到的,iOS应用程序邀请延迟深层链接完全被打破。广告产品有效。

这是技术流程:

  1. 使用适当的深层链接创建应用邀请或安装广告,如下所示:
  2. enter image description here

    1. 新用户(没有应用)点击应用邀请或应用安装广告
    2. 新用户安装您的应用
    3. 向此端点发出POST请求https://developers.facebook.com/docs/graph-api/reference/application/activities/
    4. https://graph.facebook.com/<APP ID>/activities?access_token=<APPACCESSTOKEN>&event=DEFERRED_APP_LINK&advertiser_id=<GAID>&advertiser_tracking_enabled=1&application_tracking_enabled=1

      1. 将从该Graph API为已点击的关联对象
      2. 返回应用链接数据

        或者如果你不想为所有这些事情烦恼,并且你想要在Facebook之外工作的深层链接,我一直在研究这个名为branch.io的免费工具。这对你来说。

答案 1 :(得分:0)

Facebook显示的移动应用安装广告始终覆盖Play商店链接/意图中的if DeviceType.IS_IPHONE_6 { //iPhone 6 specific code goes here. } 参数。你无能为力。

您可以使用延迟deep linking从Facebook将数据传输到您的应用中,此处也会讨论here