Why Facebook clicks don’t match Google Analytics?

    Why Facebook clicks don’t match Google Analytics?

    Who does track their Facebook ads with Google Analytics? Do you notice that Facebook clicks don’t match Google Analytics sessions? I started researching this problem more in-depth after the discrepancy reached more than 75% – yes, the data variated so much. There are a lot of articles written on this topic (even Facebook explains possible reasons here) however the answers confuse me even more. I need a clear explanation of why the changes are so big, so that I can explain it to my colleagues, my manager, my client and most of all myself. Scroll through this article to learn more about (I really mean “learn”) the reasons why Facebook clicks data don’t match the one from Google Analytics.

    Different attribution models

    The first reason you will probably come across when researching this topic is “it’s just because they measure things differently”. My follow-up question will be then – why can’t they measure the same thing?

    Let’s first explain how Facebook measures a click and how how does Google Analytics measure a session. Next, I will show few tricks to bring two models closer. Facebook default conversion tracking is as follows: 1) 24 hour view through or 2) 28 day click through.

    What does this mean?

    Your Facebook ad is live. Let’s say the ad appears on my timeline, as I was one of the people you wanted to reach. There are three scenarios here and this is what Facebook does:

    1. I scroll through and view your ad, I ignore it and I’m not involved in any kind of action with your brand. Facebook counts this as an “impression” and nothing happens, unless you told Facebook to charge you per impression. 
    2. I scroll through and view your ad, I ignore it, but after few hours I remember your brand and go directly to your website and purchase. Facebook counts my activity as an “impression”, “click” and “conversion”- I still landed on your website within 24 hours, although I haven’t clicked on your ad directly. 
    3. I scroll through and view your ad, click on the ad directly and land on your page. Facebook counts this as an “impression” and “click”. If within 28 days of this click I still visited your website or purchased something, Facebook will also count “conversions”. All additional clicks on this link within 28 day period will be added to “clicks”. 

    When an ad includes an offsite link, we count the number of times that link has been clicked by a user on Facebook within 1 day of someone viewing your ad or 28 days after clicking on your ad (never both). The number reported for Website Clicks will reflect the total number of times the link has been clicked, even if it was from your Page.

    This explanation will probably already make the issue clear:

    1. Viewing an ad within 24 hours and landing on the website e.g. directly from your mobile phone (without directly clicking on an ad) will trigger a “click” on Facebook but on Google Analytics you will see a “direct” session (not a referral). Even if you’re using any tracking parameters in the ad link (such as Google’s UTM codes) if someone has landed on your page by viewing it (hence, not clicking on the ad) all tracking will be lost in Google Analytics.
    2. Any clicks within a 28 day period to the website (triggered after you clicked on the ad in the first place) will be mentioned in Facebook but on Google Analytics you will see “direct” sessions (hence no referrals again). What do I mean exactly? Stop all your ads on Facebook and keep on checking your Google Analytics for the next month – do you still see sessions coming from Facebook or direct sessions? This is because of the Facebook’s 28 day attribution model – those clicks will be still measured by Facebook.

    Google Analytics only reports conversions that resulted from a direct referral. Even if you created a campaign using URL parameters to track the link used in your ad, Google only reports those conversions that happened in a straight line: Clicked Ad > Converted

    The same applies to cross-devices: Google Analytics struggles to track our activities across different devices we’re using.

    How to bring the two models together?

    1. Remove 24 hour view attribution which confuses Google Analytics – this will make Facebook track clicks/conversions only when someone has clicked on your ad. An instruction on how to change it in Facebook here.
    2. Decrease the 28 day clickthrough window to shorter time period, e.g. 7 days. This will measure clicks only within a 7 day period
    3. During your Facebook Ad campaign, keep track of “direct” sessions on Google Analytics.

    Does a change of attribution model on Facebook during or after my campaign is live change past results? What is the impact of this change?

    Changing the attribution model on finished ads doesn’t change the results. If you change the attribution during a live campaign – the changes will apply to the data coming after the change, not before. Keep this fact in mind when you interpret the data after a finished campaign.

    Ad blockers or disabled JavaScript, images and cookies

    If the audience you target uses adblockers such as Ghostery or AdBlock plus, this means not only ads are blocked in their browsers but also the tracking codes. Although many of them don’t disable Google Analytics by default, it’s very easy to change this setting.

    adblocker settings

    This means, adblockers don’t allow Google Analytics tracking code to be fired when the user browses a particular content and hence their sessions are missed.

    Users entering your website through a click might have JavaScript or images turned off, or might use other technologies preventing Google Analytics from reporting about your website users (such as by installing the Google Analytics opt-out browser add-on).

    This is why you might see more clicks on Facebook and nothing on Google Analytics.

    How to analyze the impact of adblockers and how to fix this issue?

    Be aware of the countries you’re targeting with your ads and what the usage of adblockers is there. Measure the impact of adblockers on your site with Google Tag Manager – great “how-to” article for more information here.

    Time delay

    You might not be aware of how many actions happen in the background once you click on an ad to land on an external page. There are a lot of requests and codes fired and loaded before you see more content, e.g. in-app browser loads, images and/or videos are downloaded, Facebook tracking code and Google Analytics code are fired. For a Google Analytics “session” to be officially recorded in the dashboard, a JavaScript code requests a pixel from Google Analytics first.

    Now let’s put all those actions in time – this all requires seconds to load. Hence, the longer your page loads and the more requests it has from it and to it, the higher the risk that a Google Analytics session will not be recorded.

    There’s a time delay between a user clicking on the advert in Facebook and being directed to your site. On a mobile this delay may be several seconds long, and during the delay the user will think about going back to safety (Facebook’s app) or just closing the app entirely. This will happen more often if the visitor is not familiar with your brand, and also when the page contents are slow to load.

    How to fix it?

    First of all, be aware of what your page load time is as well as the amount of requests it needs to process. Use this Google tool or tools like Pingdom to see if this is an issue in your case. The goal of many websites these days is to load within 5 seconds max.

    Another issue with load times – where is your Google Analytics code placed?

    If your Google Analytics tracking code is at the bottom of your web page and placed right above the closing of the body section then you are definitely at risk for reporting discrepancies. And, the bigger and heavier the page the more at risk you are. Why is this an issue? Because a person who clicks on your ad and bounces quickly will in all likelihood never trigger the Google Analytics tracking code lying at the bottom of your page code. One simple solution is to place your Google Analytics tracking code near the top of the page to minimize the risk.

    Google Analytics settings

    Something as obvious as making sure your website has the right Google Analytics tracking code live might sound trivial, but I’ve seen cases when this has caused the problem.

    Did you connect the right Google Analytics account to your website?

    Check the backend of your website (e.g. in Theme Options in WordPress or in your database files where the Google Analytics’ JavaScript is placed) and compare the existing Google Analytics code with the one mentioned in Google Analytics dashboard that you use to analyze your data.

    Also, check if the account id is the same. I use a plugin called Ghostery to see if the right Google Analytics pixel is fired on my website:

    Ghostery plugin Ghostery plugin Google Analytics tracking code

    Did you allow tracking in Google Analytics?

    Although UTM codes do work with Google Analytics by default, it could be that you didn’t allow manual overriding once tracking is fired.

    In GA, under the Admin tag and then ‘Property settings’ you should also tick the box saying ‘Allow manual tagging (UTM values) to override auto-tagging (GCLID values)’ to make this work more reliably.

    GA tracking settings

    Those are possible reasons as to why data changes so much from one platform to another. I’m also not excluding the argument of Facebook sending bots and falsifying data, which happens on other advertising platforms as well. I had this discussion with a Facebook representative and his recommendation was to research the attribution models, understand the technicalities of each platform and eventually, come up with the answer that is “somewhere in the middle”.

    I’m wondering if you tested different attribution models already and what your experiences are. Do you also experience the situation when Facebook clicks don’t match Google Analytics? Share your thoughts and questions below!