Google Analytics

Leveraging Convert's GTM & GA4 Integration to Send AB Testing Data to Google Cloud Platform

Send A/B Test Results from Convert to Google Cloud via GA4 & GTM

IN THIS ARTICLE, YOU WILL

Introduction

Convert Experiences offers built-in integrations with Google Tag Manager (GTM) and Google Analytics 4 (GA4) that streamline the process of sending your A/B testing data to Google Cloud Platform (GCP). This guide explains how to utilize these existing integrations to connect your experiment data with GCP’s powerful analytics and machine learning capabilities—without requiring custom API development.

Understanding Convert’s Data Formats

Convert sends testing data in two key formats:

1. GTM Data Layer Format

When a Convert experiment is triggered, the following data is automatically pushed to the GTM data layer:

  • event: convert-trigger-experiment-{experiment_id}

  • experiment_id: The experiment ID as shown in the Convert Experiences app

  • variation_name: The variation name as shown in the Convert Experiences app

  • gadimension: (Only if Google Analytics integration is enabled) Contains the value for the GA dimension

Example:

dataLayer.push({
  'event': 'convert-trigger-experiment-1000127510',
  'experiment_id': '1000127510',
  'variation_name': 'Variation #1',
  'gadimension': 'CONV-1000127510-1001186951'
});

2. GA4 Event Format

When the GA4 integration is enabled, Convert sends:

  • Event Type: experience_impression

  • Event Parameter Format: CONV-[experiment_id]-[variation_id]

Example:
CONV-1000127510-1001186951

Setting Up the Data Pipeline to GCP

Step 1: Configure GTM to Capture Convert Experiments

  • Create a Custom Event Trigger in GTM that listens for events beginning with convert-trigger-experiment-

  • Define Variables:

Step 2: Forward Data to GA4

  • Create a GA4 Event Tag in GTM:

    • Event Name: convert_experiment_view (or custom)

    • Event Parameters:

      • experiment_id:

      • variation_name:

      • experiment_event:

Step 3: Configure GA4 BigQuery Export

  • GA4 Admin → BigQuery Linking

  • Enable export and select:

    • Your GCP project

    • Data location and export frequency

    • Events: experience_impression, convert_experiment_view

Step 4: Track Revenue via Standard GA4 eCommerce

Convert does not directly track revenue. Use GA4’s native eCommerce setup:

  • Implement standard GA4 eCommerce tracking

  • Ensure events like purchase, add_to_cart are tracked

  • Join this data with Convert data in BigQuery for analysis

Working with Convert Data in BigQuery

Parsing Data from GTM-to-GA4 Path

WITH convert_gtm_events AS (
  SELECT event_timestamp, user_pseudo_id,
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'experiment_id') AS experiment_id,
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'variation_name') AS variation_name
  FROM `your_project_id.analytics_XXXXXX.events_*`
  WHERE event_name = 'convert_experiment_view'
    AND _TABLE_SUFFIX BETWEEN '20230101' AND '20230131'
)
SELECT experiment_id, variation_name, COUNT(DISTINCT user_pseudo_id) AS user_count
FROM convert_gtm_events
GROUP BY experiment_id, variation_name
ORDER BY experiment_id, user_count DESC

Parsing Direct GA4 Integration Data

WITH convert_ga4_events AS (
  SELECT event_timestamp, user_pseudo_id,
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'event_label') AS experience_label,
    REGEXP_EXTRACT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'event_label'), 'CONV-([0-9]+)-[0-9]+') AS experiment_id,
    REGEXP_EXTRACT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'event_label'), 'CONV-[0-9]+-([0-9]+)') AS variation_id
  FROM `your_project_id.analytics_XXXXXX.events_*`
  WHERE event_name = 'experience_impression'
    AND _TABLE_SUFFIX BETWEEN '20230101' AND '20230131'
)
SELECT experiment_id, variation_id, COUNT(DISTINCT user_pseudo_id) AS user_count
FROM convert_ga4_events
GROUP BY experiment_id, variation_id
ORDER BY experiment_id, user_count DESC

Creating a Combined View

