Google URL 中没有变量的 Analytics UTM 跟踪

Google Analytics UTM Tracking Without Variables in URL

我需要能够在 Google Analytics 中跟踪 UTM 参数,而不需要它们在 URL 中。

我们在页面加载时加载信息,我们希望在我们的 UTM 参数中使用此信息,我们不想将用户重定向到附加了 UTM 变量的 URL。

我在这个页面上看到您可以使用 javascript 调用综合浏览量,但无论如何我都看不到指定 utm 参数:https://developers.google.com/analytics/devguides/collection/analyticsjs/pages.

我只是使用 Google gtag.js documentation on PageViews 来编辑加载初始页面浏览信息的脚本。

我首先拉取当前 URL 并将变量附加到 URL 的末尾,然后将新的 URL 作为页面浏览量传递以覆盖 URL没有 UTM 参数。

我正在使用 laravel 所以 @if 语句将在 JS 中工作,并且 {{}} 正在回应变量。

<script>
    var url = new URL( window.location.href );
    @if( isset( $request->utm_source ) )
        url.searchParams.set( 'utm_medium', '{{ strtolower( $request->utm_source ) }}' );
    @endif
    @if( isset( $request->utm_medium ) )
        url.searchParams.set( 'utm_medium', '{{ strtolower( $request->utm_medium ) }}' );
    @endif
    @if( isset( $request->utm_campaign ) )
        url.searchParams.set( 'utm_campaign', '{{ strtolower( $request->utm_campaign ) }}' );
    @endif
    @if( isset( $request->utm_term ) )
        url.searchParams.set( 'utm_term', '{{ strtolower( $request->utm_term ) }}' );
    @endif
    @if( isset( $request->utm_content ) )
        url.searchParams.set( 'utm_content', '{{ strtolower( $request->utm_content ) }}' );
    @endif

    function gtag() {
        dataLayer.push(arguments)
    }
    window.dataLayer = window.dataLayer || [], gtag("js", new Date), gtag("config", "GA_MEASUREMENT_ID", {
        'page_title': document.title,
        'page_location': url.href
    });
</script>