How to Connect Meta Ads with Google Analytics

Cody Schneider9 min read

Running Meta Ads without connecting them to Google Analytics is like only reading half the story of your marketing performance. Meta's Ads Manager shows what happens on their platform - clicks, impressions, cost - but the real action happens once a user lands on your website. This guide shows you exactly how to connect Meta Ads to Google Analytics to get the full picture, understand your true return on ad spend, and make smarter decisions.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Why Bother Connecting Meta Ads and Google Analytics?

Your marketing data lives in different silos. Meta tells you how many people clicked your ad, while Google Analytics tells you what those people did next. When you link them, you replace guesswork with clarity. You gain a unified view that reveals the entire customer journey, from ad impression to final conversion.

Here’s what you unlock by connecting these two platforms:

  • See the Full Customer Journey: Track a user from the moment they click your Facebook or Instagram ad, through their entire session on your site - which pages they visit, how long they stay, and if they complete a goal like making a purchase or filling out a form.
  • Pinpoint Winning Ads and Campaigns: Go beyond surface-level metrics like CPR (Cost Per Result) in Ads Manager. By seeing which ads deliver high-quality website traffic (e.g., low bounce rates, high pages per session), you can identify campaigns that attract genuine interest, not just empty clicks.
  • Calculate True ROAS: Meta’s conversion tracking is good, but it can sometimes differ from the revenue and transaction data recorded in Google Analytics due to tracking limitations like iOS updates. Using GA4 as your source of truth for revenue lets you compare that against your ad spend in Meta to calculate a more accurate Return On Ad Spend (ROAS).
  • Optimize Your Budget Smarter: When you know precisely which campaigns, ad sets, and even individual ads are driving the most revenue-generating actions on your site, you can double down on what works and cut spending on what doesn’t. You're no longer just optimizing for clicks, you're optimizing for profit.

The Linchpin: Understanding UTM Parameters

The magic that connects Meta Ads to Google Analytics isn’t a direct integration button but a simple-yet-powerful tool: the UTM parameter. UTM stands for "Urchin Tracking Module" - a name left over from the company Google acquired to create Google Analytics. Think of UTMs as information tags you add to the end of your ad's destination URL.

When a user clicks on an ad with these tags, the information is passed directly to Google Analytics, telling it exactly where that visitor came from. GA4 then uses this data to categorize the traffic correctly in your acquisition reports.

There are five standard UTM parameters, but for Meta ads, you'll mainly focus on these:

  • utm_source: This identifies the specific source of your traffic. For Meta ads, you’ll typically set this to facebook or instagram to know which platform the click came from.
  • utm_medium: This tells you the marketing channel. Common values include cpc (cost-per-click), paid-social, or simply social. Consistency here is key to clean reporting.
  • utm_campaign: This should match the name of the campaign you are running in Ads Manager. It lets you see how your overall campaign strategy is performing in GA4.
  • utm_content: Use this to differentiate individual ads within the same ad set. You could name it something like video-ad-new-creative or image-ad-blue-background. This helps you figure out which creative resonates most with your audience.
  • utm_term: Originally intended for paid search keywords, this parameter is often repurposed to track the Ad Set name in Meta. This is incredibly useful for analyzing audience performance.

Manually creating a unique URL for every single ad would be a nightmare. Fortunately, Meta Ads Manager has a built-in feature that lets you build these parameters dynamically.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Step-by-Step Guide to Adding UTMs in Meta Ads Manager

Setting up your UTM tracking takes just a few clicks and is done at the ad level within your campaign. By using dynamic parameters, Meta will automatically pull in the correct campaign, ad set, and ad names for you, saving countless hours.

1. Navigate to the Ad Level

Open your Meta Ads Manager. Go to the campaign you want to track, select an ad set, and then click to edit a specific ad.

2. Find the URL Parameters Section

Scroll down to the "Destination" section of the ad setup. You'll see the "Website URL" field where you've entered your landing page link. Directly below this, you'll find a box labeled "URL Parameters." This is where you'll build your tracking code.

3. Use Dynamic Parameters for Automated Tracking

Instead of manually typing in the values for each ad, you'll use Meta's dynamic URL parameters. These act as placeholders that Ads Manager automatically replaces with the correct name when the ad is served.

Click "Build a URL Parameter." A new window will pop up. Your job is to fill in the "Value" field for each "Parameter name" (e.g., utm_source, utm_campaign, etc.).

