Facebook ad campaign reporting can sometimes be confusing to clients. Which metric is most important? Clicks? Social CTR? Actions?
These metrics are great for measuring traffic trends and social virality, but looking at these metrics alone without demographic information does not provide the insight needed to pinpoint your highest performing audience on Facebook.
Here’s how I figured out that a recent client was converting best with Males and Females 25-34.
Facebook provides a great report called the Responder Demographics report that allows advertisers to view the % of users who clicked on an ad campaign by age range, gender and location.
This data can help determine which age range is producing the greatest amount of clicks, impressions and CTR. But, are those the metrics your business should be focusing on? In most cases, no. For most, the answer is Leads, Conversions, Revenue and ROAS.
Facebook recently launched a conversion tracking pixel, but many advertisers still question how accurate is the new Facebook pixel?
Here’s a way to report leads, revenue, and other metrics per age range, gender, image, and ad copy without using Facebook’s new tracking pixel.
Through the use of Google Analytics, or other web analytics platforms like Adobe’s Site Catalyst, you can make your Facebook demographic reports more actionable by connecting the Facebook demographic data with Google Analytics conversion data by using UTM parameters in your destination URLs.
After doing this you will be able to slice and dice all of the great metrics in Google Analytics by Facebook’s age ranges and gender. You can even get fancy and measure different ad elements like Ad Copy and Image. Let’s get started.
To start, you will need to break your Facebook ads up by the age ranges that Facebook uses in their Responder Demographics report.
Target the age ranges 18-24, 25-34, 35-44, 45-54 and 55-64 and 65+ in separate ads. Make sure you select “require exact age range”. Also break your ads out by gender, separating Males and Females into separate groups of ads.
You’re probably thinking, OMG that’s going to be so many ads! But, let’s think about why you should do this.
- Does your 21 year old male cousin act the same on Facebook as your 47 year old uncle?
- Will a 31 year old father respond to the same ads as a 55 year old grandmother?
- Do 19 year old female college students respond to the same ads as 37 year old moms?
In most cases, the answer is no. If you want to target 18-65+ year olds, please don’t use just one ad to target that whole range. If you do so, you won’t be able to easily optimize your campaign to reach the Facebook audience that is producing the desired results on your website.
Using Facebook Power Editor’s bulk upload sheets, you can build a spreadsheet to break out each age range and gender into separate ads.
If you are using Google Analytics, you should be aware of Google’s URL Builder tool which allows you to assign UTM variables to destination URLS. If you are using Site Catalyst, or another analytics platform, you can simply use a similar naming convention with custom campaign tags.
Google’s URL Builder tool gives you 5 standard parameters to use:
To track Facebook Ads, I suggest using a naming convention similar to the following for the UTM parameters in your destination URLs:
- utm_source = facebook
- utm_medium = cpc
- utm_campaign = name of your Facebook Campaign
- utm_term = Acronym representing Targeting, Age Range and Gender. (Example: br_f_1824)
- utm_content = Acronym representing the Image and Ad Copy variation you are using. (Example: img1_c1)
In this example; for utm_term, I am using “f” (or “m”) to represent Gender, “br” to represent “branded” interest targeting, and 1824 to represent the age range used for this specific ad. When I say “branded” interest targeting, let’s imagine I am Ford and I only want to target people who have already liked the Ford Motor Company on Facebook, hence branded interest targeting or “br” for short.
For utm_content, I used img1_c1, representing Image 1 and Ad Copy 1. You could get fancy and throw in a h1 or h2 to represent different Ad Headlines to test as well.
When naming your Facebook ads, include the value assigned to utm_term and utm_content in your Facebook Ad name. This will allow you to easily match the cost and click data that you’ll export from Facebook to the conversion & revenue data you can pull from Google Analytics.
Let’s imagine that I want to target both genders (m & f) between the age range of 18-65+. My ad variations are going to test 2 different images (img1 & img2) and 2 unique ad copy variations (c1 & c2). All ads will be targeting branded interested. (People who already like Ford)
How many ads will that be?
With the given combination:
6 Age Ranges
2 Copy Variations
Facebook Ads (2x6x2x2) = 48
A list of ad names and UTM parameters would like similar to:
Once you have your Facebook ad names and UTM parameters set up in a similar fashion, you can use Excel’s concatenate (&) function to build your destination URLs in your spread sheet.
Then use the Facebook Bulk Upload Tool to import all of your ads into Facebook’s Power editor. If you are unfamiliar with Power Editor and bulk upload sheets, I suggest you review the Facebook Bulk Upload Quick Start Guide. This document will help you understand how to upload ad copy, targeting, and image files to your ads in the Power Editor.
When you have successfully uploaded your ads, export them all out of power editor and double check to confirm your tracking codes and ad names all match as planned. Depending on the amount of ads and image files, Power Editor may time out and cause certain ads to load incorrectly.
After you have confirmed everything is matching up properly, Activate your campaign and let the results come in.
As your ad campaign begins to return results, you can create your own Responder Demographic report. Unlike the one available from Facebook, you will easily be able to pull website performance metrics by Age Range, Gender, Ad Copy and Image.
Using Facebook reporting, pull an advertising performance report, filtered by ad for your given date range. Export your impression, click and cost data from Facebook and drop that into an excel sheet.
On a new tab, export your Conversions or Goal Set 1 from Google Analytics by UTM parameter. A quick way to do this would be to use the Excellent Analytics Excel Plugin. Similar to Report Builder for Site Catalyst, this Excel plugin allows you to pull data from the Google Analytics API by source, medium, term, keyword, etc… you name it. If it is a metric measured in the Google Analytics API you can pull it from this tool.
So now you have:
Tab 1: Conversion data pulled from Google Analytics by utm_term and by utm_content
Tab 2: Traffic and Cost data from Facebook by Ad Name (which includes the utm_term and utm_content values)
On a third tab, use a combination of “SumIf” and “SumIfs” functions to pull all of your information together in a format similar to Facebook’s Responder Demographics report.
You can take it a step further and use additional “SumIf” functions to break our performance by image, age range, gender and ad copy. You should end up with something similar to this:
With the data in this format, we can easily identify that Facebook Users:
- Ages 25-34 produced the highest conversion rate.
- Males 25-34 converted at a greater rate than Females 25-34
- Image 2 strongly out performed Image 1
- Ad Copy 2 outperformed Ad Copy 1
Moving forward, we can now optimize Facebook Campaign performance by focusing our spend on our highest converting age ranges, and removing targeting for age ranges that did not convert well like 65+ year olds. We can also make adjustments to our ad copy and test new images based on conversion data.
Further analysis can be done to measure metrics like CPA & ROAS by demographic as well.
As Facebook’s reporting platform and pixel tracking matures, this may not be necessary. But, for now I’ll trust the conversions we are already capturing in Google Analytics and Site Catalyst.
If you think of any other cool ways to segment FB data, let us know in the comments or hit me up @ejgarcia on Twitter!