DOI: 10.5281/zenodo.17985617
title: SendGuard900K: Massive Dataset for Metadata-Based Quality Assurance of Email Marketing

description: SendGuard900K: Massive Dataset for Metadata-Based Quality Assurance of Email Marketing

This work was supported in part by the Project ‘‘SendGuard—Improving the Security of Recipients Innovative Tool Based on Machine Learning Technology and Artificial Intelligence to Fight with the Problem of Spam and Phishing in Marketing and Transactional E-Mail Messages" co-financed from the Funds of European Regional Development Fund under Project POIR.01.01.01-00-0202/19-02.

Overview

We introduce SendGuard900K, a large-scale real-world dataset designed to support research on quality assurance, security, and performance analysis of email marketing campaigns using metadata and aggregated behavioral signals.

The dataset originates from the SendGuard project, whose goal is to develop a significantly improved AI-driven service for analyzing email marketing and transactional messages. The project addresses one of the most pressing global challenges in digital communication: ensuring that legitimate, personalized messages reach their recipients effectively in an ecosystem dominated by spam, phishing, and abuse.

SendGuard900K contains rich campaign-level metadata collected from production systems between 2022 and 2024, spanning campaigns created by a large number of independent companies across multiple industries and geographies.

The dataset is designed to enable reproducible research on email quality, deliverability, engagement, and abuse detection—without exposing message content or personally identifiable information.

Files



This dataset includes two CSV files:



SendGuard900K.csv — The main file containing all records in the dataset.

SendGuard900K-preview.csv — A sample of 100 rows extracted from the main file, provided solely for the purpose of enabling Zenodo’s preview functionality.



 

Data summary

The detail technical info about data including columns names, types and inteprpretation is given in the Technical Notes of this record.



Time period: 2022–2024

Granularity: Campaign-level

Scale: ~900,000 email campaigns

Creators: Campaigns generated by a large number (over 4000) of independent companies

Data types: Integer metrics, categorical descriptors, timestamps

Privacy: No personal data, no message bodies, no recipient-level records


Potential Research Use-cases

The following examples illustrate some potential research directions enabled by the dataset; however, they are not exhaustive, and the actual scope of possible analyses and applications can easily extend beyond the cases listed below.

1. Deliverability and Engagement Prediction

Task: Regression or classificationPotential targets:



campaign_unique_opens_count

campaign_unique_clicks_count

derived open rate or click-through rate

time-windowed engagement metrics (e.g. _30, _60, _1440)


2. Phishing Risk Modeling

Task: Classification or risk scoring (regression)Potential targets:



campaign_phishing_count

campaign_complaint_count

campaign_moderation

campaign_moderation_rejected_count


3. Spam and Abuse Detection

Task: Binary or multiclass classificationPotential targets:



campaign_moderation

campaign_moderation_rejected_count

campaign_complaint_count

campaign_phishing_count
description: Content of the dataset

 




Column name
Type
Column description


client_id
int64
ID of the client who created the campaign


client_tag_name
object
Name of a tag assigned to the client (e.g. segment, label), added manually by support team employee. The tag is in Polish. It was noot translated not to lose the raw and original nature of the data.


client_tag_num
int64
Numeric identifier of the client tag


campaign_id
int64
Unique campaign identifier


campaign_test_id
int64
Test ID; campaigns sharing the same ID belong to one test; 0 means no test


campaign_test_part
object
Test phase: part / final; 0 means no test


campaign_test_type
object
Test type: optimizer / A/B topic test / A/B sender_name test


campaign_sent_time
object
Campaign send timestamp


message_content_size
int64
Message content size in bytes


message_images_count
int64
Number of <img> elements in the message


message_embedded_images_count
int64
Number of embedded (CID) images


message_embedded_images_size
int64
Total size of embedded images in bytes


message_embedded_files_count
int64
Number of attached files


message_embedded_files_size
int64
Total size of attached files in bytes


message_links_count
int64
Total number of links in the campaign


message_links_blocked_count
int64
Number of links blocked by security/compliance team


message_personalization_tags_count
int64
Number of personalization tags used in the campaign


message_personalization_tags_in_sender_email_count
int64
Number of personalization tags in sender email address


message_personalization_tags_in_subject_count
int64
Number of personalization tags in the subject line


message_personalization_tags_in_html_body_count
int64
Number of personalization tags in the HTML body


message_personalization_tags_in_text_body_count
int64
Number of personalization tags in the text body


custom_fields_used_in_campaign
int64
Indicator or count of custom fields used in the campaign personalization


campaign_subscribers_count
int64
Number of emails sent in the campaign


campaign_phantom_bounce_count
int64
Number of phantom bounces


campaign_subscribers_blocked_count
int64
Number of blocked recipient addresses


campaign_opens_count
int64
Total number of opens


campaign_unique_opens_count
int64
Number of unique opens


campaign_clicks_count
int64
Total number of clicks


campaign_unique_clicks_count
int64
Number of unique clicks


campaign_soft_bounced_count
int64
Number of soft bounces


campaign_hard_bounced_count
int64
Number of hard bounces


campaign_resigned_count
int64
Number of unsubscribes


campaign_complaint_count
int64
Number of spam complaints


campaign_phishing_count
int64
Number of phishing reported in this campaign (ESP Feedback Loop mechanism)


campaign_moderation_rejected_count
int64
Number of rejections by moderation


campaign_moderation
int64
Whether the campaign was moderated (0/1)


campaign_landing_page
int64
Whether a FreshMail landing page was used (0/1)


campaign_*_count_X
int64
Engineered feature: Performance metrics (opens, clicks, bounces, unsubscribes, complaints) aggregated up to X minutes after send


domain_in_links_min_creation_time
object
Earliest date of registration of domain used in email template


domain_in_links_max_creation_time
object
Latest date of registration of domain used in email template


domain_in_links_avg_creation_time
object
Average date of registration of domain used in email template


domain_in_links_most_used_creation_time
object
Date of registration of domain used most time in email template


domain_in_links_min_creation_time_diff
int64
Time difference between send time and oldest domain registration date in days


domain_in_links_max_creation_time_diff
int64
Time difference between send time and newest domain registration date in days


domain_in_links_avg_creation_time_diff
int64
Average domain age difference relative to send time


domain_in_links_most_used_creation_time_diff
int64
Age difference of the most frequently used domain


registrar_domain_number
int64
Number of unique registered (root) domains, i.e. base domains as defined by the domain registrar (e.g. instagram.com, facebook.com, youtube.com).


domain_number
int64
Number of unique domains used in URLs, counted at the host level and including subdomains (e.g.  youtube.com, www.youtube.com, videos.youtube.com).