How To Track Facebook Advertising Campaigns in Google Analytics

Twitter Facebook Linkedin Email

Did you ever run an ad on Facebook and feel like Google Analytics wasn’t reporting the traffic? Did you notice a jump in your direct traffic instead? Here’s why and what you can do to make sure Google Analytics properly tracks traffic from your Facebook ads.

Facebook Advertising and Google Analytics

Where’s My Facebook Traffic?

A client of mine recently ran some Facebook ads and was perplexed that there was no big bump in their referral traffic from Facebook. Here’s a screenshot showing a typical day during the campaign.


Referral traffic from Facebook shows up as (mobile), (desktop) and (link shim traffic from FB). The 24 sessions shown here were much less than expected.

Facebook Traffic Often Shows up at Direct

However, this client was seeing a big bump in their direct traffic. A typical day would have 10-15 direct, but here they were seeing 123. The problem was that Google Analytics was classifying a lot of the Facebook advertising traffic as direct.

In Google Analytics, direct traffic is traffic for which a referrer wasn’t specified. GA gets the referral information from the HTTP header. However, if the HTTP header does not include a referrer field, then GA cannot figure out where the request is coming from.

For many reasons, traffic from Facebook ads often do not include a referrer, and that causes GA to classify the traffic as direct. So, in order to accurately classify traffic coming from Facebook, you need to take a different approach.

Campaign Tagging

You need to tag your Facebook campaigns. Campaign tagging means adding parameters to the end of your landing page URL to identify the source. Google describes it here. When a Facebook user clicks on a link that has been tagged in this way, those parameters are detected by Google Analytics and used to correctly classify the traffic as coming from Facebook.

How do you know what parameters to use for tagging? Luckily, Google provides a convenient URL builder to help you construct a tagged link to your landing page.

Step-by-step: Tagging a Facebook Ad Campaign

Here are the steps you can use to create a Facebook ad that is tagged for tracking in Google Analytics. First, open your Facebook Ads Manager and click Create Ad as you normally would.

Start creating the Facebook ad

For this example, let’s assume that you want to optimize for clicks to your website. So, select that option from Facebook.

Select the option to generate clicks to website

Now, Facebook asks you to enter the URL of the landing page where ad clicks should send the visitor. At this point, head over to the Google URL builder and fill out the form provided to add tagging to your landing page.

Enter your landing page URL where it says “Website URL”. Use “facebook” for the “Campaign Source”. In this case, I’m using “cpm” as the “Campaign Medium” because Facebook is going to charge me for impressions, not just clicks. If this were a pay-per-click campaign, I would use “cpc”. Lastly, give your campaign a name where it says “Campaign Name”.

How to fill in the form for the Google URL builder

When you click “Submit”, Google will give you an enhanced landing page URL with the parameters properly added for accurate classification by Google Analytics.

Google URL builder returns the tagged landing page URL

This is the URL that you enter into the Facebook ad builder when prompted to “Enter URL to promote”.

Enter the tagged URL when prompted by Facebook

Now, complete the creation of your Facebook ad as you normally would. Start the campaign, and observe what happens in Google Analytics.

Facebook Advertising Traffic – Properly Classified

After a few hours, check your Google Analytics. You should start seeing traffic from Facebook classified as “facebook/cpm” or “facebook/cpc”.

Facebook advertising traffic showing up correctly

Now, if you click through on the “facebook/cpm” row in Google Analytics, you can see the campaign information that you entered in the Google URL builder. Make sure that you select “Campaign” as the Primary Dimension in the Google Analytics report. This will show you the name of your campaign. As you can see below, it shows clicks coming from the “Clicks to Website 1” campaign – which is what we entered into the Google URL builder.

Viewing your Facebook campaign name in Google Analytics

