javascriptfirebasegoogle-analyticsfirebase-analytics

How to disable automatic page_view logging in Firebase analytics


I'm using the official Firebase JS SDK in a Vue-based SPA. To get more useful analytics through Firebase's firebase.analytics() Google Analytics integration, I would like to disable automatic reporting of page_view events.

I'm aware that, under the hood, Firebase Analytics uses Google's gtag.js for reporting to Google Analytics and I know that I can configure gtag to not send that event automatically like so:

gtag('config', 'MEASUREMENT_ID', {
  'send_page_view': false
});

My problem is that I can't seem to find a way to set that kind of configuration value through firebase.analytics(). I've tried analytics.setUserProperties({ send_page_view: false }), but that doesn't seem to work as the page_view event is still reported to Google.

Is there any way to set this configuration value in Firebase analytics or is there another way to disable automatic page-view reporting here?


Solution

  • I am currently searching for this same solution. I am using firebase analytics in a react spa app. For me, the solution proposed by @Draven does not seem to work.

    Using the GA Debug chrome extension, I can see Processing GTAG command: ["config", "G-3MVDF7WX31", {send_page_view: false}] being called, but shortly after I also see Sending event "page_view" to undefined being called. After that, Processing GTAG command: ["config", "G-3MVDF7WX31", {send_page_view: false}] is called again. Using the Google Analytics DebugView I can still see the page view event being logged.

    UPDATE

    Looking through the Firebase JS SDK, there does not seem to be a way to disable the default page_view, which occurs during the call to firebase.analytics(). However I came up with a workaround which, after light testing, seems to work. Place the following BEFORE you call firebase.analytics():

    <script>
    window.dataLayer = window.dataLayer || [];
    
    function gtag() { dataLayer.push(arguments); }
    
    gtag('set', { 'send_page_view': false });
    </script>
    

    See github issue: https://github.com/firebase/firebase-js-sdk/issues/3988