Advanced: Build Convert Experiment Reports in Looker Studio Using GA4 and BigQuery
Create customized, event-level experiment dashboards by combining Convert exposure data with GA4 events in BigQuery.
💬 Looking for the simplest setup?
For most reporting needs, use the direct Convert Experiences Looker Studio connector. It does not require GA4 BigQuery Export, Google Cloud configuration, or custom SQL.
Continue with this guide when you need event-level GA4 analysis, custom SQL, funnels, or data-warehouse reporting.
Template Overview
This guide provides ready-to-use templates and step-by-step instructions to create professional Convert.com experiment analysis dashboards in Looker Studio. You'll get exact configurations, styling instructions, and a complete template you can duplicate and customize.
Template Package Contents
- BigQuery Data Source Template
- Dashboard Layout Template
- Chart Configuration Templates
- Calculated Field Templates
- Filter Control Templates
- Styling Guide
Part 1: Data Source Template Setup
Step 1: Create Your BigQuery Data Source
1.1. Access Data Sources
- Go to datastudio.google.com
- Click "Create" → "Data Source"
- Select "BigQuery" connector
- Choose "Custom Query" option
1.2. Copy and Customize the Template Query
-- CONVERT.COM EXPERIMENT ANALYSIS TEMPLATE
-- REQUIRED CUSTOMIZATIONS MARKED WITH YOUR_ PREFIX
WITH experiment_data AS (
SELECT
PARSE_DATE('%Y%m%d', event_date) AS date,
event_timestamp,
user_pseudo_id,
event_name,
-- Extract Convert.com experiment details
REGEXP_EXTRACT(
(SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'exp_variant_string'),
r'CONV-(\d+)-\d+'
) AS experiment_id,
REGEXP_EXTRACT(
(SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'exp_variant_string'),
r'CONV-\d+-(\d+)'
) AS variation_id,
-- CUSTOMIZE: Replace with your actual variation IDs
CASE
WHEN REGEXP_EXTRACT(
(SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'exp_variant_string'),
r'CONV-\d+-(\d+)'
) = 'YOUR_CONTROL_ID' THEN 'Control'
WHEN REGEXP_EXTRACT(
(SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'exp_variant_string'),
r'CONV-\d+-(\d+)'
) = 'YOUR_VARIATION_A_ID' THEN 'Variation A'
WHEN REGEXP_EXTRACT(
(SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'exp_variant_string'),
r'CONV-\d+-(\d+)'
) = 'YOUR_VARIATION_B_ID' THEN 'Variation B'
ELSE 'Other'
END AS variation_label,
-- CUSTOMIZE: Replace with your conversion events
CASE
WHEN event_name = 'experience_impression' THEN 'Impression'
WHEN event_name IN (
'YOUR_PRIMARY_CONVERSION', -- e.g., 'purchase'
'YOUR_SECONDARY_CONVERSION', -- e.g., 'sign_up'
'YOUR_TERTIARY_CONVERSION' -- e.g., 'generate_lead'
) THEN 'Conversion'
WHEN event_name IN (
'YOUR_MICRO_CONVERSION_1', -- e.g., 'add_to_cart'
'YOUR_MICRO_CONVERSION_2' -- e.g., 'begin_checkout'
) THEN 'Micro-Conversion'
ELSE 'Other'
END AS event_category,
-- Revenue data
COALESCE(
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = 'value'),
ecommerce.purchase_revenue,
0
) AS event_value,
-- Dimensions for analysis
device.category AS device_category,
geo.country AS country,
traffic_source.source AS traffic_source,
traffic_source.medium AS traffic_medium
-- CUSTOMIZE: Replace with your BigQuery table path
FROM `YOUR_PROJECT.YOUR_DATASET.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
AND (
event_name = 'experience_impression'
-- CUSTOMIZE: Add your conversion events
OR event_name IN (
'YOUR_PRIMARY_CONVERSION',
'YOUR_SECONDARY_CONVERSION',
'YOUR_TERTIARY_CONVERSION',
'YOUR_MICRO_CONVERSION_1',
'YOUR_MICRO_CONVERSION_2'
)
)
),
-- Attribution logic
user_impressions AS (
SELECT
user_pseudo_id,
experiment_id,
variation_id,
variation_label,
MIN(event_timestamp) AS first_impression_time
FROM experiment_data
WHERE event_category = 'Impression'
GROUP BY 1, 2, 3, 4
)
-- Final output for Looker Studio
SELECT
e.date,
e.experiment_id,
e.variation_id,
e.variation_label,
e.event_category,
e.event_name,
e.device_category,
e.country,
e.traffic_source,
e.traffic_medium,
-- Metrics
COUNT(*) AS total_events,
COUNT(DISTINCT e.user_pseudo_id) AS unique_users,
SUM(e.event_value) AS total_revenue,
-- Attribution
COUNT(DISTINCT CASE
WHEN e.event_category IN ('Conversion', 'Micro-Conversion')
AND e.event_timestamp >= ui.first_impression_time
THEN e.user_pseudo_id
END) AS attributed_conversions,
SUM(CASE
WHEN e.event_category IN ('Conversion', 'Micro-Conversion')
AND e.event_timestamp >= ui.first_impression_time
THEN e.event_value
ELSE 0
END) AS attributed_revenue
FROM experiment_data e
LEFT JOIN user_impressions ui
ON e.user_pseudo_id = ui.user_pseudo_id
AND e.experiment_id = ui.experiment_id
WHERE ui.user_pseudo_id IS NOT NULL
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
ORDER BY 1 DESC, 4
1.3. Data Source Configuration
- Name your data source: "Convert Experiment Data"
- Click "Connect"
- Configure field types as needed
- Click "Create Report"
Part 2: Dashboard Template Creation
Step 2: Set Up Dashboard Layout
2.1. Dashboard Settings
- Canvas Size: Fixed size (1600 x 1200)
- Theme: Custom (we'll configure colors below)
- Title: "Convert.com Experiment Analysis Dashboard"
2.2. Create Header Section
- Position: Top of dashboard
- Height: 80px
- Background: #f8f9fa (light gray)
Part 3: Filter Controls Template
Step 3: Implement Filter Controls
3.1. Date Range Control
Control Type: Date range control
Position: Header section, left
Size: 200px width × 40px height
Default Value: Last 30 days
Style:
- Border: 1px solid #dee2e6
- Background: white
- Font: Google Sans, 14px
Implementation Steps:
- Click "Add a control" → "Date range control"
- Position in header section
- In "Setup" tab:
- Default date range: Last 30 days
- In "Style" tab:
- Border color: #dee2e6
- Background: #ffffff
3.2. Experiment Filter
Control Type: Drop-down list
Position: Header section, center
Size: 200px width × 40px height
Control field: Experiment ID
Allow multiple selections: No
Implementation Steps:
- "Add a control" → "Drop-down list"
- Setup:
- Control field: Experiment ID
- Metric: none
- Allow multiple selections: unchecked
- Style: Match date range control
3.3. Variation Filter
Control Type: Multi-select dropdown
Position: Header section, right
Size: 200px width × 40px height
Control field: Variation Label
Part 4: Scorecard Templates
Step 4: Create Performance Scorecards
4.1. Control Scorecard Template
Chart Configuration:
Chart Type: Scorecard
Data Range: Your data source
Filters: Variation Label EQUALS Control
Position: Row 2, Left column
Size: 250px width × 150px height
Metrics Configuration:
Metric 1: Users Exposed
- Field: Unique Users
- Filter: Event Category = "Impression"
- Aggregation: Count Distinct
- Format: Number, no decimals
Metric 2: Conversions
- Field: Attributed Conversions
- Aggregation: Sum
- Format: Number, no decimals
Metric 3: Conversion Rate
- Calculation: (Attributed Conversions / Users Exposed) * 100
- Format: Percentage, 2 decimals
Styling:
Border: 2px solid #1f77b4 (blue for control)
Background: #f8f9ff
Font: Google Sans
Primary metric size: 36px
Label size: 14px
Implementation Steps:
- Add chart → Scorecard
- Setup tab:
- Metric: Unique Users
- Filter: Variation Label = "Control" AND Event Category = "Impression"
- Style tab:
- Border: 2px solid #1f77b4
- Background: #f8f9ff
- Number color: #1f77b4
- Duplicate for additional metrics
4.2. Variation A Scorecard Template
Same configuration as Control, but:
Filter: Variation Label EQUALS Variation A
Border color: #ff7f0e (orange)
Background: #fff8f0
Number color: #ff7f0e
4.3. Statistical Summary Scorecard
Chart Type: Scorecard
Metrics: Calculated fields for uplift
Position: Row 2, Right column
Size: 300px width × 150px height
Part 5: Chart Templates
Step 5: Performance Trends Chart
5.1. Daily Trend Char
Configuration:
Chart Type: Time series (line chart)
Position: Row 3, full width
Size: 1500px width × 300px height
Setup:
Date Range Dimension: Date
Breakdown Dimension: Variation Label
Metrics:
- Conversion Rate (calculated field)
- Revenue per User (calculated field)
Sort: Date ascending
Secondary axis: Revenue per User
Styling:
Control line: #1f77b4, 3px thickness
Variation A line: #ff7f0e, 3px thickness
Variation B line: #2ca02c, 3px thickness
Grid lines: #e9ecef
Background: white
Legend position: Bottom
Implementation:
- Add chart → Time series chart
- Setup:
- Date range dimension: Date
- Breakdown dimension: Variation Label
- Metric: Create calculated field for conversion rate
- Style:
- Series colors: Set as specified above
- Reference lines: Add if needed
Step 6: Conversion Funnel Template
6.1. Funnel Chart Configuration
Chart Type: Stepped area chart
Position: Row 4, Left column
Size: 500px width × 400px height
Setup:
Dimension: Event Category
Breakdown: Variation Label
Metric: Unique Users
Sort: Custom order (Impression, Micro-Conversion, Conversion)
Custom Sort Order Implementation:
- Create calculated field:
CASE
WHEN Event Category = "Impression" THEN 1
WHEN Event Category = "Micro-Conversion" THEN 2
WHEN Event Category = "Conversion" THEN 3
ELSE 4
END
Step 7: Device Performance Chart
7.1. Device Analysis Template
Chart Type: Grouped bar chart
Position: Row 4, Center column
Size: 400px width × 400px height
Configuration:
Dimension: Device Category
Breakdown: Variation Label
Metrics:
- Conversion Rate
- Revenue per User
Sort: Total users (descending)
Step 8: Geographic Analysis
8.1. World Map Template
Chart Type: Geo chart (World map)
Position: Row 4, Right column
Size: 400px width × 400px height
Setup:
Geographic dimension: Country
Color metric: Conversion Rate
Size metric: Users Exposed (optional)
Color scale: Blue to red gradient
Step 9: Data Table Template
9.1. Detailed Analysis Table
Chart Type: Table
Position: Row 5, full width
Size: 1500px width × 400px height
Columns Configuration:
1. Date (Date format)
2. Variation Label (Text)
3. Event Category (Text)
4. Device Category (Text)
5. Users (Number, no decimals)
6. Conversions (Number, no decimals)
7. Conversion Rate (Percentage, 2 decimals)
8. Revenue (Currency, 2 decimals)
9. Revenue per User (Currency, 2 decimals)
Table Settings:
Rows per page: 50
Enable search: Yes
Enable export: Yes
Show summary row: Yes
Conditional formatting: Yes (highlight top performers)
Part 6: Calculated Fields Templates
Step 10: Essential Calculated Fields
10.1. Conversion Rate Calculation
Field Name: Conversion Rate
Formula: (Attributed Conversions / CASE WHEN Unique Users = 0 THEN 1 ELSE Unique Users END) * 100
Type: Number
Default Aggregation: Auto
Implementation:
- In data source, click "Add a field"
- Name: "Conversion Rate"
- Formula: As above
- Save
10.2. Revenue per User
Field Name: Revenue per User
Formula: Total Revenue / CASE WHEN Unique Users = 0 THEN 1 ELSE Unique Users END
Type: Number (Currency)
Default Aggregation: Auto
10.3. Uplift Percentage
Field Name: Uplift vs Control
Formula:
CASE
WHEN Variation Label = "Control" THEN 0
ELSE (Conversion Rate - AVG(CASE WHEN Variation Label = "Control" THEN Conversion Rate END)) /
AVG(CASE WHEN Variation Label = "Control" THEN Conversion Rate END) * 100
END
Type: Number (Percentage)
10.4. Statistical Significance
Field Name: Significance Level
Formula:
CASE
WHEN Unique Users >= 1000 AND ABS(Uplift vs Control) >= 10 THEN "High Confidence"
WHEN Unique Users >= 500 AND ABS(Uplift vs Control) >= 15 THEN "Medium Confidence"
WHEN Unique Users >= 100 THEN "Low Confidence"
ELSE "Insufficient Data"
END
Type: Text
Part 7: Styling Template
Step 11: Consistent Styling Guide
11.1. Color Palette
Primary Colors:
- Control: #1f77b4 (Blue)
- Variation A: #ff7f0e (Orange)
- Variation B: #2ca02c (Green)
- Variation C: #d62728 (Red)
Background Colors:
- Dashboard: #ffffff (White)
- Chart backgrounds: #ffffff
- Header: #f8f9fa (Light gray)
- Control sections: #f8f9ff (Light blue)
- Variation sections: #fff8f0 (Light orange)
Text Colors:
- Primary: #212529 (Dark gray)
- Secondary: #6c757d (Medium gray)
- Success: #28a745 (Green)
- Warning: #ffc107 (Yellow)
- Danger: #dc3545 (Red)
Border Colors:
- Default: #dee2e6 (Light gray)
- Control: #1f77b4 (Blue)
- Variation: #ff7f0e (Orange)
11.2. Typography Settings
Font Family: Google Sans (primary), Roboto (fallback)
Font Sizes:
- Dashboard title: 24px, Bold
- Section headers: 18px, Bold
- Chart titles: 16px, Bold
- Metric values: 36px, Bold
- Metric labels: 14px, Normal
- Table headers: 14px, Bold
- Table data: 12px, Normal
- Filters: 14px, Normal
11.3. Spacing Guidelines
Margins:
- Dashboard margins: 20px
- Between sections: 30px
- Between charts: 20px
- Chart internal padding: 15px
Chart Dimensions:
- Scorecard: 250px × 150px
- Trend chart: 1500px × 300px
- Funnel chart: 500px × 400px
- Device chart: 400px × 400px
- Geo chart: 400px × 400px
- Data table: 1500px × 400px
Part 8: Template Implementation Checklist
Step 12: Complete Implementation Guide
12.1. Pre-Implementation Checklist
- [ ] Verify GA4 BigQuery Export is Active
-- Test query to verify data
SELECT COUNT(*) as total_events
FROM `YOUR_PROJECT.analytics_XXXXXX.events_*`
WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', CURRENT_DATE())
- [ ] Identify your event names
-- Get list of your events
SELECT event_name, COUNT(*) as event_count
FROM `YOUR_PROJECT.analytics_XXXXXX.events_*`
WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY 1
ORDER BY 2 DESC
- [ ] Get your variation IDs from Convert.com
- [ ] Confirm BigQuery permissions
- [ ] Plan dashboard sharing strategy
12.2. Implementation Steps
- Create Data Source (30 minutes)
- [ ] Copy and customize BigQuery query
- [ ] Replace all YOUR_ placeholders
- [ ] Test query execution
- [ ] Configure field types
- [ ] Save data source
- Build Dashboard Framework (45 minutes)
- [ ] Create new report
- [ ] Set canvas size and theme
- [ ] Add header section
- [ ] Implement filter controls
- [ ] Test filter functionality
- Create Core Charts (60 minutes)
- [ ] Build Control scorecard
- [ ] Build Variation A scorecard
- [ ] Create statistical summary
- [ ] Add performance trend chart
- [ ] Implement funnel analysis
- Add Supporting Charts (45 minutes)
- [ ] Device performance chart
- [ ] Geographic analysis
- [ ] Traffic source breakdown
- [ ] Detailed data table
- Configure Calculated Fields (30 minutes)
- [ ] Conversion rate calculation
- [ ] Revenue per user
- [ ] Uplift percentage
- [ ] Statistical significance
- Apply Styling (30 minutes)
- [ ] Color scheme implementation
- [ ] Typography consistency
- [ ] Spacing optimization
- [ ] Mobile responsiveness test
12.3. Testing Checklist
- [ ] Data Validation
- Compare dashboard totals with GA4
- Verify attribution logic
- Check filter interactions
- Test date range changes
- [ ] Performance Testing
- Load with maximum date range
- Test with multiple simultaneous users
- Verify mobile responsiveness
- Check loading times
- [ ] User Acceptance Testing
- Share with stakeholders for feedback
- Test with different permission levels
- Verify export functionality
- Confirm scheduled reports work
12.4. Launch Checklist
- [ ] Documentation
- Create user guide
- Document customization instructions
- Establish maintenance schedule
- Plan training sessions
- [ ] Access Management
- Configure viewer permissions
- Set up editor access
- Establish owner hierarchy
- Plan access review schedule
- [ ] Monitoring Setup
- Schedule regular data quality checks
- Set up performance alerts
- Plan monthly optimization reviews
- Establish feedback collection process
Part 9: Customization Templates
Step 13: Industry-Specific Customizations
13.1. E-commerce Template Additions
-- Add to main query for e-commerce metrics
SELECT
...,
-- Product data
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'item_category') as product_category,
(SELECT value.int64_value FROM UNNEST(event_params) WHERE key = 'quantity') as quantity,
-- Enhanced e-commerce events
CASE
WHEN event_name = 'purchase' THEN 'Purchase'
WHEN event_name = 'add_to_cart' THEN 'Add to Cart'
WHEN event_name = 'begin_checkout' THEN 'Begin Checkout'
WHEN event_name = 'view_item' THEN 'Product View'
END as ecommerce_action
Additional Charts for E-commerce:
- Product Performance by Variation
- Shopping Funnel Analysis
- Average Order Value Comparison
- Cart Abandonment Rates
13.2. SaaS Template Additions
-- SaaS-specific metrics
SELECT
...,
-- Subscription data
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'subscription_type') as plan_type,
(SELECT value.int64_value FROM UNNEST(event_params) WHERE key = 'trial_days') as trial_length,
-- SaaS events
CASE
WHEN event_name = 'trial_start' THEN 'Trial Started'
WHEN event_name = 'subscription_purchase' THEN 'Converted to Paid'
WHEN event_name = 'feature_engagement' THEN 'Feature Usage'
END as saas_action
13.3. Lead Generation Template
-- Lead gen specific metrics
SELECT
...,
-- Lead data
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'form_name') as form_name,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'lead_source') as lead_source,
-- Lead events
CASE
WHEN event_name = 'generate_lead' THEN 'Lead Generated'
WHEN event_name = 'contact_form_submit' THEN 'Contact Form'
WHEN event_name = 'newsletter_signup' THEN 'Newsletter'
END as lead_action
Part 10: Template Sharing and Collaboration
Step 14: Template Distribution
14.1. Creating Shareable Template
- Prepare Template for Sharing:
- [ ] Remove all real data (use sample data)
- [ ] Replace specific IDs with placeholders
- [ ] Add instruction annotations
- [ ] Test with sample BigQuery data
- Create Template Copy Link:
- [ ] Open dashboard
- [ ] Click "Share" → "Make a copy"
- [ ] Generate shareable link
- [ ] Test link access
14.2. Template Documentation
Create accompanying documentation:
# Convert.com Dashboard Template - Setup Guide
## Prerequisites
- GA4 BigQuery Export enabled
- Convert.com experiments running
- Looker Studio access
## Customization Required
1. BigQuery table path: Line 45 in data source
2. Variation IDs: Lines 28-35 in data source
3. Event names: Lines 40-50 in data source
4. Color scheme: Dashboard style settings
## Support
- Email: your-analytics-team@company.com
- Documentation: link-to-your-docs
- Training: link-to-training-schedule
Part 11: Troubleshooting Template
Step 15: Common Issues and Solutions
15.1. Data Issues Template
-- Diagnostic queries for troubleshooting
-- Check if Convert.com events exist
SELECT
event_date,
COUNT(*) as impression_events
FROM `YOUR_PROJECT.analytics_XXXXXX.events_*`
WHERE event_name = 'experience_impression'
AND _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY 1
ORDER BY 1 DESC;
-- Verify variation ID extraction
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'exp_variant_string') as raw_string,
REGEXP_EXTRACT(
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'exp_variant_string'),
r'CONV-\d+-(\d+)'
) AS extracted_variation_id
FROM `YOUR_PROJECT.analytics_XXXXXX.events_*`
WHERE event_name = 'experience_impression'
LIMIT 10;
-- Check conversion event coverage
SELECT
event_name,
COUNT(*) as event_count,
COUNT(DISTINCT user_pseudo_id) as unique_users
FROM `YOUR_PROJECT.analytics_XXXXXX.events_*`
WHERE event_name IN ('YOUR_CONVERSION_EVENTS')
AND _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY 1;
15.2. Performance Issues Template
Issue: Slow Dashboard Loading
-- Optimized query template for large datasets
-- Add to your main query:
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE()) -- Limit to 30 days
AND event_name IN ('experience_impression', 'YOUR_KEY_EVENTS_ONLY') -- Limit events
Chart Optimization Settings:
- Maximum rows displayed: 1000
- Enable data sampling: For > 500K rows
- Use extract data: For historical reports
15.3. Access Issues Template
Permission Setup Checklist:
- [ ] BigQuery dataset access
- [ ] Looker Studio sharing permissions
- [ ] Data source permissions
- [ ] Dashboard viewing rights
Template Summary
This comprehensive template package provides:
- Complete BigQuery data source with customization points clearly marked
- Step-by-step dashboard creation with exact specifications
- Ready-to-use chart configurations with styling details
- Calculated field templates for key metrics
- Color schemes and typography guidelines
- Implementation checklist for structured rollout
- Troubleshooting guides for common issues
- Industry customizations for specific business types
- Sharing and collaboration templates
Total Implementation Time: ~4 hours
- Data source setup: 30 min
- Dashboard creation: 3 hours
- Testing and refinement: 30 min
Template Benefits:
- Immediate deployment with minimal customization
- Professional appearance with consistent styling
- Comprehensive analysis covering all key metrics
- Scalable framework for multiple experiments
- Cost-effective solution using free Google tools
By following this template guide, you'll have a production-ready Convert.com analysis dashboard that rivals expensive specialized platforms, all built on free Google infrastructure with professional-grade functionality and appearance.