View Campaigns Delivery report
https://api.ocamba.com/v1/hood/reports/campaigns/delivery
https://api.ocamba.com/v1/hood/reports/campaigns/delivery
Campaigns Delivery report enables analysis of critical parameters and essential information
Rate limits:
Burst: 10/s
Steady: 150/m
Name
Descriptionsortstring
Sorts the response by specified field(s) with the option to specify sorting order (ascending by default, add prefix "-" for descending).Examples:
GET /VERSION/hood/RESOURCE_NAME?sort=name → sorts per name, ascending
GET /VERSION/hood/RESOURCE_NAME?sort=-id → sorts per id descending
GET /VERSION/hood/RESOURCE_NAME?sort=id,-name → sorts per id ascending, then name descending
See tips for the list of sortable fields.
Example: sort=-field1,field2
pagestring
The page number indicates which set of items will be returned in the response. The format of request is "page=N,M" where 'N' (required) represents page number and 'M' (optional) is number of items per page.Examples:
N=1, M=20 → returns page 1 with 20 items
N=2, M=20 → returns page 2 with 20 items (items 21-40)
N=3 → returns page 3. The number of objects returned depends on the resource settings.
Example: page=1,10
outstring
Data format output - 'csv' (default) or 'json'.Example: out=json
resolutionstring
Data resoulution, supported values 'hour', 'day'.Example: resolution=hour
fieldsstringrequired
Fields is array of dimensions and measures. You can use dimensions to categorize, segment, and reveal the details in your data. Measures contain numeric, quantitative values that you can measure. At least one measure is required.200 - OK
Name
Descriptionab_test_idinteger
DimensionA unique identifier for the A/B test or multivariate experiment associated with the campaign. This links all related message variations under a single test group for accurate grouping, evaluation, and reporting.
Example: 1002
ab_test_namestring
DimensionA descriptive name for the A/B test or experiment (e.g., "Spring Launch Subject Line Test"). Helps users recognize the purpose of the test and interpret results more easily across reporting tools and dashboards.
Example: Spring Launch Subject Line Test
campaign_idinteger
DimensionUnique identifier for the campaign (e.g., "1002600"). In HoodEngage, a campaign is a fundamental entity that orchestrates audience targeting, creative templates (push, SMS, email, etc.), scheduling rules, and delivery parameters. This ID ties all performance data and analytics back to a specific campaign.
Example: 1002600
campaign_namestring
DimensionHuman-readable name of the campaign (e.g., "Chrismats Sale - Special discount"). Helps users easily identify and manage distinct campaigns within HoodEngage.
Example: Blackfriday Worldwide
channel_typestring
DimensionThe primary channel used for message delivery in HoodEngage. Possible values include:
- push: Push notifications (web or app)
- adex_push: Push notifications routed through Ocamba Adex service
- sms: SMS messages
- email: Email messages
Example: push
Possible values: push | adex_push | sms | email
churnfloat
MeasureThe churn rate, expressed as a percentage (e.g., 5.0 means 5%). It represents the proportion of users who unsubscribed during the campaign’s delivery, calculated relative to the total targeted users.
Example: 1.5
click_ratefloat
MeasurePercentage of delivered messages where at least one link was clicked by the recipient. Applies to channels that support click tracking (e.g., email, push, sms). Calculated as `(clicks / delivered) * 100`.
Example: 12.34
container_idinteger
DimensionUnique identifier assigned by the HoodEngage app for a container resource. A container is an editable resource that centralizes settings for push notifications, analytics, crash reporting, user consent, and various lead-generation features (e.g., newsletter or SMS pop-ups). These changes are applied upon the next user session or SDK run.
Example: 126598752
container_namestring
DimensionThe name given by the user when creating a container.
Example: BBC Network US
deal_idstring
DimensionA unique identifier for the HoodEngage deal associated with campaign (e.g., "1000251"). A deal represents the commercial arrangement or contractual terms under which the campaign operates—such as pricing models, frequency caps, billing rules, or postback configurations.
Example: 1000251
deal_namestring
DimensionA descriptive name for the deal (e.g., "Nike landing page deal"), helping users understand the specific arrangement or financial terms linked to targeted campaign. This may reference shared business agreements, budgeting constraints, or frequency-limiting logic.
Example: Nike landing page deal
deliveredinteger
MeasureTotal number of messages or notifications successfully delivered (sometimes referred to as "woken up", especially in the context of push). "Delivered" signifies how many end users actually received the campaign’s content.
Example: 888248
dsp_partner_idinteger
DimensionThe partner ID for the demand-side partner (DSP). Internally, this references the same partner_id field used by HoodEngage. However, we prefix it with “dsp_” to indicate the partner is acting as the advertiser, agency, or brand sponsoring campaigns to reach targeted audiences. Note that a single partner can function as both DSP and SSP, but this specific field is dedicated to identifying the partner in its demand-side role.
Example: 874214212
dsp_partner_namestring
DimensionThe name of the demand-side partner (e.g., "Nike Europe"). This partner is responsible for supplying the demand—i.e., advertising messages or brand content— in HoodEngage's ecosystem. Used in reporting and dashboards to identify the organization managing the campaign.
Example: Default partner
failedinteger
MeasureTotal number of messages that failed to reach end users—for example, due to invalid contact information, unsubscribes, or provider-level blocks. This metric helps identify delivery issues for further troubleshooting.
Example: 9
impressioninteger
MeasureTotal number of impressions served (particularly relevant for "adex_push"). HoodEngage records how many times the Adex campaign was visually displayed, separate from any auto-initiated notifications or background updates.
Example: 9
message_idinteger
DimensionA unique identifier for a specific message variation used in a campaign—commonly part of an A/B or multivariate test. This ID enables detailed tracking, delivery, and performance analysis per message within a campaign.
Example: 1001
message_namestring
DimensionA human-readable name for the message variation. Used in UIs and reports to help users understand the purpose or content of each test variant, especially in multi-message campaigns.
Example: variant A
open_ratefloat
MeasurePercentage of delivered emails that were opened at least once by recipients. Calculated as `(opens / delivered) * 100`. This metric applies only to the email channel and may be skewed by client-side privacy features.
Example: 55.56
openedinteger
MeasureTotal number of unique times an email message was opened by a recipient. This is tracked via an invisible pixel embedded in the email and may be affected by email client privacy settings (e.g., Apple Mail Privacy Protection).
Example: 5
run_datedateTime
DimensionThe date/time for the event.
Resolution may be at the day or hour level:
- Day-level: "2025-03-04T00:00:00Z"
- Hour-level: "2025-03-04T07:00:00Z"
Example: 2025-03-04T07:00:00Z
sentinteger
MeasureTotal number of messages that successfully reached the channel provider (e.g., FCM/APNs for push, SMS gateways like Twilio or Telesign, or email providers like Mailchimp or SendGrid). This does not guarantee end-user delivery, as failures can still occur after the provider accepts the message.
Example: 9
ssp_partner_idinteger
DimensionThe partner ID for the supply-side partner (SSP). Internally, this also references the same partner_id field used by HoodEngage. We prefix it with "ssp_" to indicate the partner is acting as the publisher, platform, or network that provides user traffic or a subscriber base. A single partner can fill both supply-side and demand-side roles, but this field specifically denotes the supply-side role for campaign distribution.
Example: 68745145
ssp_partner_namestring
DimensionThe name of the supply-side partner (e.g., "CNN East Europe"). This identifies the publisher or provider of traffic or user engagements in HoodEngage’s reporting.
Example: Default partner
total_clickinteger
MeasureTotal number of all clicks resulting from targeted campaign. For push, includes clicks on the notification body or action buttons; for SMS or email, includes link clicks tracked by HoodEngage.
Example: 9
total_userinteger
MeasureThe total number of users targeted by the campaign. HoodEngage calculates this by filtering users and deduplicating various user lists or targeting criteria before sending messages.
Example: 888248
unsubscribedinteger
MeasureThe total count of users who unsubscribed immediately following targeted campaign. This is typically seen with channels such as email or SMS, which directly provide an "unsubscribe" or "opt-out" link tied to the campaign. (Push notifications often have different unsubscribing flows that are not always linked to a specific campaign.)
Example: 5
1 Sortable fields are: run_date, container_id, container_name, campaign_id, campaign_name, deal_id, deal_name, ssp_partner_id, ssp_partner_name, dsp_partner_id, dsp_partner_name, channel_type, message_id, message_name, ab_test_id, ab_test_name, total_user, sent, delivered, unsubscribed, failed, impression, total_click, churn, opened, open_rate, click_rate.
2 Filterable fields are: run_date, container_id, container_name, campaign_id, campaign_name, deal_id, deal_name, ssp_partner_id, ssp_partner_name, dsp_partner_id, dsp_partner_name, channel_type, message_id, message_name, ab_test_id, ab_test_name, total_user, sent, delivered, unsubscribed, failed, impression, total_click, churn, opened, open_rate, click_rate.
3 API provided filling empty entry points in between first and last date/hour. You should set with_fill parameter to true, but just in case the date dimension is requested only. It is in relation with resolution. You should pass day or hour, which defines what type of breakdown you request, default setup displays daily breakdown.
4 To get data by the time in your local time zone, you should set tz query parameter to the specific time zone. See the list of valid time zones here -> https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List.
5 For easier search, Reports API gives you the possibility of using one of the following labels: today, yesterday, last-7-days, last-30-days, last-24-hours, this-month, last-month, current-hour, last-hour, last-48-hours, last-2-days, month-to-date, month-to-yesterday, quarter-to-date.
6 The metrics available for reporting vary depending on the channel type. Each channel has its own set of metrics that are tracked to monitor performance. Below is a breakdown of the metrics by channel type:
- push: total_user, sent, delivered, unsubscribed, failed, total_click, churn, click_rate
- adex: total_user, sent, delivered, failed, impression, total_click
- sms: total_user, sent, delivered, failed, total_click
- email: total_user, sent, delivered, failed, opened, open_rate
- email custom provider: total_user, sent
When querying the Campaigns Delivery Report, ensure you specify the appropriate channel to retrieve the corresponding metrics.
- push: total_user, sent, delivered, unsubscribed, failed, total_click, churn, click_rate
- adex: total_user, sent, delivered, failed, impression, total_click
- sms: total_user, sent, delivered, failed, total_click
- email: total_user, sent, delivered, failed, opened, open_rate
- email custom provider: total_user, sent
When querying the Campaigns Delivery Report, ensure you specify the appropriate channel to retrieve the corresponding metrics.
1 When filtering stat_date, use one of the following formats:
- Single format: YYYY-mm-dd;
Displaying stats for this specific day
- Range format: rf:YYYY-mm-dd,YYYY-mm-dd;
Requires usage of the range operators:
- r - range - The value must be in a specified open range, where both endpoints are excluded.
- rf - range full - The value must be in a specified closed range, where both endpoints are included.
- rl - range left - The value must be in a specified half-open range, where only left or start point is included.
- rr - range right - The value must be in a specified half-open range, where only right or end point is included.
Displaying stats in this specific range.
- Hour range format: rl: YYYY-mm-dd hh:00:00,YYYY-mm-dd hh:00:00
If you exclude this parameter, the default setup displays "today" stats.
- Single format: YYYY-mm-dd;
Displaying stats for this specific day
- Range format: rf:YYYY-mm-dd,YYYY-mm-dd;
Requires usage of the range operators:
- r - range - The value must be in a specified open range, where both endpoints are excluded.
- rf - range full - The value must be in a specified closed range, where both endpoints are included.
- rl - range left - The value must be in a specified half-open range, where only left or start point is included.
- rr - range right - The value must be in a specified half-open range, where only right or end point is included.
Displaying stats in this specific range.
- Hour range format: rl: YYYY-mm-dd hh:00:00,YYYY-mm-dd hh:00:00
If you exclude this parameter, the default setup displays "today" stats.