When it comes to tracking there are no absolutely right figures due to different tracking models, and Facebook and Google Analytics tracking measuring slightly different things.
Tracking Models
Google Analytics uses link URL tags for identifying the traffic and/or campaign source, whereas Facebook relies on identifying Facebook users for offsite actions with installed conversion Pixels and matching this identified Facebook user visiting the site to data about which ads the user has seen and clicked earlier on Facebook within a given attribution window.
Attribution Windows
In addition to different tracking models, the default attribution windows on Facebook conversion tracking and Google Analytics are different too. Facebook conversion tracking the defaults are 7 days for click-through and 1 day for view-through. Google Analytics uses session-based last non-direct click attribution model. This model ignores direct traffic and attributes 100% of the conversion value to the last channel that the customer clicked through from before buying or converting. Analytics uses this model by default when attributing conversion value in non-Multi-Channel Funnels reports.
Attribution Date
Google Analytics and Facebook may report differing conversion numbers also due to differences in conversion date attribution. Google Analytics reports events for the date, when the goal event took place on the Google Analytics account timezone - whereas Facebook reports conversions on the date when the ad click or impression took place on the Facebook ad account time zone.
Multiple Visits
A single user visiting a site multiple times on the same day may or may not open multiple sessions on Google Analytics, however, the keys there are the length of inactivity between the visits and campaign source. As soon as one session ends, there is then an opportunity to start a new session. There are two methods by which a session ends on Google Analytics:
- Time-based expiry
- After 30 minutes of inactivity (a default, that can be changed)
- At midnight (end of the day)
- Campaign change
- If a user arrives via one campaign, leaves, and then comes back via a different campaign
More about sessions on Google Analytics help article → How a session is defined in Analytics
Facebook Website clicks vs. Google Analytics sessions
It is normal that there are small discrepancies between Facebook's Website clicks metric and Google Analytics' Sessions metric. As a session in Google Analytics expires (by default) after 30 minutes of users inactivity on the site and at midnight, it is possible that one person's multiple website link clicks are counted as fewer sessions than the times they've clicked an ad on Facebook.
Example If a person clicks on a link ad on Facebook and lands on the advertisers landing page, then within 30 minutes clicks on link ad of the same campaign again and lands again on the landing page, this would be counted as two Website clicks on Facebook, but as only one session on Google Analytics.
Facebook conversions vs. Google Analytics goal events
Link URL tag-based tracking, which Google Analytics uses (with utm_ parameters) usually provides more accurate conversion data on direct offsite conversions on Android mobile, than Facebook's conversion-pixel-based tracking.
Example When a mobile user clicks an ad on their Facebook app, the link opens on Android devices on the default web browser app of the device. If the user is not logged into Facebook on their web browser app, Facebook conversion Pixel on the page will not be able to connect this visit to the page to the right Facebook user account. In this case Google Analytics, however, is able to track the traffic coming from this specific Facebook ad, because the URL tags will be passed to the browser app, too, as a part of the link URL.
It is rather common, that Facebook conversion tracking and other tracking methodologies provide slightly differing results.
Attribution windows
Attribution windows define how conversions are calculated and attributed back to clicks and ad impressions. Differences in attribution types or attribution windows (timeframe) can be a cause for differing figures on different tracking platforms.
Time zone
Facebook and third-party tools (Google Analytics, Adjust) could be set up on different timezones, so when analyzing yesterday data you might get different numbers due to the difference in time (not the same midnight).
If the visitor clicks and views multiple ads, which ad gets the conversion?
Check how conversion attribution model is calculated in Facebook.
Also it doesn't make a difference if you have multiple ad accounts for the same website and page: the conversion is attributed to the ad that delivered the last click. If visitor didn't click any ad, only viewed many, Facebook attributes the conversion to the last impression.
3rd-party metrics
Metrics from other measurement providers, like Google Analytics, DoubleClick and Adobe, or Mobile Measurement Partners like Adjust, Appsflyer, Kochava and Singular, have their own specific ways of measuring conversions and attributing them to ads.
How to interpret differing figures?
On one hand, Google Analytics tracking will likely be more consistently able to track conversions, which originate on clicking a link ad on iOS/Android Facebook app, directly after which the person converts on a mobile browser. On the other hand, Meta Pixel tracking is much better at tracking cross-device conversions, which originate after seeing (view-through conversion) or clicking an ad on iOS/Android Facebook app, after which the offsite conversion takes place later on by the same user on another device, such as the desktop browser.
One general advise, though: when evaluating performance of the ad, do not rely on just one metric, but rather on multiple ones, and look at the trends, rather then just numbers, when possible. Normally, the respective graphs will look quite similar, and if there is a significant spike of only 1 metric - then it may be indicator of an issue in the setup, or at least a change in the setup and need to wait for the data accumulation, if the change was recent.