Advertising on Facebook does not come without challenges and Audience Overlap Analysis is an essential part of your success.
No matter your experience level, you’ll likely find yourself making mistakes from time to time.
However, the one we’re here to talk about today is a real doozy. It is the one mistake that has the potential to overthrow the results of an entire campaign. It’s a problem that I see even “expert level” Facebook marketers making again and again. Today we’re here to talk about audience overlap and why you need to be doing everything in your power to avoid it.
While I do see small-budget advertisers facing overlapping audiences, it’s the bigger-budget advertisers that are more prone to create competitive audiences.
Spending more money running more ads may seem like an effective approach, but a portion of that comfy advertising budget might be going right down the drain. No one intends to do it, but it happens more than you may think.
Today you’ll learn to recognize audience overlap and how to avoid it with advanced possibilities of Facebook Marketing API. I am going to show you how using RStudio and Facebook MArketing API could help you build laser targeting audiences with no time.
What Is Audience Overlap?
The Facebook Official Help Centre says that:
Having overlapping audiences is not necessarily a bad thing, but it can lead to poor delivery of your ad sets. This is because when ad sets from the same advertiser are going to end up in the same auction (meaning they’re targeting similar audiences), we enter the one with the best performance history and prevent the others from competing to get shown. We do this so that your ads are not competing against each other, which can drive up costs and lead to inefficient uses of your budget. You can check if two audiences you’re using are overlapping with our tool:
1. Go to your Audiences.
2. Tick the boxes next to the audiences you want to compare (up to five).
3. Click Actions > Show Audience Overlap (Audience Overlap Analysis).
Notes:
• The first audience you select will be listed first as the “Selected audience”. Every other audience you select will be listed in the “Comparison audiences” section. You can change the selected audience by choosing a new one from the drop-down in the top right-hand corner of the tool. You can choose from any of the audiences you’ve selected.
• You can only get useful overlap information from audiences with at least 10,000 people, so consider that when selecting which audiences to compare.
The tool will show both the “Overlap” and the “% overlap of the selected audience”. The “Overlap” column shows the number of people who are in both audiences. The “% overlap of selected audience” column compares the number of people who are in both audiences to the total number of people in the selected audience to show the percentage of overlap. This column is why the selected audience is separate from the comparison audience. Here’s an example to help explain:
Let’s say that you have a selected audience with 1,000,000 people (we’ll call this Audience A) and a comparison audience of 100,000,000 people (we’ll call this Audience B), and that there are 800,000 people who are in both audiences.
The number 800,000 remains constant no matter which audience is “selected” and which is “comparison”. However, the percentage of overlap will change if you switch which is “selected” and which is “comparison”. 800,000 means that Audience B overlaps with 80% of Audience A.
However, if Audience A becomes the selected audience, that figure changes. Audience A only overlaps with 8% of Audience B. In practice, this means that the overlap between the two audiences is more likely to cause delivery problems for ad sets targeting Audience A rather than ad sets targeting Audience B”.
Have you ever thought about advertising oversaturation, cannibalization, and general ad fatigue as byproducts of audience overlap?
There’s nothing to be ashamed of. It happens to the best of us.
The better of the best of us do something about it. We take it upon ourselves to investigate, review, and improve ad targeting. We continue to scroll through this post and gain knowledge.
Audience Overlap Analysis, oofta
What is it?
Targeting the same users in multiple audiences/groups/ad sets, potentially at the same time.
This may lead to quicker ad/brand fatigue, poor in-channel & down-stream performance, inflated costs, and a less-than-desireable overall user experience.
How does it happen?
Overlap may occur after building out multiple campaigns/ad sets that target individuals with similar (or the same) psychographic characteristics, or even using the same audience in multiple campaigns without assessing the characteristics and effects of intersection and overlap.
Always question your targeting. Nothing is ever perfect, but never stop striving for the optimal audience.
Why does it matter?
It can:
- frustrate viewers with frequently over-served ads
- lead to inflated costs, as poor click-through rates affect relevancy score and lead to an increased cost per click. If they’ve already seen and passed on your ad an hour ago, odds aren’t great right now. Two separate (and technically competing) ad sets targeting the same individual doesn’t know that.
- muddy back-end data. Clean, unique audience segmentation (along with properly tagging elements of audience makeup) is key to knowing how and who interacts with your product or site post-click. Improve your data confidence score by limiting the number of audience pools any given individual may be a part of, and therefore showing up in on the back-end.
How to compare targets and discover your overlap
Facebook has an awesome tool to help you determine whether there is an overlap in your target audiences (doesn’t work with Custom Audiences).
You can find it in the Ads Manager -> Audience.
2. Find the saved audiences you’d like to compare, check their respective left column boxes, find the “actions” dropdown menu, and select “Show Audience Overlap”.
3. Toggle the primary audience in question, and review the percentage of overlap between it and any other audience.
In the above example, you’ll see that around 50% of people overlapping between audiences. This might be a lot and might affect your ad delivery and budget allocation. You definitely have to take this into consideration making your next campaign.
Go deeper with Facebook Marketing API
Evaluate (and possibly rank) audiences by campaign-specific value, while keeping size and sales funnel location top-of-mind.
Based on these rankings, decide which audiences will keep overlapping segments of available targets, and get your exclusion on!
A key component of optimal audience segmentation, the art and intricacy of focused exclusions may be an afterthought. Underthinking it, combined with broad strokes of exclusion, may significantly and negatively affect true audience size.
Sometimes the standard Audience Overlap Analysis tool doesn’t have all the necessary functions for this analysis.
Let’s say you have three audiences with a sizable overlap. If each audience includes exclusions of the other two audiences, you may quickly, easily and unintentionally prohibit Facebook ads from serving to a significant portion of your total target.
But, the Audience tool is not able to overlap three or more audiences at the same time.
Nope, it doesn’t. There is no standard functionality for Audience Overlap Analysis.
This is a big deal and I’ll show you how to fix it with Facebook Marketing API.
# install.packages('VennDiagram')
library(fbRads) #Facebook Marketing API connection
library(VennDiagram) #Data Visualization
library(httr)
require(readr)
require(knitr)
ibrary(eulerr)
tkn<-readRDS('/Users/vs/Documents/r/FBtest/token.rds')
fid<-c('10202350802645454') #Your Ads Account ID
fbacc<-fbad_init(fid, tkn,version = '7.0')
The code load required libraries and initializes a connection with the Facebook Marketing API. You can find more details on how to make this connection happen in the tutorial.
Do you target only desktop users for your Website Conversion campaigns? The next visualization is for you and to check our connection. It’s a warm-up part to show you how the Facebook Marketing API works.
We are going to discover Desktop and Mobile US-based users of Facebook interested “Adobe”. We’ll build a visualization of intersection mobile and desktop users – Vienn Diagram. The list of all targeting interests and IDs you can find here.
#Two dimentional intersection
#Count a number of US Desktop users interested in "Adobe" in Facebook
Desktop<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
publisher_platforms = "facebook",
device_platforms = c("desktop"),
flexible_spec = list(
list(interests = data.frame(
id = '6003681281290',
name = 'Adobe'
))
)
))$users
#Count a number of US Mobile users
Mobile<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
publisher_platforms = "facebook",
device_platforms = "mobile",
flexible_spec = list(
list(interests = data.frame(
id = '6003681281290',
name = 'Adobe'
))
)
))$users
#Count a total number of US Mobile and Desktop users.
#We can't simply summarize Mobile and Desktop users we got ubow becaus of audience intersection.
total<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
publisher_platforms = "facebook",
flexible_spec = list(
list(interests = data.frame(
id = '6003681281290',
name = 'Adobe'
))
)
))$users
#The number of people who use desktop and mobile on Facebook.
intersection<-Desktop-(total-Mobile)
#Plot the graph
grid.newpage()
draw.pairwise.venn(Mobile, Desktop, Desktop-(total-Mobile), category = c("Mobile", "Desktop"), lty = rep("blank", 2),
fill = c("#6238C5","#029EC7"),
alpha = rep(0.5, 2),
cat.pos = c(0, 0), cat.dist = rep(0.025, 2))
Facebook is a mobile application and the diagram above is the most convincing proof.
In the above example, if your target only desktop users you halve your potential audience to 250K only. We would easily combine the reach of mobile and desktop of totals 500K.
The amount of mobile and desktop overlap is huge. Only 4% (10K) of users use Facebook from Desktop only. and mobile users scroll Facebook more frequently. Tree to one to target mobile devices as well. It would be KPI-positive with a propper strategy.
Intersection of three variables
OK. The connection works. The next step is to build Vienn Diagram for tree variables. Let’s discover the US fans of tree brands: Mercedes-Benz, BMW, and AUDI.
This is not available in the standard Facebook Audience tool. This is a good reason to discover the Facebook Marketing API deeply.
#The intersection of three variables
#BMW, Mercedes-Benz and Audi fans
#Fetching the interests names and IDs for the feather API calls
car_fans<-rbind(
fbad_get_search(q = 'Mercedes-Benz', type = 'adinterest', limit=1), #Get a list of interests with the audience size
fbad_get_search(q = 'Bmw', type = 'adinterest', limit=1), #Get a list of interests with the audience size
fbad_get_search(q = 'Audi', type = 'adinterest', limit=1)) #Get a list of interests with the audience size
#Another way is to upload a Full list of Facebook targeting interest form my Github
linterests_github <- read_csv("https://raw.githubusercontent.com/loook/facebook_marketing_api/master/Facebook_interests.csv")
We have all the needed data to calculate the number of people for all the interest groups.
##1. US-based Mercedes-Benz or BMW fans on Facebook
mercedes_bmw<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
flexible_spec = list(
list(interests = data.frame(
id = car_fans$id[2],
name = car_fans$name[2])),
list(interests = data.frame(
id = car_fans$id[1],
name = car_fans$name[1])))))$users/1000000
##2. US-based BMW or AUDI fans on Facebook
bmw_audi<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
flexible_spec = list(
list(interests = data.frame(
id = car_fans$id[2],
name = car_fans$name[2])),
list(interests = data.frame(
id = car_fans$id[3],
name = car_fans$name[3])))))$users/1000000
##3. US-based Mercedes-Benz and Audi fans on Facebook
mercedes_audi<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
flexible_spec = list(
list(interests = data.frame(
id = car_fans$id[3],
name = car_fans$name[3])),
list(interests = data.frame(
id = car_fans$id[1],
name = car_fans$name[1])))))$users/1000000
##5. US-based BMW fans only
bmw<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
flexible_spec = list(list(
interests = data.frame(
id = car_fans$id[2],
name = car_fans$name[2])))))$users/1000000
##6. US-based Audi fans only
audi<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
flexible_spec = list(list(
interests = data.frame(
id = car_fans$id[3],
name = car_fans$name[3])))))$users/1000000
##7. US-based Mercedes fans only
mercedes<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
flexible_spec = list(list(
interests = data.frame(
id = car_fans$id[1],
name = car_fans$name[1])))))$users/1000000
##8. US-based Mercedes-Benz and Audi and BMW fans on Facebook
mercedes_audi_bmw<-fbad_reachestimate(targeting_spec = list(
geo_locations = list(countries = 'US'),
flexible_spec = list(
list(interests = data.frame(
id = car_fans$id[3],
name = car_fans$name[3])),
list(interests = data.frame(
id = car_fans$id[2],
name = car_fans$name[2])),
list(interests = data.frame(
id = car_fans$id[1],
name = car_fans$name[1])))))$users/1000000
The most difficult part is behind.
#Creating a Venn Diagram with three circles
fit<-euler(c(A = mercedes, B = bmw, C= audi, "A&B" = mercedes_bmw,"A&C"=mercedes_audi, "B&C"=bmw_audi,"A&B&C"=mercedes_audi_bmw))
plot(fit,
Count=TRUE,
quantities = TRUE,
key = TRUE,
main="Everybody Loves BMW",
#labels = c("Mercedes-Benz","BMW","Audi"),
fills = list(fill = c("#3726A6", "#F2E635", "#F20505")),
edges = list(lty = 0),
labels = c("Mercedes-Benz","BMW","Audi")
)
The method seems to be difficult, but the hardest job I’ve done for you already. All you need is to copy the code above and run the script changing your targeting interests. It’ll give you the possibilities 99% of Facebook marketers don’t have.
Summary
By refining the audience overlap, you will better prevent oversaturation of ads in users’ feeds and decrease the likelihood of ads over-serving.
If you’re promoting different ads to the same audience and knowingly don’t care about over-serving or are striving for same-user conversions, feel free to loosen exclusion restrictions.
Don’t forget to review post-exclusion audience value and size before jumping into final budget allocation. The provided code above will help you to do it very efficiently.
Now, that’s something we can all get behind and ensure we make optimal use of this knowledge to the improvement of our ads and Audience Overlap Analysis.
Conclusively, with a few simple adjustments and lines of code to your existing ad strategy you will be able to avoid paying more on ads or campaigns and stop receiving less in returns.