CREATE OR REPLACE VIEW `your_project_id.your_dataset.convert_all_experiments` AS
-- GTM integration
SELECT event_timestamp, user_pseudo_id,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'experiment_id') AS experiment_id,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'variation_name') AS variation_name,
  'gtm' AS source
FROM `your_project_id.analytics_XXXXXX.events_*`
WHERE event_name = 'convert_experiment_view'
UNION ALL
-- GA4 integration
SELECT event_timestamp, user_pseudo_id,
  REGEXP_EXTRACT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'event_label'), 'CONV-([0-9]+)-[0-9]+') AS experiment_id,
  'Variation ID: ' || REGEXP_EXTRACT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'event_label'), 'CONV-[0-9]+-([0-9]+)') AS variation_name,
  'ga4' AS source
FROM `your_project_id.analytics_XXXXXX.events_*`
WHERE event_name = 'experience_impression';

Analyzing Revenue Impact with eCommerce Data

-- Experiment user mapping
WITH experiment_users AS (
  SELECT user_pseudo_id,
    COALESCE(
      (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'experiment_id'),
      REGEXP_EXTRACT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'event_label'), 'CONV-([0-9]+)-[0-9]+')
    ) AS experiment_id,
    COALESCE(
      (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'variation_name'),
      'Variation ID: ' || REGEXP_EXTRACT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'event_label'), 'CONV-[0-9]+-([0-9]+)')
    ) AS variation_name,
    MIN(event_timestamp) AS first_exposure
  FROM `your_project_id.analytics_XXXXXX.events_*`
  WHERE event_name IN ('convert_experiment_view', 'experience_impression')
    AND _TABLE_SUFFIX BETWEEN '20230101' AND '20230131'
  GROUP BY user_pseudo_id, experiment_id, variation_name
),
purchase_events AS (
  SELECT user_pseudo_id,
    event_timestamp AS purchase_time,
    (SELECT value.double_value FROM UNNEST(event_params) WHERE key = 'value') AS purchase_value,
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'transaction_id') AS transaction_id
  FROM `your_project_id.analytics_XXXXXX.events_*`
  WHERE event_name = 'purchase'
    AND _TABLE_SUFFIX BETWEEN '20230101' AND '20230131'
)
SELECT
  e.experiment_id,
  e.variation_name,
  COUNT(DISTINCT e.user_pseudo_id) AS users_exposed,
  COUNT(DISTINCT p.user_pseudo_id) AS users_purchased,
  COUNT(DISTINCT p.user_pseudo_id) / COUNT(DISTINCT e.user_pseudo_id) AS conversion_rate,
  SUM(p.purchase_value) AS total_revenue,
  SUM(p.purchase_value) / COUNT(DISTINCT e.user_pseudo_id) AS revenue_per_user
FROM experiment_users e
LEFT JOIN purchase_events p
ON e.user_pseudo_id = p.user_pseudo_id AND e.first_exposure < p.purchase_time
GROUP BY e.experiment_id, e.variation_name
ORDER BY e.experiment_id, revenue_per_user DESC

Leveraging GCP Services for Advanced Analysis

Looker Studio: Visualize Metrics

  • Connect to BigQuery views

  • Build dashboards:

    • Experiment Overview

    • Revenue Impact

    • Segmentation Analysis

Vertex AI: Predictive Insights

Use your joined data to:

  • Predict experiment success

  • Model conversion likelihood

  • Optimize future experiment targeting

Advanced Use Cases

Multi-Touchpoint Experiment Journey

Track how users experience multiple experiments across pages.

Consolidated Daily Metrics View

Create a reusable view in BigQuery to summarize daily test performance.

Best Practices for GCP Analysis of Convert Data

  • Combine sources from GTM and GA4

  • Map IDs to readable names

  • Use partitioned tables in BigQuery

  • Validate integration health regularly

  • Document metrics definitions

  • Apply IAM roles for access control

Conclusion

By using Convert’s integrations with GTM and GA4, and linking to GCP, you can elevate your A/B testing program beyond standard reporting. When combined with GA4’s eCommerce tracking, this setup empowers you to connect experimentation directly with revenue outcomes, supporting smarter CRO decisions and more robust business impact analysis.