Last updated on August 27, 2026 at 4:19 PM

How to Use This Guide and Learning Objectives
This guide is designed for users who can already create basic charts but have not yet developed a systematic understanding of data blending. It focuses on marketing analytics and explains why data is duplicated, why joined metrics become null, and why total rows can be incorrect—not just which buttons to click.
After completing this guide, you should be able to:
- Decide whether a reporting scenario is suitable for data blending.
- Choose the right join fields, join operator, and data grain.
- Combine Google Ads and GA4 in a single advertising performance table.
- Recalculate CTR, CPC, purchase conversion rate, and ROAS from base metrics.
- Troubleshoot null values, inflated metrics, missing records, incorrect totals, and slow loading.
1. What Is Data Blending?
A standard chart usually reads from only one data source. A blend allows a chart, table, or control to use multiple data sources at the same time and combine fields from different tables according to the join conditions you define.
Google Ads: Date + Campaign ID + Cost + Clicks
↓
Data Studio Blend
↑
GA4: Date + Campaign ID + Sessions + Purchase Revenue1.1 Common Use Cases
| Use case | Data source combination | Objective |
|---|---|---|
| Advertising performance analysis | Google Ads + GA4 | Combine spend, traffic, orders, and revenue in one table |
| Budget pacing | Google Ads + Google Sheets | Compare actual spend with the monthly budget and target ROAS |
| Cross-channel summary | Google Ads + Meta Ads + TikTok Ads | Compare spend, clicks, and conversions across channels |
| SEO performance analysis | Search Console + GA4 | Compare search impressions, clicks, visits, and conversions |
| Product profitability analysis | Order data + cost table | Calculate sales revenue, purchasing cost, and gross profit |
| CRM lead analysis | GA4 + CRM | Evaluate qualified leads and sales generated by each source |
1.2 Limitations of Data Blending
A blend can contain up to five tables. The blend configuration is embedded in the current report and cannot be reused directly across reports like a standard data source. When the entire report is copied, the blend is copied with it. A blend also has no independent data credentials or freshness settings; it inherits them from the underlying data sources.
2. Four Core Concepts You Must Understand
2.1 Table
A blend consists of multiple tables. Each table comes from an underlying data source and includes only the dimensions, metrics, filters, and date range that you add in the blend editor.
Table 1: Google Ads Date | Customer ID | Campaign ID | Campaign | Impressions | Clicks | Cost Table 2: GA4 Date | Session Google Ads customer ID | Session Google Ads campaign ID | Sessions | Purchases | Revenue
2.2 Join Condition
Join conditions determine which records in two tables belong to the same group. Field names do not need to be identical, but their values and data types must be compatible. Data Studio join conditions support equality comparisons only.
Google Ads Date = GA4 Date Google Ads Customer ID = GA4 Session Google Ads customer ID Google Ads Campaign ID = GA4 Session Google Ads campaign ID
Non-equality joins such as greater than, contains, or not equal are not supported. If your business logic requires fuzzy matching, range matching, or complex conditions, process the data first in Google Sheets, BigQuery, or another upstream tool.
2.3 Join Operator
The join operator determines whether unmatched records are retained. The most common option for advertising analysis is a left outer join: place Google Ads on the left, retain every advertising record that generated spend, and then append sessions, purchases, and revenue from GA4.
2.4 Data Grain
Data grain defines what one row represents. It is the deciding factor in whether a blend produces correct results.
| Report type | What one row represents | Recommended join key |
|---|---|---|
| Daily summary | One row per day | Date |
| Daily campaign report | One row per day, account, and campaign | Date + Customer ID + Campaign ID |
| Daily country report | One row per day and country | Date + Country |
| Daily product report | One row per day and SKU | Date + SKU |
| Order line-item detail | One row per order line item | Order ID + Line item ID |
3. How to Choose Among the Five Join Types
| Join type | Retention rule | Best for | Main risk |
|---|---|---|---|
| Left outer | Retains all left-table records and adds matching right-table records | Advertising spend master table or order master table | Multiple right-side matches can inflate left-side metrics |
| Right outer | Retains all right-table records | When the right-side data should be primary | Usually replaced by swapping table order and using a left outer join |
| Inner | Retains only records matched on both sides | Analyzing fully matched records only | Unmatched data disappears |
| Full outer | Retains all records from both sides | Completeness checks and missing-data diagnostics | Produces many null values and often requires IFNULL |
| Cross | Returns every possible combination | Special combination calculations and testing | The row count can grow exponentially |
3.1 Why Advertising Reports Usually Use a Left Outer Join
Advertising reports usually treat media spend as the audit baseline. If a campaign generated spend but GA4 has no matching session or purchase, the advertising record should still appear. Placing Google Ads on the left and using a left outer join retains those records while displaying unmatched metrics from the right table as null or 0.
3.2 Table Order Matters in Multi-Table Blends
Data Studio performs joins sequentially from the left. It first joins Table 1 and Table 2, then uses that result in the next join with Table 3. When you automatically blend multiple charts, the first chart selected becomes the leftmost table and a left outer join is used by default.
4. Two Ways to Create a Blend
4.1 Method 1: Automatically Blend Existing Charts
This method is useful for quick testing or temporarily creating ratio metrics.
- Create two or more charts or scorecards in the report, each using one of the target data sources.
- Make sure each chart contains only the fields you intend to include in the blend.
- Hold Ctrl—or Command on a Mac—and select the charts in the desired left-to-right order.
- Right-click and select “Blend data.”
- Review the automatically generated table order, join fields, and join operator, then adjust the chart fields as needed.
4.2 Method 2: Manually Create a Blend
For production reports, the manual method is recommended because it makes it easier to review the fields, date range, filters, and join conditions for each table.
- Enter report edit mode and add the underlying data sources—such as Google Ads, GA4, and Google Sheets—to the report.
- Open Resources → Manage blends → Add a blend. You can also select a chart and click “+ Blend data” in the data source area on the right.

