Android Deeplink,Facebook 广告deeplink配置与测试

先对DepplLink做一个简单的介绍:Android和ios都有一种叫做deeplink的功能,简单讲他就像一个判断,当你运行或者点击了这个唤起deeplink功能的某个控件,然后唤起了deeplink监听事件,它就会开始运行,检查你手机本地有没有安装你指定的某个应用,如果有就唤起你指定的应用的某个页面,如果手机本地没有安装,就跳转到你指定的应用商店,提示用户进行下载的操作。Deeplink是目前使用广告跟踪非常热门的一种方式,像Facebook的广告,就是以这种方式实现把广告流量,应用安装转化率绑定好一起的,而且能对应用和广告进行深度追踪。所以,我的任务也来了,哈哈,果不其然,很快就收到下了这项任务:

3、接入FB deeplink功能,区分自然量和广告量,相关内容可查询谷歌;
4、广告量进入应用强制付费,自然量广告弹出机制原计划不变;

哈哈,是不是苦笑不得,说曹操曹操就到了,我只想说,如果我能说财神爷到他就真到了,那我岂不是要开心死了,哈哈!开始干吧,搂其键盘就开始Google 这个fb deeplink的鬼东西了,其实说实话,第一次做Facebook的AD DeepLink ,头脑里真的是空白加懵懵的~
不过经过一番查询学习,很快找到了Android deeplink的用法与原则,下面开始我的流程:
先附上Facebook的deeplink官方文档地址:https://developers.facebook.com/docs/app-ads/deep-linking#step-by-step
谷歌app deeplink官方教程:https://developer.android.com/training/app-indexing/deep-linking.html
仔细看过后就能明白具体的配置和操作步骤基本,这里我贴下我的配置过程:

首先在你的Android应用的清单文件AndroidManifest.xml中,在你想作为深度链接要跳转的一个activity的中做如下配置,配置的注意事项都已经做了注释说明,这里不再细节赘述:

    android:name="com.wj.app.MainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppThemeTwo">
            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="wjapp"
                    android:host="he.com"
                    android:pathPrefix="/lunch"/>

            </intent-filter>
            <!--intent-filter配置注意事项-->
            <!--首先说明一点:如果你添加<intent-filter>的Activity不包含android.intent.action.MAIN的<action>标签,就无需配置多个intent-filter。也就是下面注释说明的内容-->
            <!--在有<action android:name="android.intent.action.MAIN" />的<intent-filter>中添加<data>标签配置会无法通过Deeplink正确打开指定的页面。一个Activity是允许有多个<intent-filter>标签,所以另外再创建一个<intent-filter>标签进行配置即可;-->
            <!--<category android:name="android.intent.category.LAUNCHER" />和<category android:name="android.intent.category.DEFAULT" />两个是相互冲突的,同时添加这两个category在一个intent-filter标签中会导致桌面图标无法显示的问题;-->

        </activity>

做deeplink的效果测试,如果你不要求太多,只想实现在手机网页里面点击就可以判断是否安装,跳转打开还是到应用商店下载的功能,用下面的网页测试就可以:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>App Link</title>
<meta property="al:android:url" content="wjapp://he.com/lunch">
<meta property="al:android:package" content="com.jdz.wsbn">
<meta property="al:android:app_name" content="名师指路">
<meta property="al:web:should_fallback" content="false">
<meta http-equiv="refresh" content="0;url=http://sj.qq.com/myapp/detail.htm?apkName=com.jdz.wsbn">

</head>
<body>判断中,请稍等...

 <input type="button" value="点击我打开Deeplink" onclick="javascrtpt:window.location.href='wjapp://he.com/lunch'">
</body>
</html>

如果是Facebook Ad 测试deeplink的话就得按照我下面介绍的步骤做了,知道步骤的话一点也不难,但是你不知道的时候摸索起路子来真的很吃力!下面分享下我找到的测试方法,其实我也算找的老司机指路才少走了好多弯路的,下面干货走起:
首先你需要把你的Facebook账号添加为你所作项目的开发者人员身份,测试人员不行的,没有查看到应用的权限,没有这个权限你就不能选择应用进行广告deeplink广告测试(我就是在这里吃过亏,产品经理一直说没问题的,测试人员有权限看到,一直以为是我这边没做好,结果更换为开发者身份后,马上可以看到公司的项目了)
测试广告的第一步:打开这个应用广告帮手页面:https://developers.facebook.com/tools/app-ads-helper/?id=2069693629938832
这里写图片描述
第二步:点击选择应用,选中你的应用,然后确认,再往下滑动网页会看到下面界面:
这里写图片描述
第三步:点击测试深度链接按钮,在弹出的窗口中填写相应参数信息,发送测试链接:
这里写图片描述
第四步:从手机端点击进入测试效果:
这里写图片描述
第五步:选择选项,就是你自己做一些哪些是通过点击deeplink跳转进来的用户进行统计,也就是记录属于广告量的跳转:
在你的application中onCreate()生命周期方法中添加如下代码

//为安装后接收深度链接,你的应用需要在启动时调用 Facebook SDK 方式中的 ,AppLinkData.fetchDeferredAppLinkData 。 
        AppLinkData.fetchDeferredAppLinkData(this, AppLinkData.CompletionHandler(){})

在你deeplink设置跳转的activity中创建如下方法进行判断:

private fun testFbDeepLink() {
        FacebookSdk.sdkInitialize(this)
        val targetUrl = AppLinks.getTargetUrlFromInboundIntent(this, intent)
        if (targetUrl != null) {
            Log.e("MainActivity---", "App Link Target URL: " + targetUrl!!.toString())
            if(targetUrl!!.toString() == "wjapp://he.com/lunch"){
              //做你记录的操作,这里添加判断是为了区分在多个deeplink广告点击设置的时候,进行区分是哪个deeplink跳转过来的
            }
        }
    }

最后在activity的onCreate()生命周期方法中调用该方法:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // deepLink test
        testFbDeepLink()

    }

好了,到这一步就ok了,本人的集成经验总结,若有不到之处或者错误之处,欢迎留言指正,友好谦虚的交流学习是我们永远的提升指路,小弟一定不胜感激!谢谢!!!

猜你喜欢

转载自blog.csdn.net/wjj1996825/article/details/80932453