Wallboard API - Statistics (2.0)
Proof of Play and display statistics for the Wallboard digital signage platform.
This API provides detailed analytics on content playback, including:
- Play duration and impressions
- Viewer counts and attention metrics
- Click tracking
- Audience measurement data
| Concept | Description |
|---|---|
| Proof of Play | Verifiable record of content display for compliance/billing |
| Resolution | Time granularity: HOURLY, DAILY, WEEKLY, MONTHLY, TOTAL |
| GroupBy | How to aggregate data (by device, content, campaign, etc.) |
| Impressions | Number of times content was displayed |
| Duration | Total playback time in milliseconds |
| Viewer Count | Estimated audience size (requires audience measurement) |
| Viewer Attention | Time viewers actually watched the content |
All time parameters use Unix timestamps in milliseconds.
| Parameter | Description |
|---|---|
from |
Start time (required) |
to |
End time (optional, defaults to now) |
timeZone |
Timezone for grouping (default: UTC) |
Different resolutions have different maximum date ranges:
| Resolution | Max Range (no groupBy) | Max Range (with groupBy) |
|---|---|---|
HOURLY |
31 days | 8 days |
DAILY |
31 days | 31 days |
WEEKLY |
Unlimited | Unlimited |
MONTHLY |
Unlimited | Unlimited |
TOTAL |
Unlimited | Unlimited |
Notes:
- For "all" endpoints (e.g.,
/device/all), HOURLY and DAILY resolutions are not allowed - Using groupBy with HOURLY resolution limits the date range to 8 days maximum
- Exceeding these limits returns a 400 Bad Request error
These metrics require audience measurement hardware/software to be configured:
| Metric | Description |
|---|---|
viewerCount |
Total estimated viewers during playback |
viewerAttention |
Total attention time in milliseconds |
viewerAverageAttention |
Average attention per viewer |
viewerAttentionRatio |
Ratio of actual to potential attention (0-1) |
Overlap Prevention Fields: To prevent double-counting viewers when grouping by different dimensions, additional overlap fields are provided:
| Field | Description |
|---|---|
viewerCountOverlapAsset |
Viewer overlap within same asset |
viewerCountOverlapContent |
Viewer overlap within same content |
viewerCountOverlapCampaign |
Viewer overlap within same campaign |
viewerCountOverlapDevice |
Viewer overlap on same device |
These fields help calculate unique viewers across different aggregation levels.
Get top played contents
Get the most played content items for dashboard display.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> Start time (Unix timestamp in milliseconds) |
| to | integer <int64> End time (Unix timestamp in milliseconds, defaults to now) |
| timeZone | string Default: "UTC" Timezone for grouping |
| limit | integer Default: 5 Number of results |
| search | string WBQL search filter |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get top played campaigns
Get the most played campaigns/channels for dashboard display.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> Start time (Unix timestamp in milliseconds) |
| to | integer <int64> End time (Unix timestamp in milliseconds, defaults to now) |
| timeZone | string Default: "UTC" Timezone for grouping |
| limit | integer Default: 5 Number of results |
| search | string WBQL search filter |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for all devices
Retrieve play statistics aggregated across all devices.
Note: HOURLY and DAILY resolutions are not allowed for all-device queries.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> Start time (Unix timestamp in milliseconds) |
| to | integer <int64> End time (Unix timestamp in milliseconds) |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for grouping |
| timeZone | string Default: "UTC" |
| sort | string Sort field and direction (e.g., "duration,desc") |
| offset | integer |
| limit | integer |
| search | string WBQL search filter |
Responses
Request samples
- cURL
# Get weekly device statistics for the last month curl -X GET \ 'https://{server}/api/v2/proof-of-display/device/all?from=1704067200000&to=1706745600000&resolution=WEEKLY&timeZone=Europe/Budapest' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Export all device statistics as CSV
Export play statistics for all devices as CSV file.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| timeZone | string Default: "UTC" |
| sort | string |
| offset | integer |
| limit | integer |
| search | string |
Responses
Get statistics for a specific device
Retrieve play statistics for a single device.
GroupBy options:
CONTENT- Group by contentCONTENT_PAGE- Group by content page/slideCUSTOM_ASSET- Group by custom assetCAMPAIGN- Group by campaign/channelADVERTISER- Group by advertiserMEDIA_FILE- Group by media fileWIDGET- Group by widget
Minimum role: VIEWER
Authorizations:
path Parameters
| deviceId required | string Device UUID |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (DeviceGroupBy) Enum: "CONTENT" "CONTENT_PAGE" "CUSTOM_ASSET" "CAMPAIGN" "ADVERTISER" "MEDIA_FILE" "WIDGET" How to aggregate the data |
| timeZone | string Default: "UTC" |
Responses
Request samples
- cURL
# Get hourly statistics for a device, grouped by content curl -X GET \ 'https://{server}/api/v2/proof-of-display/device/abc-123-def?from=1704067200000&resolution=HOURLY&groupBy=CONTENT' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Export device statistics as CSV
Export play statistics for a specific device as CSV file.
Minimum role: VIEWER
Authorizations:
path Parameters
| deviceId required | string |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (DeviceGroupBy) Enum: "CONTENT" "CONTENT_PAGE" "CUSTOM_ASSET" "CAMPAIGN" "ADVERTISER" "MEDIA_FILE" "WIDGET" Grouping options for device statistics |
| timeZone | string Default: "UTC" |
Responses
Get statistics for all device groups
Retrieve play statistics aggregated across all device groups.
Note: HOURLY and DAILY resolutions are not allowed for all-device-group queries.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| timeZone | string Default: "UTC" |
| sort | string |
| offset | integer |
| limit | integer |
| search | string |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for specific device group
Retrieve play statistics for a single device group.
GroupBy options:
CONTENT- Group by contentCONTENT_PAGE- Group by content page/slideCAMPAIGN- Group by campaign/channelADVERTISER- Group by advertiserMEDIA_FILE- Group by media fileWIDGET- Group by widget
Minimum role: VIEWER
Authorizations:
path Parameters
| deviceGroupId required | string Device group UUID |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (DeviceGroupGroupBy) Enum: "CONTENT" "CONTENT_PAGE" "CAMPAIGN" "ADVERTISER" "MEDIA_FILE" "WIDGET" Grouping options for device group statistics |
| timeZone | string Default: "UTC" |
Responses
Request samples
- cURL
# Get weekly statistics for a device group, grouped by content curl -X GET \ 'https://{server}/api/v2/proof-of-display/deviceGroup/dg-uuid-123?from=1704067200000&resolution=WEEKLY&groupBy=CONTENT' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for all content
Retrieve play statistics aggregated across all content.
GroupBy options:
CONTENT_PAGE- Group by content page/slideDEVICE- Group by deviceWIDGET- Group by widget
Note: HOURLY and DAILY resolutions are not allowed for all-content queries.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (ContentGroupBy) Enum: "CONTENT_PAGE" "DEVICE" "WIDGET" Grouping options for all-content statistics |
| timeZone | string Default: "UTC" |
| sort | string |
| offset | integer |
| limit | integer |
| search | string |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for specific content
Retrieve play statistics for a single content item.
GroupBy options:
CONTENT_PAGE- Group by page/slideDEVICE- Group by deviceDEVICE_GROUP- Group by device groupCUSTOM_ASSET- Group by custom assetMEDIA_FILE- Group by media fileWIDGET- Group by widget
Minimum role: VIEWER
Authorizations:
path Parameters
| contentId required | string Content UUID |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (ContentSingleGroupBy) Enum: "CONTENT_PAGE" "DEVICE" "DEVICE_GROUP" "CUSTOM_ASSET" "MEDIA_FILE" "WIDGET" Grouping options for single-content statistics |
| timeZone | string Default: "UTC" |
Responses
Request samples
- cURL
# Get weekly statistics for content, grouped by device curl -X GET \ 'https://{server}/api/v2/proof-of-display/content/content-uuid-123?from=1704067200000&resolution=WEEKLY&groupBy=DEVICE' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for all campaigns
Retrieve play statistics aggregated across all campaigns/channels.
Note: HOURLY and DAILY resolutions are not allowed for all-campaign queries.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| timeZone | string Default: "UTC" |
| sort | string |
| offset | integer |
| limit | integer |
| search | string |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for specific campaign
Retrieve play statistics for a single campaign/channel.
GroupBy options:
CONTENT- Group by contentCONTENT_PAGE- Group by content page/slideMEDIA_FILE- Group by media fileMESSAGE- Group by sub-channel/messageDEVICE- Group by deviceDEVICE_GROUP- Group by device group
Minimum role: VIEWER
Authorizations:
path Parameters
| campaignId required | integer <int64> Campaign/channel ID |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (CampaignGroupBy) Enum: "CONTENT" "CONTENT_PAGE" "MEDIA_FILE" "MESSAGE" "DEVICE" "DEVICE_GROUP" Grouping options for campaign statistics |
| timeZone | string Default: "UTC" |
Responses
Request samples
- cURL
# Get monthly statistics for a campaign, grouped by content curl -X GET \ 'https://{server}/api/v2/proof-of-display/campaign/123?from=1704067200000&resolution=MONTHLY&groupBy=CONTENT' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for all sub-channels
Retrieve play statistics aggregated across all sub-channels/messages.
Note: HOURLY and DAILY resolutions are not allowed for all-message queries.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| timeZone | string Default: "UTC" |
| sort | string |
| offset | integer |
| limit | integer |
| search | string |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for specific sub-channel
Retrieve play statistics for a single sub-channel/message.
GroupBy options:
CONTENT- Group by contentCONTENT_PAGE- Group by content page/slideDEVICE- Group by deviceDEVICE_GROUP- Group by device group
Minimum role: VIEWER
Authorizations:
path Parameters
| messageId required | integer <int64> Sub-channel/message ID |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (MessageGroupBy) Enum: "CONTENT" "CONTENT_PAGE" "DEVICE" "DEVICE_GROUP" Grouping options for message/sub-channel statistics |
| timeZone | string Default: "UTC" |
Responses
Request samples
- cURL
# Get weekly statistics for a sub-channel, grouped by device curl -X GET \ 'https://{server}/api/v2/proof-of-display/message/456?from=1704067200000&resolution=WEEKLY&groupBy=DEVICE' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for all advertisers
Retrieve play statistics aggregated across all advertisers.
Note: HOURLY and DAILY resolutions are not allowed for all-advertiser queries.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| timeZone | string Default: "UTC" |
| sort | string |
| offset | integer |
| limit | integer |
| search | string |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for specific advertiser
Retrieve play statistics for a single advertiser.
GroupBy options:
CONTENT- Group by contentCONTENT_PAGE- Group by content page/slideCAMPAIGN- Group by campaign/channelMESSAGE- Group by sub-channel/messageDEVICE- Group by deviceDEVICE_GROUP- Group by device group
Minimum role: VIEWER
Authorizations:
path Parameters
| advertiserId required | string Advertiser UUID |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (AdvertiserGroupBy) Enum: "CONTENT" "CONTENT_PAGE" "CAMPAIGN" "MESSAGE" "DEVICE" "DEVICE_GROUP" Grouping options for advertiser statistics |
| timeZone | string Default: "UTC" |
Responses
Request samples
- cURL
# Get monthly statistics for an advertiser, grouped by campaign curl -X GET \ 'https://{server}/api/v2/proof-of-display/advertiser/adv-uuid-123?from=1704067200000&resolution=MONTHLY&groupBy=CAMPAIGN' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for all widgets
Retrieve play statistics aggregated across all widgets.
Note: HOURLY and DAILY resolutions are not allowed for all-widget queries.
Minimum role: VIEWER
Authorizations:
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| timeZone | string Default: "UTC" |
| sort | string |
| offset | integer |
| limit | integer |
| search | string |
Responses
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]Get statistics for specific widget
Retrieve play statistics for a single widget.
GroupBy options:
DEVICE- Group by deviceDEVICE_GROUP- Group by device groupCONTENT- Group by content
Minimum role: VIEWER
Authorizations:
path Parameters
| widgetId required | string Widget UUID |
query Parameters
| from required | integer <int64> |
| to | integer <int64> |
| resolution required | string (Resolution) Enum: "HOURLY" "DAILY" "WEEKLY" "MONTHLY" "TOTAL" Time resolution for data aggregation |
| groupBy | string (WidgetGroupBy) Enum: "DEVICE" "DEVICE_GROUP" "CONTENT" Grouping options for widget statistics |
| timeZone | string Default: "UTC" |
Responses
Request samples
- cURL
# Get daily statistics for a widget, grouped by device curl -X GET \ 'https://{server}/api/v2/proof-of-display/widget/widget-uuid-123?from=1704067200000&resolution=DAILY&groupBy=DEVICE' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
[- {
- "time": 0,
- "readableDateTime": "string",
- "year": 0,
- "month": "string",
- "dayOfMonth": 0,
- "hour": 0,
- "dayOfWeek": "string",
- "deviceId": "string",
- "deviceName": "string",
- "deviceGroupId": "string",
- "deviceGroupName": "string",
- "contentId": "string",
- "contentName": "string",
- "contentPreviewPath": "string",
- "assetId": "string",
- "assetName": "string",
- "assetType": "PAGE",
- "mediaType": "string",
- "fileLocation": "string",
- "duration": 0,
- "clickCount": 0,
- "impressionStartCount": 0,
- "impressionEndCount": 0,
- "viewerCount": 0.1,
- "viewerAttention": 0.1,
- "viewerAverageAttention": 0.1,
- "viewerAttentionRatio": 0.1,
- "viewerCountOverlapAsset": 0.1,
- "viewerCountOverlapContent": 0.1,
- "viewerCountOverlapCampaign": 0.1,
- "viewerCountOverlapDevice": 0.1,
- "advertiserId": "string",
- "advertiserName": "string",
- "advertiserBalanceChargeAmount": 0,
- "campaignId": 0,
- "campaignName": "string",
- "campaignType": "string",
- "campaignAdvertiserName": "string",
- "messageId": 0,
- "messageName": "string",
- "messageType": "string",
- "messageAdvertiserName": "string"
}
]