Unsubscribes
Also known as: Email Unsubscribes, Email Opt-Outs, Opt-Outs, Unsubscribe Count, Unsubscribed
Count of unique subscribers who opt out of marketing email in the period, as recorded by the ESP. Spam complaints and hard bounces are excluded; it is the numerator of unsubscribe rate.
Business Use Case
1️⃣ CRM Marketing sees a campaign's unsubscribes spike over its trailing average and cuts send frequency to that segment.,2️⃣ Marketing pauses an automated flow whose unsubscribes rise after a content or cadence change and reverts the change.,3️⃣ Marketing weighs unsubscribes against email-attributed revenue per campaign when setting the weekly send cap.,4️⃣ Marketing Ops checks one-click unsubscribes reach the suppression list within 2 days, per Gmail and Yahoo sender rules.
Business Criticality
Medium
Journey / Navigation Area
Engagement
Owning Function
Marketing
Scope
User
Formula
COUNT(DISTINCT subscriber_id) of ESP marketing-email unsubscribe events, by unsubscribe timestamp in the reporting periodCalculation Notes
1️⃣ One per subscriber per period: COUNT(DISTINCT subscriber_id); a profile that opts out, rejoins and opts out again counts once.,2️⃣ Includes footer-link, one-click List-Unsubscribe header and preference-center global opt-outs, dated by opt-out time, not send date.,3️⃣ Spam complaints (ISP feedback-loop reports) and hard bounces are suppressions, not unsubscribes; they are reported separately.,4️⃣ Marketing email only: transactional messages (order, shipping, password) are out of scope; SMS and push opt-outs are separate metrics.,5️⃣ Topic-level opt-downs that leave the profile subscribed to other marketing lists are excluded; only loss of email marketing consent counts.,6️⃣ Campaign or flow attribution uses the message ID on the unsubscribe record; preference-center opt-outs without one stay unattributed.,7️⃣ Admin suppressions, CRM-sync imports and GDPR erasures are excluded; only recipient-initiated opt-outs count.
Technical Details
Events
SQL Queries
Google Analytics 4 (BigQuery)
-- ==========================================
-- 1. GOOGLE BIGQUERY SQL
-- ==========================================
DECLARE start_date DATE DEFAULT DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY);
DECLARE end_date DATE DEFAULT DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY);
-- Unique subscribers with a recipient-initiated global email-marketing opt-out, dated by opt-out time
SELECT
COUNT(DISTINCT subscriber_id) AS unsubscribes
FROM `your-project.esp.email_subscription_events`
WHERE DATE(unsubscribed_at) BETWEEN start_date AND end_date
-- Unsubscribes only: spam complaints and hard bounces are separate suppression types
AND event_type = 'unsubscribe'
-- Marketing email only: transactional email, SMS and push are out of scope
AND channel = 'email'
AND message_stream = 'marketing'
-- Footer link, one-click List-Unsubscribe and preference-center opt-outs
AND unsubscribe_method IN ('footer_link', 'list_unsubscribe_one_click', 'preference_center')
-- Loss of all email marketing consent; topic-level opt-downs are excluded
AND consent_scope = 'all_email_marketing'
-- Recipient-initiated only: admin suppressions, CRM-sync imports and GDPR erasures are excluded
AND initiated_by = 'recipient';Adobe Experience Platform (AEP Query Service)
-- ==========================================
-- 2. ADOBE AEP QUERY SERVICE SQL
-- ==========================================
-- Reporting window: last 90 days through yesterday
WITH params AS (
SELECT
CAST(DATE_SUB(CURRENT_DATE, 90) AS DATE) AS start_date,
CAST(DATE_SUB(CURRENT_DATE, 1) AS DATE) AS end_date
)
-- Unique subscribers with a recipient-initiated global email-marketing opt-out, dated by opt-out time
SELECT
COUNT(DISTINCT e.subscriber_id) AS unsubscribes
FROM esp_email_subscription_events e
CROSS JOIN params p
WHERE CAST(e.unsubscribed_at AS DATE) BETWEEN p.start_date AND p.end_date
-- Unsubscribes only: spam complaints and hard bounces are separate suppression types
AND e.event_type = 'unsubscribe'
-- Marketing email only: transactional email, SMS and push are out of scope
AND e.channel = 'email'
AND e.message_stream = 'marketing'
-- Footer link, one-click List-Unsubscribe and preference-center opt-outs
AND e.unsubscribe_method IN ('footer_link', 'list_unsubscribe_one_click', 'preference_center')
-- Loss of all email marketing consent; topic-level opt-downs are excluded
AND e.consent_scope = 'all_email_marketing'
-- Recipient-initiated only: admin suppressions, CRM-sync imports and GDPR erasures are excluded
AND e.initiated_by = 'recipient';Source Data
CRM
Dependencies
Prerequisite: List the dependencies required for this Metric
Events:
Report Attributes
Campaign Flow Unsubscribe Method Email Domain Subscriber Acquisition Source Customer Segment
Recommended Reporting Views
Segment Eligibility
true
Governance
Governance
GitHub
catalog/metrics/unsubscribes.yml