Here’s the best-practice setup to copy and paste:

  • For utm_source: Enter facebook in the value field. This is a static value because all traffic from this ad will originate from Meta’s network. If you only run ads on Instagram, you can use instagram.
  • For utm_medium: Enter cpc or paid-social. Choose one and stick with it across all your paid social channels for consistent reporting.
  • For utm_campaign: Click in the value box, and you'll see a small "+" icon or pop-up menu allowing you to select dynamic parameters. Choose {{campaign.name}}. This will automatically pull the official name of your campaign into the URL.
  • For utm_term: In the value box, select the dynamic parameter {{adset.name}}. We're using utm_term to capture our ad set name so we can analyze audience performance in GA4.
  • For utm_content: In the value box, select the dynamic parameter {{ad.name}}. This will grab the name of the specific ad clicked, letting you compare creative performance.
GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

4. Review and Apply

Once you’ve entered the parameters, Meta will show you a "URL Preview" at the bottom. Before adding dynamic variables, your URL might be: https://www.yourwebsite.com/landing-page

After adding dynamic UTMs, the parameter field below it will contain a string that looks like this ready to be appended: utm_source=facebook&utm_medium=cpc&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}

Click "Apply," and you're all set! Now, publish your ad. Repeat this process for all of your active ads. While it seems tedious, you can use a find and replace feature to apply this to multiple ads at once or do a "bulk edit" to quicken the process.

Finding Your Meta Ads Data in Google Analytics 4

Once your ads have been running for at least 24-48 hours, the tracked data will start populating in your GA4 property. Here’s how to find it and make sense of it.

1. Use the Traffic Acquisition Report

The standard report for this analysis lives under Reports > Acquisition > Traffic acquisition. This report shows you where your website traffic is coming from.

  • By default, this report is grouped by "Session default channel group." Find the drop-down menu above the table and change the primary dimension to “Session source / medium.”
  • You should now see a row for facebook / cpc (or whatever values you chose). This is all the traffic from your tracked Meta Ads campaigns.
GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

2. Drill Down with Secondary Dimensions

This is where your detailed UTMs shine. To see performance by campaign, ad set, or ad, you need to add a secondary dimension.

  • Click the small "+" icon next to the "Session source / medium" column header.
  • A search bar will appear. Search for and select "Session campaign" to see all your different campaign names as they were passed from Meta.
  • To see ad set performance, add "Session manual term" as the secondary dimension.
  • To see individual ad performance, add "Session manual ad content."

You can now analyze metrics like Users, Sessions, Engaged Sessions, Conversions, and Total Revenue for each campaign, ad set, and ad, giving you a granular view of true on-site performance.

Putting It All Together: What to Analyze

Now that your data is connected, you can start answering critical business questions:

  • Which campaigns drive the most engagement? Check the "Engagement rate" and "Average engagement time" columns in GA4. An ad with a high click-through rate in Meta but a low engagement rate in GA4 might be attracting the wrong audience.
  • Are my expensive ad sets actually converting? Find your top-spending ad set in Meta. Then, using Session manual term in GA4, look up that same audience. Is it actually driving conversions and revenue? This helps validate your targeting efforts.
  • Which ad creative generates the highest quality traffic? Compare two different ads (Session manual ad content) from the same ad set. One might get more clicks, but the other might lead to a higher "add to cart" rate or more signups. This tells you which creative is actually motivating users to act.

This level of analysis moves you from being a media buyer who simply buys clicks to a true marketer who drives business growth.

Final Thoughts

By using dynamic UTM parameters, you effectively teach Meta Ads and Google Analytics to talk to each other. This simple setup breaks down data silos, giving you a full, unbiased view of how your ad spend translates into meaningful website engagement and, most importantly, revenue.

Manually connecting this data is a great first step, but we know it still involves hours of navigating reports, exporting CSVs, and trying to stitch everything together. That’s why we created Graphed. After easily connecting services like Meta Ads and Google Analytics, you can use plain English to ask questions like, "Show me my top 5 Facebook campaigns by revenue from last quarter," and instantly get a live dashboard that answers your question - no more hunting through GA4 reports or wrangling spreadsheets.

Related Articles

How to Enable Data Analysis in Excel

Enable Excel's hidden data analysis tools with our step-by-step guide. Uncover trends, make forecasts, and turn raw numbers into actionable insights today!