Laravel Jetstream 添加谷歌分析

时间:2021-03-02 07:33:28

标签: laravel vue.js inertiajs jetstream

我正在努力让 Google Analytics 使用 Laravel Jetstream 的 InertiaJS 堆栈正确报告。我需要跟踪单个页面的访问,但由于它是 SPA,我不确定如何处理。我已将标签放置在我的 app.blade 中,但这会显示所有流量,并非特定于每个页面,也无法触发事件。

将 GA 引入 Laravel Jetstream Inertia 堆栈的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我选择使用 Inertia::share 然后在我的 app.blade 上我引用了相应的元素,例如标题等作为道具。

例如。 RouteController(返回惯性视图):

Inertia::share([
            'title' => $title,
            'description' => $description,
            'meta_image' => $meta_image,
            'meta_url' => $meta_url
        ]);
return Inertia::render...

应用程序刀片:

<title>{{$page['props']['title'] ?? ''}}</title>
<meta name="description" content="{{$page['props']['description'] ?? ''}}">
...

最后在我的 AppLayout.vue 中,我监视了这些页面更改的道具:

watch: {
        "$page.props.title"(newTitle) {
            this.setPageData();
        },
        "$page.props.description"(newDescription) {
            this.setPageData();
        },
    },

只需要观察标题,因为机器人应该加载每个页面新鲜(出于 SEO 目的),但这适用于元标记(开放图谱)和 GA 跟踪每个页面。