- Configure the first table: select the data source and add dimensions, metrics, a date range, and table-level filters.

- Click “Join another table” and add the second table.

- Click the join configuration between the two tables and select a join operator.

- Add one or more join conditions. A join field must first be included in its corresponding table.

- Save and rename the blend. The name should identify both the data sources and the grain.

Recommended names:
BLEND_GAds_GA4_CampaignDaily
BLEND_Ads_Budget_Monthly
BLEND_SearchConsole_GA4_LandingPage5. Hands-On Example: Google Ads + GA4 Performance Report
This example creates a daily campaign report that displays media spend, website traffic, purchases, and revenue, and calculates CTR, CPC, website purchase conversion rate, and ROAS.
5.1 Fields Required in the Final Report
| Type | Field |
|---|---|
| Dimension | Date, Customer ID, Campaign ID, Campaign |
| Google Ads metrics | Impressions, Clicks, Cost |
| GA4 metrics | Sessions, Ecommerce purchases, Purchase revenue |
| Calculated metrics | CTR, CPC, Purchase CVR, ROAS |
5.2 Preparation
- Confirm that Google Ads and GA4 are correctly linked and that the Google Ads campaign ID is available in the GA4 data. Otherwise, you will need to fall back to campaign names or UTM fields.
- Confirm that Google Ads and GA4 use the same time zone, or explicitly accept differences around date boundaries.
- Confirm that Cost and Purchase revenue use the same currency. In multi-currency environments, normalize exchange rates upstream first.
- Multi-account reports must include Customer ID to prevent identical campaign IDs or names in different accounts from colliding.
- Define the grain first: one row per day, per account, and per campaign.
5.3 Configure the Left Table: Google Ads
| Type | Field |
|---|---|
| Data source | Google Ads |
| Dimension | Date |
| Dimension | Customer ID / Account ID |
| Dimension | Campaign ID |
| Display dimension | Campaign |
| Metric | Impressions |
| Metric | Clicks |
| Metric | Cost |
Name this table Google Ads Media Data. Place it on the far left so that all advertising records are retained.
5.4 Configure the Right Table: GA4
| Type | Field |
|---|---|
| Data source | Google Analytics |
| Dimension | Date |
| Dimension | Session Google Ads customer ID |
| Dimension | Session Google Ads campaign ID |
| Optional display dimension | Session Google Ads campaign |
| Metric | Sessions |
| Metric | Ecommerce purchases |
| Metric | Purchase revenue |
Name this table GA4 Website Data. Field labels may differ slightly between interface languages, so select fields based on the meaning of campaign ID and customer ID.
5.5 Set the Join Operator and Join Conditions
Select Left outer as the join operator. Set the join conditions to:
Google Ads Date = GA4 Date Google Ads Customer ID = GA4 Session Google Ads customer ID Google Ads Campaign ID = GA4 Session Google Ads campaign ID
5.6 Build a Diagnostic Table Before Creating Scorecards
After saving the blend, create a standard table first rather than immediately building only scorecards. The diagnostic table should display at least Date, Customer ID, Campaign ID, Campaign, Cost, Sessions, Ecommerce purchases, and Purchase revenue.
Review each date and campaign row for null values, duplicate rows, and abnormal inflation. Add CTR, CPC, conversion rate, and ROAS only after the base metrics are correct.
6. Calculate CTR, CPC, Conversion Rate, and ROAS
Cross-source formulas must be created as chart-specific calculated fields. The usual path is: select the chart that uses the blend → Add metric → Add field. A calculated field created inside an individual table can reference only fields from that table and cannot reference another table directly.

