If you run Meta ads and track website traffic using Google Analytics 4 (GA4)-- there’s a chance that some of the paid Meta (Facebook) traffic will be attributed to the Paid Social session default channel group in GA4– while other traffic will be attributed to Paid Shopping.
See screenshot below:
It might not be a problem unless you decide to break down sessions and revenue metrics by the session default channel group in GA4 and assess the value of each channel.
In that case, you might encounter an inconvenience, as your paid Meta traffic is now split between two different session default channel buckets. It could be more convenient to have all paid Meta traffic bucketed under Paid Social so you can assess how well this traffic channel performs compared to other channels.
Consolidating your Meta traffic under a single GA4 traffic channel helps you ensure data clarity, easier reporting, and better decision-making when evaluating channel performance and allocating budgets.
So why does GA4 attribute paid Meta traffic to two different channels, and what can we do to ensure it is all attributed to Paid Social?
GA4’s channels are rule-based definitions of your website's traffic sources. For every default channel, there is a rule qualifying whether a given session falls into its bucket. There is a rule for every channel, but we are specifically interested in the Paid Shopping channel rules:
The session falls under Paid Shopping if its Campaign Name and traffic source medium match the above regular expression (RegExp) rules. Where does GA4 get those values?
In Meta ads, we have the URL Parameters section (under Tracking), either at the ad set or ad levels, depending on the campaign objective and setup.
If configured, it looks something like this:
With the above configuration, every time a user clicks on our ad, they are taken to a URL with the above URL parameters appended. Each value inside the double curly brackets “{{}}” gets dynamically replaced with its respective campaign, ad set, and ad names.
GA4 then reads those values when the user is directed to the website after clicking the ad, and uses the rule-based channel definition to determine the appropriate channel to credit.
Now, when you create a Meta campaign with the Sales objective and use the Advantage+ Shopping Campaign setup...
…Meta automatically creates a name for it that looks like this:
Advantage+ shopping campaign + {Today’s Date}
Unless you change it, that value will be dynamically used to populate the utm_campaign={{campaign.name}} query parameter, which consequently attributes it to Paid Shopping, as observed in the sample report below:
In another client’s account, the default name for the Advantage+ Shopping Campaign was changed to “Advantage+” (with the words “shopping Campaign” removed), which resulted in traffic from this campaign being bucketed under the Paid Social channel in GA4, as shown below:
Want to ensure that all paid Meta ads traffic appears under Paid Social in GA4?
Make sure your campaign names do not contain “shop” or “shopping,” which are the default values currently used with Sales campaigns that leverage Meta’s Advantage+ Shopping Campaign setup.