Subscribe to us

  • +1


    +1, grazie

  • If i’ve many campaign how can i automation this?

    • markdhansen

      Alessio – what is it you want to automate? The tagging of the campaign URLs?

      • Yes, i’d like traking my facebook ads campaign without create every single link

        • markdhansen

          Many of the tools that Facebook advertisers use for automation can auto-tag for Google Analytics. I’m not an expert on these tools, so I cannot recommend any one in particular. Suggest you do a Google search on something like “automatically add google analytics tags to facebook advertising” – which turned up this one for me:

          • Thanks

          • chsweb

            There are a few Google Sheet templates that can help with this – search for Google Sheet URL Builder. A better way is to use a Text Expansion App, like aText ($5 in Mac App Store) to create a few snippets. For example, I use aText to automate bullet proof buttons in HTML Emails and Google URLs.

            I type “glink” and aText pops open a form where I simply enter the parameters.

            For example, this link:
            “” was made in seconds with aText, right here in the comment – see attacked screenshot.

  • Lee

    I am currently running a Facebook Ad using the
    Clicks to Website Objective. I have followed all of the instructions when
    building out a custom landing page URL with the correct parameters.

    My FB Analytics are recording website clicks where as in Google Analytics under
    campaigns I am seeing no results. The campaign is not even listed. Any insight
    would be extremely helpful. I can not seem to figure out what I am doing wrong,
    that Google Analytics would not be receiving any data at all.

    Thank you in advance for your help!

    • markdhansen

      Hi Lee,

      Check that the landing page where the FB ad is sending traffic, has Google Analytics tracking installed and operating correctly. Google Tag Assistant can help with this (

      If it seems like GA is installed, then, try clicking on the URL you used to create the Website Objective. Check that it is sending you to the correct landing page. Do this a few times, and check that data from your own clicks is showing up in GA.

      If data from your own clicks is showing up, but FB clicks are not showing up, then FB might be doing something to the URL parameters (stripping them out). I’ve heard about this happening, but I have never experienced it. You can prevent that by shortening the URL with or something similar, and using the shortened URL as your Website Objective.

      Good luck!

      — Mark

    • chsweb

      Part 1 of 2:
      Google Analytics data takes 12 to 36 hours to appear in the account. If you set up a Facebook campaign today, the data will not appear in GA until tomorrow. You can test the Real Time stats in GA, that is how I test my campaigns. Real Time data in GA will show you if your Facebook campaigns are working.

      Set up your campaign in Facebook, then in GA go to Real-Time (in the left column) > Content > then click “Pageviews (Last 30 min)” and look for your campaign pages in the Real-Time data table.

    • chsweb

      Part 2 of 2:

      Getting Campaign data, from Facebook, to appear in Google Analytics is near impossible, mainly because Google Analytics (GA) categorizes your Facebook “Campaign” as a “Referral.”

      You would think that using Google’s URL Builder to construct a link, including a Campaign tag, would do the trick, but that is not the case.

      The ONLY reliable way I have found to track Facebook ad data in GA is to use my own custom link tags. Here is what I do:
      1. in my Facebook ad, in URL Parameters, enter “fbAd-A-B-C-D” where A, B, C, D are campaign, ad, version & demographics
      2. Then, in GA, I go to Behavior > Site Content > All Pages and do a filter to Incldue Page Matching RegExp fdAd

      That will now show me all of the visits I have gotten to my Facebook Ad’s landing page. From this view, I can see the Page’s value and the total unique visitors. If I got 100 unique visits, and the Page’s value is $2.34, I know that the Facebook Ad has sold $234.00 worth of products (unique visits x Page value).

      So far, I have found no better way. I can then compare the GA data to the data in Facebook Ad Manager to WooCommerce or Shop, etc.

  • Qiao Watson

    Can GA track the revenue of Facebook Mobile News Feed Ads?
    I’ll run Android mobile ads on Facebook, I’m wondering if GA can track the ads data?
    Or do i need to use a third-party tool for tracking ads revenue?


    • markdhansen

      Where is the revenue generated? If the revenue is earned by a checkout on the website, then you can use Google Analytics Ecommerce Tracking.

      • Cathy Eglington

        I don’t always see my conversions in analytics (e-commerce revenue tracking) I think it’s due to last click takes all credit. if the user navigates around the page after booking i can’t see revenue. is there a way around this?

        • markdhansen

          If Ecommerc is set up correctly, you should see all the transactions, but maybe the attribution is not what you want, because of last-click default attribution. I suggest you take a look at Google Analytics attribution modeling, so you can try to achieve what you need:

  • Claytonseo

    Hey man, thanks for the article, how do you get CPC and Impression data from FB Ads? I can only read that one must use the Google Dev Import functions, importing data sets via a customized ga:properties. No other way? Automated way?

    • markdhansen

      There is an API for FB Ads. However, I doubt that Google is going to make it super easy to import this data into Analytics, because they are competitors with FB.

      Megalytic ( is planning to integrate FB Ads via the API later this year. That will help with what you need.

  • SpaceTimeMedia

    We tag everything using URL builder, as well as an adserver tag.Although we see campaign referral traffic in GA attributed to Facebook, we still have anywhere between a 10% to 30% drop out in stats reported by Facebook and GA. And we still see an unhealthy spike in direct traffic during a campaign period. So to me in indicates that GA url builder is not fit for purpose when tracking paid for media of any variety be it Facebook or another ad network?

    • How do you know that there is a 10-30% drop off? If you are seeing a drop-off, my guess is that it is because the query parameters are getting stripped off of the URL at some point.

  • Mazza

    Hello Mark, it seems that I am loosing the parameters when my FB traffic comes from the FB APP. I am showing a lot of traffic for but the medium, campaign and content are getting lost.

    Any tips on how to bring all the utm even when traffic comes form (app)?

    • chsweb

      Mazza, Have you tried creating the tagged link and then shrinking it in or before entering it into your Facebook Ad or Facebook post?

    • markdhansen

      If you are tagging as described here, you shouldn’t be losing any parameters. Keep in mind, that if other people are sharing your content on FB, then they probably are not tagging it – so you will be getting traffic from that does not have any campaign or content UTM values.

    • Hey Mazza– I’ve been reading up on this and it seems that the solution is to use the link without tags, and then add all those tags in the “URL Tags” section. It’s available in the Power Editor in the ad settings.

  • chsweb

    For the folks who are tagging their link with Google’s URL Builder, but not seeing the data come into Google Analytics from Facebook, check out this page:

    Looks like you have to use the Power Editor to enter a tagged URL, the UTM tracking porting going in it’s own input field within the Ad Creation process:

    “First, in Facebook, just add the domain and then add the UTM codes after you create your ads. But there’s a catch. This can only be done in Power Editor. To do this, open Power Editor, select the ad, and then scroll down to the “Tracking Section,” where you’ll see the empty box beneath “URL Tags.” Paste the UTM code there.”

    • Luc Henri

      thanks for posting this chsweb! reading the comments section on this it looked like there was some confusion as to whether the tag should read “?utm_source…” or “utm_source”. do you know if the “?” is required? thanks in advance for your help, much appreciated

      • chsweb

        99.9% sure the ? is required at the beginning. In doing some testing, I found that the Facebook Ad link did not without the leading ? for the Google Analytics tracking code.

      • chsweb

        After running a few campaigns, I can confirm that putting “?utm_source…” in Ad Manager’s URL tag input results in the referring URL appearing as “??utm_source=facebook…” in Google Analytics.

        It still works fine and tracks correctly in Google Analytics. I am almost certain that when I entered the URL in Facebook WITHOUT the leading “?” that the Ads link did not work.

        I recommend including the leading ‘?’ to make sure it works. Test on your end and report back here. I am documenting this for the Multi-Channel Marketing Ad section of COMPOSE at

    • chsweb

      Make sure the “URL Tags” begins with ?

      In the screenshot above, it should be ?utm_source=facebook…

  • sumrando

    Hi, I’m getting m.facebook AND mobile.facebook showing up. What’s the difference?

  • Rob Banks

    So adding the GA UTM through the URL Parameters (optional) box at the ad level should help eliminate discrepancies between HTTPS and HTTP from clicks that come from in-app? Also, should you leave the UTM code on the URL in the ad URL or just put it in the URL Parameters (Optional) box at the ad level?

    • chsweb

      Put the Google URL parameters in the optional box. If you put them in the Ad’s URL, they get lost.

      Even if you put it in the optional box, I still only see the campaign tracking show up in the referrals, not in campaigns.

  • Thanks for advice! But what about mobile apps? Can you track app installs from facebook in google analytics?

  • THANK YOUUUUU I’ve been running FB ads with blinders on until now

    • markdhansen

      Glad to help!

  • ditte

    we are currently having an issue with Google Analytics tracking, which I hope you might be able to help out with?
    We recently set up a campaign in the facebook business manager, containing approx. 6 different advert sets, each set with an individual UTM code so that we – in analytics – can track performance of each respective advert set by the end of the campaign.
    As the different sets will be running at different times and not overlap (last weekend = advert set 1 ran for two days, next weekend = advert set 2 will run for two days, etc.), so far only set 1 has been active. However, in Google Analytics we now experience that the active advert set has generated several thousand sessions of traffic, but ALSO that the other sets have generated between 20-60 sessions (however, these have not been activated yet).
    Everything is double checked everywhere – can anyone help with what is happening?

  • satyanarayana raju

    Thanks for your advice and i would use these in my and

  • Miloš Milosavljević

    My experience at the moment is that facebook won’t accept a very long link with utm variables, however, when you shorten it, all is well and the data gets transferred to the landing page and GA.
    I built a UTM builder and link shortener tool in Google Spreadsheets that you can check out:
    How to build manual:

    If you would like to try it out on my sheet, drop me your gmail to my LinkedIn inbox.

  • Levmeister


    I am wondering if the order that the source, medium, campaign etc.. appear in the URL matters. I don’t see why it would but I am just trying to troubleshoot why my data isn’t appearing in Google Analytics.

    I believe I have tracked my URLs correctly but all my CPC data (utm_medium=cpc) from Facebook (utm_source=facebook) seems to be showing as (not set) in the campaigns reports. In addition this data also doesn’t seem to be showing any action in the conversions so I am unable to link a Facebook ad with a goal conversion.

    In the same campaign but using medium as social goal conversions seem to be appearing perfectly ok. It just doesn’t seem to work for cpc.

    Any tips would be much appreciated?

    I am thinking to use social instead of CPC for the medium to see if the data will show.

    Potentially there is a delay in the data so I will also wait and see if anything changes.

    • megalytic

      Facebook seems to sometimes strip out UTM parameters without any explanation. People have reported that the problem goes away if you encode the long URL using a link shortener like or Use the shortened link for your ad. Please try that and let us know if it helps.

      • Levmeister

        Thank you very much for the reply.

        I will try this next time I run some ads and let you know the results. Interestingly enough the data that appeared from social (utm_medium=social) was from a link and this contained all the information I was after.