Understand why metrics sometimes duplicate in blended widgets and how to fix it
What Is This Article About?
If you've built a blended widget and noticed that a metric (like Impressions, Clicks, or Spend) is showing a much higher number than expected, you're likely dealing with a granularity mismatch between your sources.
This article explains:
Why this happens
How to spot it
Ways to fix it
What Is a Granularity Mismatch?
Granularity refers to how detailed a data source is, specifically, how many dimensions it uses to break down its data.
When you blend two sources together, Whatagraph joins them on shared dimensions (like Date or Campaign). If one source has more dimensions than the other, the join can cause values from the simpler source to repeat, inflating your totals.
Example:
Source A (Google Analytics) reports Sessions broken down by Campaign and Date β 1 row per campaign per day
Source B (Google Ads) reports Impressions broken down by Campaign, Date, and Device β multiple rows per campaign per day
When these two sources are blended, Source A's single row gets matched to every Device row in Source B. The result: Source A's Sessions value is counted multiple times.
A Step-by-Step Look at What Happens
Let's say you're blending Google Analytics (Source A) with Google Ads (Source B):
Source A: Google Analytics (Campaign + Date)
Campaign | Date | Sessions |
Campaign A | Mar 1 | 500 |
Source B: Google Ads (Campaign + Date + Device)
Campaign | Date | Device | Impressions |
Campaign A | Mar 1 | Mobile | 3,000 |
Campaign A | Mar 1 | Desktop | 2,000 |
After the blend (widget grouped by Campaign only):
Campaign | Device | Sessions (A) | Impressions (B) |
Campaign A | Mobile | 500 | 3,000 |
Campaign A | Desktop | 500 | 2,000 |
Source A's 500 sessions appear twice: once for Mobile and once for Desktop. The widget totals 1,000 sessions instead of 500.
Important: This is not a bug. It's the expected behaviour of a join when sources have different levels of detail. The fix is to align the granularity before or during the blend.
Another Common Example: Facebook Ads + Google Ads
This also frequently happens when blending Facebook Ads and Google Ads:
Facebook Ads breaks down Spend by Campaign, Date, and Ad Placement (Feed, Stories, Reels)
Google Ads reports break down spend by Campaign and Date only
When blended, each spend value from Google Ads repeats once per Ad Placement row from Facebook Ads, tripling (or more) your spend totals depending on how many placements are active.
How to Fix It
There are two ways to resolve a granularity mismatch. Choose the one that fits your setup best.
Fix 1: Use the Aggregate By Setting
Some Whatagraph widgets include an Aggregate By option in the widget settings.
Step 1: Open the widget where your metrics are inflating.
Step 2: Look for the "Aggregate By" option in the settings panel.
Step 3: Select the dimensions that match your lower-granularity source and the one you want to aggregate by.
Step 4: Save. Whatagraph will now aggregate the data based on the value of the dimension selected, in this case, campaign.
Fix 2: Align the Dimensions in the Blend
If you want a permanent fix that applies everywhere the blend is used, edit the blend itself so both sources share the same dimensions.
Option A: Remove the extra dimension from the higher-granularity source
In the example above, remove Device from Source B (Google Ads) inside the blend. This forces Google Ads to aggregate its data to Campaign + Date level, matching Source A.
Option B : Add the extra dimension to the lower-granularity source
If you do want device-level data, add the Device dimension to Source A (Google Analytics) as well. Both sources will now have matching granularity, and the join will be clean.
Important: To edit your blend, go to Aggregations, find your blend, and click Edit.