6.1 CPC
CASE
WHEN SUM(Clicks) = 0 THEN 0
ELSE SUM(Cost) / SUM(Clicks)
ENDSet the display format to Currency.
6.2 CTR
CASE
WHEN SUM(Impressions) = 0 THEN 0
ELSE SUM(Clicks) / SUM(Impressions)
ENDSet the display format to Percent.
6.3 Website Purchase Conversion Rate
CASE
WHEN SUM(Sessions) = 0 THEN 0
ELSE SUM(Ecommerce purchases) / SUM(Sessions)
ENDThis metric is defined as GA4 ecommerce purchases divided by GA4 sessions. It is not the advertising conversion rate shown in Google Ads, and the two may use different attribution rules.
6.4 ROAS
CASE
WHEN SUM(Cost) = 0 THEN 0
ELSE IFNULL(SUM(Purchase revenue), 0) / SUM(Cost)
ENDSet the display format to Number with two decimal places. For example, 3.25 means that every 1 unit of advertising spend generated 3.25 units of purchase revenue.
6.5 Why You Should Not Directly Average CTR or CPC
| Campaign | Impressions | Clicks | CTR |
|---|---|---|---|
| A | 100 | 10 | 10% |
| B | 10,000 | 100 | 1% |
A direct average of the two CTR values is 5.5%, but the correct overall CTR is 110 ÷ 10,100 ≈ 1.09%. Blend base metrics such as impressions, clicks, cost, sessions, purchases, and revenue, and then recalculate the ratios.
7. Filters, Date Ranges, and Order of Operations
Date ranges and filters in a blend operate at two levels: before the join and after the join. Their position in the process differs, so they can produce completely different results.
7.1 Table-Level Settings: Applied Before the Join
A date range, filter, or table-level calculated field configured for an individual table in the blend editor is applied to that table before Data Studio performs the join.

