Warm tip: This article is reproduced from serverfault.com, please click

laravel-跟踪 302 重定向 (/app) 到应用商店的获取渠道

(laravel - Track acquisition channels for 302 redirects (/app) to app stores)

发布于 2021-01-02 12:24:17

我们创建了一个智能链接unblnd.com/app

此链接检测设备:台式机、iphone 或 android。根据设备,它会转到主页或特定的应用程序商店。

该链接是未编入索引的 302 重定向。

目标: 在 google 分析中包含 /app 重定向路由并跟踪获取渠道

想法:

  • 更改unblnd.com/sitemap.xml
  • 不要使用重定向,只需转到主页
  • 使用谷歌标签管理器
  • 一些第三方

是否有一些干净、简单的方法被认为是最佳实践?

更多信息:

为了创建重定向,我们使用这个 Laravel 控制器方法

路线/ web.php

Route::get('/app', 'LandingController@app');

着陆控制器

public function app(Request $request)
    {
        if (!Agent::isMobile()) {
            return redirect('/');
        }
        else if(Agent::isAndroidOS()) {
            return Redirect::away(config('app.android_url'));
        }
        else if (Agent::isIphone()) {
            return Redirect::away(config('app.apple_url'));
        } 
        return redirect('/');
    }
Questioner
Adriaan De Bolle
Viewed
0
Adriaan De Bolle 2021-01-03 21:13:31

好的,我相信我们找到了一个很好的答案!

我们将控制器方法更改为始终重定向到主页,但使用查询字符串参数:

    public function app(Request $request)
    {
        if (!Agent::isMobile()) {
            return redirect('/?app=desktop');
        }
        else if(Agent::isAndroidOS()) {
            return redirect('/?app=android');
        }
        else if (Agent::isIphone()) {
            return redirect('/?app=iphone');
        } 
        return redirect('/?app=desktop');
    }

当主视图安装在浏览器中时,它会检查查询参数并在必要时重定向:

    let app_url = false;
    const urlParams = new URLSearchParams(window.location.search);
    if (urlParams.get('app') && urlParams.get('app') === 'android') app_url = "{{config('app.android_url')}}";
    if (urlParams.get('app') && urlParams.get('app') === 'iphone') app_url = "{{config('app.apple_url')}}";
    if (app_url) {
        window.location.href = app_url;
    }