Chrome 自定义选项卡 EXTRA_REFERRER 无效
Chrome Custom Tabs EXTRA_REFERRER is not working
根据文档 google,Chrome 自定义选项卡支持 app 作为引用 。但是当我检查 google 分析时,流量并不是指它显示为 direct 的应用程序。资源:https://developer.chrome.com/multidevice/android/customtabs#add-your%20app%20as%20the%20referrer
这是我的代码:
fun browseUrlCustomTab(context: Context, url: String) {
var url = url
if (!url.startsWith("http") && !url.startsWith("https"))
url = "http://$url"
val builder = CustomTabsIntent.Builder()
.addDefaultShareMenuItem()
.setToolbarColor(ContextCompat.getColor(context, getThemePrimaryDarkColor()))
.setShowTitle(true)
.enableUrlBarHiding()
//.setStartAnimations(context, android.R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(context, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.setCloseButtonIcon(getBitmapFromVectorDrawable(context, R.drawable.ic_back)!!)
val customTabsIntent = builder.build()
customTabsIntent.intent.setPackage("com.android.chrome")
//customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_NEW_TASK
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,
Uri.parse(""+Intent.URI_ANDROID_APP_SCHEME + "//" + context.packageName))
customTabsIntent.launchUrl(context, Uri.parse(url))
}
我想问的是有什么我遗漏的或有什么方法可以在 google 分析上获得推荐。
在 Chrome Custom Tabs : Add your app as the referrer 中提到使用 Intent.URI_ANDROID_APP_SCHEME 获取流量来源,但它是一个整数标志,其值为 2,这使得引用 URI 为“2://com.example.app”我认为这是无效的,所以你可以参考
android Android : URI_ANDROID_APP_SCHEME 的意图 class 您可以使用 android-app: 而不是
Intent.URI_ANDROID_APP_SCHEME
fun browseUrlCustomTab(context: Context, url: String) {
var url = url
if (!url.startsWith("http") && !url.startsWith("https"))
url = "http://$url"
val builder = CustomTabsIntent.Builder()
.addDefaultShareMenuItem()
.setToolbarColor(ContextCompat.getColor(context, getThemePrimaryDarkColor()))
.setShowTitle(true)
.enableUrlBarHiding()
//.setStartAnimations(context, android.R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(context, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.setCloseButtonIcon(getBitmapFromVectorDrawable(context, R.drawable.ic_back)!!)
val customTabsIntent = builder.build()
//customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_NEW_TASK
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,
Uri.parse("android-app://" + context.packageName))
customTabsIntent.launchUrl(context, Uri.parse(url))
}
所以首先,我花了很多时间思考这个问题并尝试了很多东西。所以我观察到的是这个
我试过的 URL 是 https://www.whatismybrowser.com/ 它只显示推荐人。
片段 1: 在我的第一次尝试中,我使用了这个
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,"android-app://"+context.packageName)
但该网站根本没有向我显示引荐来源网址。我说没有推荐人/隐藏
片段 2: 所以接下来我尝试了这个
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER_NAME,"android-app://"+context.packageName)
通过使用 EXTRA_REFERRER_NAME 我能够清楚地看到引荐来源网址,即我的包裹
android-app://com.mypackage.something/
所以,现在我将 https://www.whatismybrowser.com/ 替换为我的原始网站,该网站已经与 google 分析帐户链接 我希望它能将流量来源显示为我的应用程序包名称,但不幸的是没有理由, 我仍然得到直接流量而不是我的包裹
那么这个的替代品是什么?
所以,我查看了这个博客:A Handy Guide to UTM Codes: Know Which of Your Campaigns Really Work
所以,他们提到的只是在 URL 中使用 utm_source 和 utm_medium,同时使用 chrome 自定义选项卡 [=19] 启动 URL =]
我这样试过
browseUrlCustomTab(this,"https://www.mysitename.com?utm_medium=MyAndroidApp&utm_source=in.mypackage.app")
并且它在 google 分析
中显示的包名称起作用
我的结论:
我想这与 google 分析本身有关。因为 https://www.whatismyreferer.com/ 站点显示了引荐来源网址,即我使用第二个片段时的包裹
所以我想我的假设是,要么我必须不正确地设置 google 分析帐户,要么 EXTRA_REFERRER [=18= 中提到的事情] 不再工作了。
而且我不知道我提到的解决方法是好是坏,我也不知道它的优缺点。但我相信它会按预期工作
根据文档 google,Chrome 自定义选项卡支持 app 作为引用 。但是当我检查 google 分析时,流量并不是指它显示为 direct 的应用程序。资源:https://developer.chrome.com/multidevice/android/customtabs#add-your%20app%20as%20the%20referrer
这是我的代码:
fun browseUrlCustomTab(context: Context, url: String) {
var url = url
if (!url.startsWith("http") && !url.startsWith("https"))
url = "http://$url"
val builder = CustomTabsIntent.Builder()
.addDefaultShareMenuItem()
.setToolbarColor(ContextCompat.getColor(context, getThemePrimaryDarkColor()))
.setShowTitle(true)
.enableUrlBarHiding()
//.setStartAnimations(context, android.R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(context, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.setCloseButtonIcon(getBitmapFromVectorDrawable(context, R.drawable.ic_back)!!)
val customTabsIntent = builder.build()
customTabsIntent.intent.setPackage("com.android.chrome")
//customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_NEW_TASK
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,
Uri.parse(""+Intent.URI_ANDROID_APP_SCHEME + "//" + context.packageName))
customTabsIntent.launchUrl(context, Uri.parse(url))
}
我想问的是有什么我遗漏的或有什么方法可以在 google 分析上获得推荐。
在 Chrome Custom Tabs : Add your app as the referrer 中提到使用 Intent.URI_ANDROID_APP_SCHEME 获取流量来源,但它是一个整数标志,其值为 2,这使得引用 URI 为“2://com.example.app”我认为这是无效的,所以你可以参考 android Android : URI_ANDROID_APP_SCHEME 的意图 class 您可以使用 android-app: 而不是 Intent.URI_ANDROID_APP_SCHEME
fun browseUrlCustomTab(context: Context, url: String) {
var url = url
if (!url.startsWith("http") && !url.startsWith("https"))
url = "http://$url"
val builder = CustomTabsIntent.Builder()
.addDefaultShareMenuItem()
.setToolbarColor(ContextCompat.getColor(context, getThemePrimaryDarkColor()))
.setShowTitle(true)
.enableUrlBarHiding()
//.setStartAnimations(context, android.R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(context, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.setCloseButtonIcon(getBitmapFromVectorDrawable(context, R.drawable.ic_back)!!)
val customTabsIntent = builder.build()
//customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_NEW_TASK
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,
Uri.parse("android-app://" + context.packageName))
customTabsIntent.launchUrl(context, Uri.parse(url))
}
所以首先,我花了很多时间思考这个问题并尝试了很多东西。所以我观察到的是这个
我试过的 URL 是 https://www.whatismybrowser.com/ 它只显示推荐人。
片段 1: 在我的第一次尝试中,我使用了这个
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,"android-app://"+context.packageName)
但该网站根本没有向我显示引荐来源网址。我说没有推荐人/隐藏
片段 2: 所以接下来我尝试了这个
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER_NAME,"android-app://"+context.packageName)
通过使用 EXTRA_REFERRER_NAME 我能够清楚地看到引荐来源网址,即我的包裹 android-app://com.mypackage.something/
所以,现在我将 https://www.whatismybrowser.com/ 替换为我的原始网站,该网站已经与 google 分析帐户链接 我希望它能将流量来源显示为我的应用程序包名称,但不幸的是没有理由, 我仍然得到直接流量而不是我的包裹
那么这个的替代品是什么?
所以,我查看了这个博客:A Handy Guide to UTM Codes: Know Which of Your Campaigns Really Work
所以,他们提到的只是在 URL 中使用 utm_source 和 utm_medium,同时使用 chrome 自定义选项卡 [=19] 启动 URL =]
我这样试过
browseUrlCustomTab(this,"https://www.mysitename.com?utm_medium=MyAndroidApp&utm_source=in.mypackage.app")
并且它在 google 分析
中显示的包名称起作用我的结论:
我想这与 google 分析本身有关。因为 https://www.whatismyreferer.com/ 站点显示了引荐来源网址,即我使用第二个片段时的包裹
所以我想我的假设是,要么我必须不正确地设置 google 分析帐户,要么 EXTRA_REFERRER [=18= 中提到的事情] 不再工作了。
而且我不知道我提到的解决方法是好是坏,我也不知道它的优缺点。但我相信它会按预期工作