Query Google Ads → Apply Google Ads table-level filters → Aggregate
Query GA4 → Apply GA4 table-level filters → Aggregate
↓
Perform join7.2 Chart-Level Settings: Applied After the Join
A filter applied to a chart that uses the blend operates on the final blended result. For example, a chart filter of Revenue > 0 may exclude campaigns that generated spend but no revenue.
7.3 Recommended Date Configuration
Google Ads table date range: Auto GA4 table date range: Auto Report page: Add one shared date range control
Use different fixed date ranges for individual tables only when performing period comparisons, matching against target tables, or analyzing special time windows.
8. Cleaning and Standardizing Join Fields
Fields that look identical on both sides do not necessarily match. Spaces, letter case, data types, and date formats can all cause join failures. Create standardized fields in each table and use those fields as the join keys.
| Purpose | Example formula |
|---|---|
| Remove leading and trailing spaces | TRIM(Campaign) |
| Standardize to lowercase | LOWER(TRIM(Campaign)) |
| Convert an ID to text | CAST(Campaign ID AS TEXT) |
| Convert an ID to a number | CAST(Campaign ID AS NUMBER) |
| Convert text to a date | PARSE_DATE(“%Y-%m-%d”, Date Text) |
8.1 Prefer IDs to Names
Name fields can be edited, vary across languages, or be duplicated across accounts. Use stable identifiers such as Campaign ID, Customer ID, Order ID, and SKU for joins, and use names only for display.
8.2 Date Grain Must Be Consistent
Do not join Date directly to Date Hour, and do not treat 2026-08-26 and 2026-08-26 14:00:00 as the same grain. First standardize both sides to day, week, or month.
9. Common Problems and Troubleshooting
9.1 All GA4 Metrics Are Null
- The data types of Date, Campaign ID, or Customer ID are inconsistent.
- GA4 does not contain the corresponding Google Ads campaign ID.
- Campaign name is used as the join key, but the two sides differ because of spaces, capitalization, or historical renaming.
- Customer ID is missing from a multi-account report.
- A table-level filter or date range excluded the data before the join.
For troubleshooting, narrow the date range to one day and the scope to one campaign, then display the join fields from both sides in the diagnostic table.
9.2 Cost or Revenue Is Inflated
The most common cause is a non-unique join key that creates one-to-many or many-to-many matches.
Google Ads: Date + Campaign ID = 1 row, Cost = 100 GA4: Date + Campaign ID + Country = 3 rows After joining on Date + Campaign ID only, Cost may be duplicated to 300
Possible solutions include removing the Country dimension from GA4, adding Country to both sides, or aggregating both sources to the same grain in Google Sheets or BigQuery first.
9.3 Some Campaigns Disappear
First check whether an inner join is being used. An inner join retains only records matched on both sides. Advertising reports should generally use Google Ads as the left table and select Left outer. Also check whether a table-level filter removed records before the join.
9.4 Total Rows Do Not Match Row-Level Results
If the formula is Clicks / Impressions, Data Studio may calculate the ratio for each row and then sum those ratios, producing an incorrect total. Use SUM(Clicks) / SUM(Impressions) to calculate the overall ratio.
9.5 The Date Range Control Has No Effect
- The blend does not contain a valid Date field.
- The chart uses the wrong date range dimension.
- The Google Sheets date is being interpreted as text.
- The two tables use different date grains.
- A table has a Custom date range that overrides the chart-level date range control.
9.6 A Calculated Field Cannot Reference Multiple Data Sources
A field created inside an individual table in the blend editor can reference only fields from that table. To calculate Purchase revenue / Cost, save the blend first and then create a chart-specific calculated field in a chart that uses the blend.
9.7 The Report Loads Very Slowly
- Remove unused fields and dimensions from the blend.
- Reduce the number of tables and avoid cross joins.
- Reduce the default date range.
- Avoid an unnecessarily granular blend, such as including Campaign, Country, Device, and Landing page at the same time.
- Check whether a third-party community connector is responding slowly.
- Pre-aggregate large or repeatedly used data models in BigQuery.
10. Data Validation Workflow
Do not publish immediately after creating the blend. Validate from a small scope to a larger one to identify join problems as quickly as possible.
- Create a raw Google Ads table, a raw GA4 table, and a blended diagnostic table.
- Limit the date range to one day.
- Select one campaign that has spend, sessions, and purchases.
- Compare Google Ads Cost with Cost in the blended table, and compare GA4 Sessions, Purchases, and Revenue with the corresponding blended metrics.
- Check whether Date + Customer ID + Campaign ID is unique in each table.
- Expand the scope to all campaigns for one day, then to 7 days and 30 days.
- After the base metrics are correct, validate CTR, CPC, Purchase CVR, and ROAS.
10.1 Which Metrics Should Match?
| Check | Expected result |
|---|---|
| Google Ads Cost | Should match Google Ads under the same date, account, and campaign filters |
| Google Ads Clicks / Impressions | Should match the raw Google Ads table |
| GA4 Sessions / Purchases / Revenue | Should match the raw GA4 table under the same dimensions and filters |
| Google Ads conversions vs. GA4 purchases | Not expected to match because attribution models, conversion timing, and definitions may differ |
11. Performance Optimization and Alternatives
11.1 When a Data Studio Blend Is Still Appropriate
- The blend contains no more than five tables.
- The join logic is primarily one-to-one or many-to-one.
- The data volume is moderate and the report is primarily used for visualization.
- The blend is needed only in the current report.
- Field cleaning and business rules are relatively simple.
11.2 When Sheets or BigQuery Is a Better Choice
- You need to join more than five tables.
- The model contains complex many-to-many relationships, fuzzy matching, or range matching.
- A unified data model must be reused across multiple reports.
- The workflow requires extensive cleaning, deduplication, currency conversion, or attribution calculations.
- The data volume is large, and blended charts are noticeably slow or frequently exceed quotas.
- You need to retain transformed detail data or snapshots over the long term.
Google Ads + GA4 + CRM + Shopify
↓
Google Sheets / BigQuery
Clean · Deduplicate · Standardize · Aggregate
↓
Data Studio
Filters, charts, and presentation only12. Reusable Configuration Template and Checklist
12.1 Google Ads + GA4 Configuration Template
Blend name: BLEND_GAds_GA4_CampaignDaily Data grain: One row per day, account, and campaign Left table: Google Ads Dimensions: Date, Customer ID, Campaign ID, Campaign Metrics: Impressions, Clicks, Cost Right table: Google Analytics Dimensions: Date, Session Google Ads customer ID, Session Google Ads campaign ID Metrics: Sessions, Ecommerce purchases, Purchase revenue Join operator: Left outer Join conditions: Date + Customer ID + Campaign ID Calculated metrics: CTR, CPC, Purchase CVR, ROAS Validation scope: One day and one campaign
12.2 Pre-Publication Checklist
| Done | Checklist item |
|---|---|
| □ | The meaning of one row has been clearly defined. |
| □ | The left and right tables use the same grain. |
| □ | Stable IDs are used as join fields instead of names whenever possible. |
| □ | Customer ID is included in multi-account reports. |
| □ | Date field types and date grains are consistent. |
| □ | Cost and Revenue use the same currency. |
| □ | The primary data table is placed on the far left. |
| □ | The join operator matches the intended data-retention behavior. |
| □ | Each join-key combination is as unique as possible within each table. |
| □ | Ratio metrics such as CTR, CPC, and ROAS are not directly averaged. |
| □ | Cross-table formulas are created in the blended chart. |
| □ | Table-level filters do not remove records needed for the join. |
| □ | A row-level reconciliation has been completed for one day and one campaign. |
| □ | Null values, duplicate rows, and total rows have been checked. |
| □ | The blend contains only the fields that are actually needed. |
12.3 Key Interface Terms
| Concept | English interface label |
|---|---|
| Data blending | Blend data / Blend |
| Join another table | Join another table |
| Join condition | Join condition |
| Left outer join | Left outer join |
| Inner join | Inner join |
| Dimension | Dimension |
| Metric | Metric |
| Chart-specific calculated field | Chart-specific calculated field |
| Date range | Date range |
| Filter | Filter |
Conclusion
The value of Data Studio blending is that it turns data from different systems into an actionable business view within the same chart. However, it does not automatically resolve problems in data definitions, grain, or join relationships. Define the grain before choosing join keys, validate base metrics before calculating ratios, and reconcile a small scope before expanding to the full report. Following this order allows most blending errors to be detected early.

