Metrics
Reach Email logs copious amounts of statistical, real-time data about message processing, message disposition, and campaign performance.
This reporting data is available in the "Insights" page (under the "Developer" / "Channels" / "Email" section) in the app or through the Metrics API.
The Metrics API provides a variety of endpoints enabling you to retrieve a summary of the data, data grouped by a specific qualifier, or data by event type. Within each endpoint, you can also apply various filters to drill down to the data for your specific reporting needs.
Data retention
Metrics API data is retained for 6 months.
Terminology
Definitions for terms found in Metrics API
count_targeted
Messages successfully injected into Reach Email as well as rejected by it
count_injected
Messages injected to or received by Reach Email
count_sent
Messages that Reach Email attempted to deliver, which includes both Deliveries and Bounces
count_accepted
Messages an ISP or other remote domain accepted (less Out-of-Band Bounces)
count_delivered
Messages delivered
count_delivered_first
Messages delivered on the first attempt
count_delivered_subsequent
Messages delivered that required more than one delivery attempt
count_rendered
Total renderings of a message
count_nonprefetched_rendered
count_initial_rendered
Total initial renderings of a message
count_nonprefetched_initial_rendered
count_unique_rendered
Total number of messages that were rendered at least once
count_nonprefetched_unique_rendered
count_unique_initial_rendered
Total number of messages that were initally rendered at least once
count_nonprefetched_unique_initial_rendered
count_unique_confirmed_opened
Total number of messages that were rendered or had at least one link selected
count_nonprefetched_unique_confirmed_opened
count_clicked
Total number of times that links were selected across all messages
count_unique_clicked
Total number of messages which had at least one link selected one or more times
count_bounce
Total number of bounced messages, which includes both In-Band and Out-of-Band bounces
count_hard_bounce
Total number of Bounced messages due to hard bounce classification reasons
count_soft_bounce
Total number of Bounced messages due to soft bounce classification reasons
count_block_bounce
Total number of Bounced messages due to an IP block
count_admin_bounce
Total number of Bounced messages due to admin bounce classification reasons, also includes Rejected
count_undetermined_bounce
Total number of Bounced messages due to undetermined bounce reasons
count_rejected
Messages rejected due to policy or that failed to generate
count_policy_rejection
Messages rejected by Reach Email due to policy
count_generation_failed
Message generation failed for an intended recipient
count_generation_rejection
Messages rejected by Reach Email due to policy
count_inband_bounce
Messages that bounced on delivery attempt during the SMTP session
count_outofband_bounce
Messages that the ISP bounced subsequent to a successful delivery
count_delayed
Total number of delays due to any temporary failure
count_delayed_first
Messages delayed on the first delivery attempt
total_msg_volume
Total size of delivered messages, in bytes (including attachments)
count_spam_complaint
Number of spam complaints received from an ISP
total_delivery_time_first
Total time taken to deliver messages on first attempt (milliseconds)
total_delivery_time_subsequent
Total time taken to delivery messages on subsequent attempts (milliseconds)
count_unsubscribe
Total number of unsubscribes as a result of clicked links and the ISP list unsubscribe feature
count_inbox_panel
count_spam_panel
count_inbox_seed
count_spam_seed
count_inbox_seed_private
count_spam_seed_private
count_inbox_seed_virtual
count_spam_seed_virtual
count_moved_to_inbox
count_moved_to_spam
Note: For a given request, average first attempt delivery latency can be calculated as total_delivery_time_first / count_delivered
. A similar calculation holds for total_delivery_time_subsequent
.
Precision Parameter
When the precision
parameter is specified for aggregate metric requests, the bounds of the time window (from
, to
) are rounded to the nearest time matching the precision.
For example, requesting data between 4:22
to 6:37
would return results within the following time windows:
1min
04:22:00
- 06:36:59
24 hours
5min
04:20:00
- 06:39:59
24 hours
15min
04:15:00
- 06:44:59
48 hours
hour
04:00:00
- 06:59:59
31 days
day
00:00:00
- 23:59:59
No max
Time-series Metrics
When the precision
parameter is specified for the time-series request, it reflects the period of time the data is grouped by.
The same max time window ranges apply for time-series requests as do aggregate requests. Precisions 12hr
, week
, and month
may also be used for time-series requests.
Filters
Simple Filters
Simple query filters can be specified as key-value pairs in the request URI and multiple values can be listed with a delimiter separating them.
For example metrics can be limited to sending domains equal to bird.com
or example.org
with the following query string:?sending_domains=bird.com,example.org
Advanced Filters
The Metrics API allows for more advanced data filtering with multiple conditions, groupings, and comparators via the query_filters
query parameter.
Please note, advanced filters cannot be used in conjunction with simple filters. Simple filters will be ignored if the query_filters
parameter is used.
e.g. in ?domains=mailing.com&query_filters={}
, the domains query parameter will be ignored.
Other query parameters like from
, to
, metrics
, limit
, etc., will be processed as expected.
Groupings Structure
The JSON object consists of a root level "groupings" array containing compare objects. Multiple compare groups are evaluated such that the relationship between them is an AND operation.
Example:
Compare Group
The compare objects have a single logical comparison operator (OR
or AND
) that will be used to compare all of the filter conditions in the group.
Example:
Each filter group is comprised of the filter keys and comparator keywords. Filter keys must be unique within a grouping, but the same filter key can appear in multiple groupings.
Filter Keys
domains
sending_ips
ip_pools
campaigns
subject_campaigns
templates
sending_domains
mailbox_providers
subaccounts
mailbox_provider_regions
Comparator Keywords
eq
- array of exact values to matchlike
- array of substrings to match on; values must be at least 3 characters longnotEq
- array of exact values to NOT matchnotLike
- array of substrings to NOT match on; values must be at least 3 characters long
Put it all together
JSON query object:
Compressed (whitespace and line end characters removed) and URL encoded:
Aggregations
The aggregations endpoints allow you to get high-level summaries of your data grouped by specific quantifiers such as sending domain or template. You can also get specific types of data, such as rejection reason, to better understand your sending.
Use the subaccount
field to get metrics about individual subaccounts or set it to 0 to get only the primary account's data.
Lists
Each of the the following endpoints returns a list of their resources for which we have metrics. These help you get an overview of what metrics are available to you.
Industry Benchmarks
The industry benchmarks endpoints allow you to compare your performance to your industry.
Was this helpful?