Registration Type
Categorises the method, pathway, or account model used when a user completes registration or sign-up. Typical values include email, social login, SSO, phone, invite-only, guest-to-account, free trial, paid account, provider referral, or offline-assisted registration. This dimension is used to compare conversion quality, onboarding performance, and downstream retention by registration pathway.
Business Use Case
Growth and product teams compare conversion rate, activation rate, and 90-day retention for users who registered via email versus social:google versus sso:okta to determine which registration pathways drive the highest quality users and where onboarding friction exists.
Business Criticality
High
Journey / Navigation Area
Digital Analytics
Scope
User
Formula
Derived from the registration submission context using a prioritised mapping of identity method and registration source. Example logic: CASE WHEN sso_provider IS NOT NULL THEN CONCAT('sso:', LOWER(sso_provider)) WHEN social_provider IS NOT NULL THEN CONCAT('social:', LOWER(social_provider)) WHEN phone_verified = TRUE THEN 'phone' WHEN guest_conversion = TRUE THEN 'guest-to-account' WHEN invite_code IS NOT NULL THEN 'invite' WHEN registration_channel = 'offline' THEN 'offline-assisted' ELSE 'email' ENDCalculation Notes
1️⃣ Capture on definitive registration completion event. 2️⃣ Standardise values to controlled taxonomy and lowercase format. 3️⃣ Avoid mixing provider and method unless intentionally designed. 4️⃣ Persist user-scoped property after successful registration; retain event-scoped value for auditability. 5️⃣ Do not use raw email domains or identifiers; align guest-to-account logic with merge rules.
Technical Details
Events
| Platform | Event |
|---|---|
| Google Analytics 4 | registration_start registration_complete |
| Adobe | registration_start registration_complete |
Data Mappings
W3 Data Layer
{
"event": "user_registration",
"registration": {
"type": "email",
"method": "email_password",
"provider": null,
"guestConversion": false,
"inviteCodeApplied": false
}
}GA4 Data Layer
{
"event": "sign_up",
"registration_type": "email",
"registration_method": "email_password",
"registration_provider": null,
"guest_conversion": false,
"invite_code_applied": false
}Adobe Client Data Layer
{
"event": "user_registration",
"xdm": {
"eventType": "web.webinteraction.linkClicks",
"registration": {
"type": "email",
"method": "email_password",
"provider": null,
"guestConversion": false,
"inviteCodeApplied": false
}
},
"data": {
"__adobe": {
"analytics": {
"eVar12": "email"
}
}
}
}XDM Mapping
{
"event": "user_registration",
"xdm": {
"eventType": "web.webinteraction.linkClicks",
"registration": {
"type": "email",
"method": "email_password",
"provider": null,
"guestConversion": false,
"inviteCodeApplied": false
}
},
"data": {
"__adobe": {
"analytics": {
"eVar12": "email"
}
}
}
}SQL Queries
Google Analytics 4 (BigQuery)
SELECT user_pseudo_id, user_id, event_timestamp, CASE WHEN LOWER(COALESCE((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'sso_provider'), '')) <> '' THEN CONCAT('sso:', LOWER((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'sso_provider'))) WHEN LOWER(COALESCE((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'social_provider'), '')) <> '' THEN CONCAT('social:', LOWER((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'social_provider'))) WHEN COALESCE((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'phone_verified'), 0) = 1 THEN 'phone' WHEN COALESCE((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'guest_conversion'), 0) = 1 THEN 'guest-to-account' WHEN (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'invite_code') IS NOT NULL THEN 'invite' WHEN LOWER(COALESCE((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'registration_channel'), '')) = 'offline' THEN 'offline-assisted' ELSE 'email' END AS registration_type FROM `project.dataset.raw_events` WHERE event_name IN ('sign_up', 'complete_registration', 'account_created')Adobe Experience Platform (AEP Query Service)
SELECT identityMap.ECID[0].id AS mcid, eventTimestamp AS event_timestamp, CASE WHEN LOWER(COALESCE(_experience.analytics.customDimensions.eVars.eVar1, '')) <> '' THEN CONCAT('sso:', LOWER(_experience.analytics.customDimensions.eVars.eVar1)) WHEN LOWER(COALESCE(_experience.analytics.customDimensions.eVars.eVar2, '')) <> '' THEN CONCAT('social:', LOWER(_experience.analytics.customDimensions.eVars.eVar2)) WHEN COALESCE(_experience.analytics.customDimensions.eVars.eVar3, FALSE) = TRUE THEN 'phone' WHEN COALESCE(_experience.analytics.customDimensions.eVars.eVar4, FALSE) = TRUE THEN 'guest-to-account' WHEN _experience.analytics.customDimensions.eVars.eVar5 IS NOT NULL THEN 'invite' WHEN LOWER(COALESCE(_experience.analytics.customDimensions.eVars.eVar6, '')) = 'offline' THEN 'offline-assisted' ELSE 'email' END AS registration_type FROM xdmExperienceEvent WHERE eventType IN ('commerce.purchases', 'commerce.registration', 'commerce.accountCreation')Source Data
Digital Analytics, CRM, Identity Provider, Business Intelligence
Dependencies
Prerequisite: List the dependencies required for this Dimension
Events:
Dimensions:
Report Attributes
Dimensions: Registration type, Registration provider, Device category, Source/Medium, Landing page Metrics: Registrations, Registration conversion rate, Activation rate, Revenue per registered user KPIs: Cost per registration, Retention rate
Segment Eligibility
True
Governance
Derived Dimensions
Governance
GitHub
catalog/dimensions/registration-type.yml