Conversion Rate
Conversion rate measures the percentage of eligible sessions or users that complete a defined conversion action, such as a purchase, lead submission, or signup. It is a core KPI for evaluating how effectively digital experiences turn traffic into business outcomes.
Business Use Case
1️⃣ Monitor conversion rate for key actions in a funnel flow such as Checkout, Purchase, Lead Completion etc., to identify change in conversion trend and fix issues or growth conversation rates by removing friction identified through A/B testing. 2️⃣ Used to monitor funnel health, campaign traffic quality, purchase experience, and revenue opportunity.
Business Criticality
High
Journey / Navigation Area
Digital Analytics, Business Intelligence
Scope
Session
Formula
(Sessions with Conversion Event / Total eligible sessions) * 100Calculation Notes
1️⃣ Parameterized KPI. Define the conversion goal, eligible population, reporting scope, and attribution window before calculation. 2️⃣ Use goal-specific KPI definitions for purchase, signup, lead, cart, checkout, or booking conversions.
Technical Details
Events
| Platform | Event |
|---|---|
| Google Analytics 4 | conversion_event_name // Define conversion specific event such as purchase, signup, lead, add_to_cart, etc. |
| Adobe | conversion_event_name // Define conversion specific event such as purchase, signup, lead, add_to_cart, etc. |
Data Mappings
W3 Data Layer
window.digitalData.event.push({
eventInfo: {
eventName: "conversion_complete",
eventAction: "conversion",
type: "conversion",
timeStamp: new Date().toISOString()
},
attributes: {
conversionGoal: "{{conversion_goal}}", // purchase, signup, lead, add_to_cart, etc.
conversionId: "{{conversion_id}}",
conversionValue: 0,
currency: "USD",
conversionStatus: "complete",
entityScope: "session" // session, user, account, visit, lead
}
});GA4 Data Layer
dataLayer.push({
event: "{{conversion_event_name}}",
conversion: {
conversion_goal: "{{conversion_goal}}", // purchase, signup, lead, add_to_cart, etc.
conversion_id: "{{conversion_id}}",
conversion_value: 0,
currency: "USD"
}
});Adobe Client Data Layer
adobeDataLayer.push({
event: "conversion.complete",
conversion: {
goal: "{{conversion_goal}}", // purchase, signup, lead, add_to_cart, etc.
id: "{{conversion_id}}",
value: 0,
currency: "USD"
}
});XDM Mapping
xdm: {
eventType: "conversion.complete",
_tenant: {
conversion: {
goal: "{{conversion_goal}}", // purchase, signup, lead, add_to_cart, etc.
id: "{{conversion_id}}",
value: 0
}
}
}SQL Queries
Google Analytics 4 (BigQuery)
DECLARE conversion_event_names ARRAY<STRING> DEFAULT ['purchase'];
DECLARE eligibility_event_names ARRAY<STRING> DEFAULT ['session_start'];
WITH event_rows AS (
SELECT
user_pseudo_id,
user_id,
CAST((
SELECT value.int_value
FROM UNNEST(event_params)
WHERE key = 'ga_session_id'
) AS STRING) AS ga_session_id,
event_name
FROM `project.dataset.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20260101' AND '20260131'
),
session_flags AS (
SELECT
user_pseudo_id,
user_id,
ga_session_id,
MAX(CASE WHEN event_name IN UNNEST(eligibility_event_names) THEN 1 ELSE 0 END) AS is_eligible,
MAX(CASE WHEN event_name IN UNNEST(conversion_event_names) THEN 1 ELSE 0 END) AS is_converted
FROM event_rows
WHERE ga_session_id IS NOT NULL
GROUP BY user_pseudo_id, user_id, ga_session_id
)
SELECT
SAFE_DIVIDE(
COUNTIF(is_eligible = 1 AND is_converted = 1),
COUNTIF(is_eligible = 1)
) * 100 AS conversion_rate
FROM session_flags;Adobe Experience Platform (AEP Query Service)
WITH event_rows AS (
SELECT
COALESCE(
identityMap['ECID'][0].id,
identityMap['CRMID'][0].id
) AS entity_id,
eventType,
_tenant.conversion.goal AS conversion_goal,
timestamp
FROM aep_experience_event_dataset
WHERE timestamp >= TIMESTAMP '2026-01-01 00:00:00'
AND timestamp < TIMESTAMP '2026-02-01 00:00:00'
),
entity_flags AS (
SELECT
entity_id,
MAX(CASE
WHEN eventType = 'web.webpagedetails.pageViews'
THEN 1 ELSE 0
END) AS is_eligible,
MAX(CASE
WHEN eventType = 'commerce.purchases'
OR (
eventType = 'conversion.complete'
AND conversion_goal IN ('purchase', 'signup', 'lead')
)
THEN 1 ELSE 0
END) AS is_converted
FROM event_rows
WHERE entity_id IS NOT NULL
GROUP BY entity_id
)
SELECT
SUM(CASE WHEN is_eligible = 1 AND is_converted = 1 THEN 1 ELSE 0 END) * 100.0
/ NULLIF(SUM(CASE WHEN is_eligible = 1 THEN 1 ELSE 0 END), 0) AS conversion_rate
FROM entity_flags;Source Data
Digital Analytics, Business Intelligence
Dependencies
Prerequisite: List the dependencies required for this KPI
Metrics:
Dimensions:
Report Attributes
Day, Page, Product
Recommended Reporting Views
Segment Eligibility
True
Governance
Governance
GitHub
catalog/kpis/conversion-rate.yml