Getting Facebook cost data into Google Analytics

If there's one tool every marketer is familiar with its Google Analytics. With this post, we're kicking off a new series about Google Analytics secrets that can take your reporting to the next level.

One of the most underestimated features of Google Analytics is its data import capability. In this post, we'll be looking at:

  • Why you should use Google Analytics' Data Import
  • What kind of data you can import into Google Analytics
  • How you can import data into Google Analytics
  • Step-by-Step Guide: How to Upload Facebook Cost Data into Google Analytics

Why you should use Google Analytics' Data Import

Before we get to how it works and what it does, let's look at why it matters. As a marketing team, Google Analytics is often the go-to tool to review campaign performance. However, by default, only Google Ads cost and impression data is visible (assuming you've got your Google Ads account linked).

This can quickly become an issue, as having to jump into each channel individually slows down reporting and results in inconsistent data as different channels will apply different attribution models. Facebook, for example, will include 1-day view-through conversions in the default conversion report.

The advantage of using Google Analytics instead of (or in addition to) a more fully-fledged attribution system is the familiarity most marketers (and beyond) have with the system and the limited technical skills required to set up the data imports—at least when done manually.

Once implemented Google Analytics will become a capable single source of truth 'SSOT' making your marketing reporting faster, easier and more consistent.

What kind of data can you import into Google Analytics?

One of the most commonly used data imports is cost data from channels other than Google Ads. This lets you view ROAS, CTR across all your channels and campaigns side-by-side and based on a consistent attribution framework. In addition, you can import:

  • refund data to ensure accurate sales figures,
  • customer data (e.g. LTV, segments) to enrich your customer profiles,
  • enrichment data for campaigns, products or content letting you retroactively add enhanced e-commerce data or UTM tags (if you have some sort of other unique identifier)
Google Analytics data import functionality

One thing that the manual data import, unfortunately, doesn't permit is tracking events that are not driven by on-site behaviour (e.g. progression of a lead through your CRM system). For this, you'll need to break out your coding chops, ask your engineering team or send us an email.

How can you import data into Google Analytics?

New data imports always need to be set-up via the Google Analytics admin interface (and separately for each property). During the set-up process, you'll define schema details (what data you're uploading) and how Google Analytics should treat duplicates.

During the schema set-up, you'll need to define a key which can be one or a combination of dimensions (e.g. source, medium, date for the cost data upload). **Google Analytics uses this to identify a unique record and match it up with the data that's already inside of Google Analytics (like sessions). In addition, you'll need to define what data you're uploading into Google Analytics. Typically, these are metrics, i.e. numeric values, like clicks, ad spend, or impressions.

When defining how Google should treat duplicates or values that have already been set, I'd recommend to set this to overwrite. That way you know the data you are uploading is always used—in the case of the cost data upload this is particularly important, as

Once you've set up the schema you can upload the data as CSV files—just make sure it's the right format and matches the column names you have defined. Uploads can take place either manually via the Google Analytics interface, or automatically via the Google Analytics API.

Step-by-Step Guide: How to Upload Facebook Cost Data into Google Analytics

Let's look at how to implement the Google analytics data upload in the case of one popular example: Loading cost and performance data from Facebook Ads into Google Analytics.

Prepare Google Analytics to Accept Cost Data

1. Navigate to the Data Import section in your Google Analytics' account admin panel (this is a property specific setting).

2. Set-up a new data import.

3. Select cost data as the import type.

4. Provide a name for your input (e.g. Facebook Ads) and select the views you want to make the data available in. I usually include the corresponding account id in the name, but you could theoretically also just set-up a single cost data upload for all your channels combined. If you have a large number of imports this may make sense as you are limited to 50 imports.

5. Set-up your data schema. I typically select all the metrics (clicks, cost & impressions). In addition to date, medium and source, you should at least select campaign. This allows you to analyse your cost data in GA on a campaign-level. For more granular analysis (e.g. on ad set or ad level) you can also add content and keyword. However, for this to work you need to make sure to set the appropriate UTM tags on Facebook. For manual uploads, I typically just use campaign-level granularity. As mentioned above, I would also recommend setting the import behaviour to overwrite. That way it will always use the data from the most recent import and you don't need to worry about dates in your export overlapping.

Exporting the Facebook Data

1. Navigate to the Ads Reporting section in the Facebook Business Manager.

2. Set-up a new custom report.

3. Give your report a name and select the account you want to cover with the report. If you are managing more than one account, you can select multiple, but this only makes sense of you want to load the performance data from all these accounts into a single Google Analytics property.

4. Keep Pivot Table selected and continue.

5. Customise your report columns to match what you selected when setting up the Google Analytics data import. I usually use Link Clicks instead of Clicks to focus what is measurable within Google Analytics (as clicks to e.g. the Facebook page won't be visible within Google Analytics). As the time interval select the frequency with which you want to upload data into Google Analytics (e.g. last 7 days). The filter you can leave on 'Had Delivery'.

6. Save your report.

Setting up a Conversion Template

As Google Analytics requires you to import the data in a very specific format you'll need to convert the exported Facebook data. As this can be a bit tricky to set-up, we've prepared a Google Sheets template that you can create a copy from.

The Upload Process

In order to update the data available in Google Analytics, execute the following upload process on a weekly, fortnightly or monthly basis (depending on how fresh you want the data to be).

1. Download the data from Facebook (csv format). Make sure the summary row option is unticked.

2. Import the data into the import tab of the Google Sheet (make sure you delete the old data first and have the cursor in cell D2 when importing).

3. Fill in the yellow portion with the correct UTM tags for this campaign. It's super important that this matches the actual UTM tags used in Facebook (and that each campaign can be associated with exactly one utm_campaign tag).

4. Download the data from the export tab in csv format.

5. Upload the exported csv file into Google Analytics.

6. Make sure the uploaded data validates (and no errors sneaked in).

Need help?

Find the manual process too cumbersome or would like to have more frequent updates, but still find the third party solutions out there too technical? Send us an email ( or give us a call (+61 2 8311 8689) and we're happy to help you set this up or review you overall analytics and data infrastructure.

Leave it with us.

Data-driven growth and analytics consulting for scale-ups & established corporates
Let’s talk