Response
The Broadsign Air service typically responds to a playlist generation request within 30 seconds. If not, the client is free to time out and retry at least 5 minutes later.
The items are an ordered sequence of playlist items and include the following parameters:
Parameter | Type | Description |
startTime | Timestamp |
When this item is expected to start playing. The response always contains UTC times and the timezone is actually specified (Note the "z": at the end of the Consecutive playlist items will have this field omitted. |
duration | Duration | The duration of this item. |
token | bytes | An opaque token representing this unique playlist item. Used in ConfirmPlayback calls. See confirm_playback. |
contentIndex | uint32 | The content to play for this item. The index is a 0-based position within the contents array. |
campaignIndex | uint32 | The campaign from which this item was generated. The index is a 0-based position within the campaigns array. |
frameIndex | uint32 | The frame on which this item was scheduled to play. The index is a 0-based position within the frames array. |
geometryIndex | uint32 | The geometry at which this item should be displayed. The index is a 0-based position within the geometry array. |
The contents are content files referred to by playlist items and include the following parameters:
Parameter | Type | Description |
name | string | The name of the content. |
mimeType | string | The file format defined by the file extension. Example: 'png'. |
uri | string | The URL to the content. |
size | uint64 | The file size in bytes. |
hash | ContentHash |
The hash of this content. Note: Only CRC32 hashes are supported. The payload of CRC32 checksums is the checksum represented in hexadecimal with leading 0's removed, then encoded in base64. For example, a file with a checksum of |
percentVolumeOverride | int32 | Volume should be set to this value during playback. |
adCopyId | string |
The ad copy from which this content was derived. Note: This value is a |
variables | map<string, string> | Custom variables associated with the ad copy. |
The items are identification information and include the following parameters:
Parameter | Type | Description |
playerId | string |
The player on which this item is scheduled to play. Note: This value is a |
displayUnitId | string |
The display unit on which this item is scheduled to play. Note: This value is a |
displayUnitLatlong | Geolocation | Latitude and Longitude information of the display unit. |
displayUnitAddress | string | Location address of the display unit. |
displayUnitLocationCode | string | Location code (postal, zip, etc) associated with the display unit. |
The items are information about the configured filler content:
Note: Broadsign Air filler is retrieved from the loop policy of the active frames.
Parameter | Type | Description |
duration | Duration | The duration of this item. |
contentIndex | uint32 | The content to play for this item. The index is a 0-based position within the contents array. |
The items are campaign information and include the following parameters:
Parameter | Type | Description |
campaignId | string |
The campaign with which this item is associated. Items with a blank Note: This value is a |
variables | map<string, string> | Custom variables associated with the campaign. Campaign variables with the same key can override content variables. |
The items are frame information and include the following parameters:
Parameter | Type | Description |
frameId | string |
The frame on which this item is scheduled to play. Note: This value is a |
fillerIndices | list<uint32> | Array that contains the indices of contents designated as "filler" for a specific frame. The indices are a 0-based position within the filler array. |
name | string | The name of the frame. |
criteriaIndices | list<uint32> | Array that contains the indices of criteria associated with that frame. The indices are a 0-based position within the criteria array. |
The items are criteria information and include the following parameters:
Parameter | Type | Description |
criteriaId | string |
The criteria associated with a resource. Note: This value is a |
name | string | The name of the criteria. |
The items are geometry referred to by playlist items and include the following parameters:
Parameter | Type | Description |
width | int32 | Width of the frame |
height | int32 | Height of the frame. |
fullscreen | boolean | Whether the content is fullscreen. |
x | int32 | The x-coordinate, in pixels, of the geometry, in relation to the full screen. |
y | int32 | The y-coordinate, in pixels, of the geometry, in relation to the full screen. |
z | int32 |
The z-order of this geometry determines its display priority. Geometries with larger 'z' values are displayed on top of those with smaller values. Note: The value '2147483647' represents the maximum value used to denote content with a 'fullscreen' override. |
{
"items": [
{
"startTime": "2019-06-14T14:17:26.456Z",
"duration": "5s",
"token": "CgphbGV4YW5kcmVjEgNVVEMaDAj22I7oBRCAhLjZASICCAUoAToDCNMBQgMIlRtKAwiSG2IDVVUwcgMI4BE=",
"contentIndex": 0,
"campaignIndex": 0,
"frameIndex": 0,
"geometryIndex": 0
},
{
"duration": "5s",
"token": "CgphbGV4YW5kcmVjEgNVVEMaDAj72I7oBRCAhLjZASICCAUoAToDCNQBQgMInhtKAwiSG2IDVVUwcgMI4BE=",
"contentIndex": 1,
"campaignIndex": 1,
"frameIndex": 0,
"geometryIndex": 0
},
{
"duration": "5s",
"token": "CgphbGV4YW5kcmVjEgNVVEMaDAio2Y7oBRCAhLjZASICCAUoAToDCNMBQgMIlRtKAwiSG2IDVVUwcgMI4BE=",
"contentIndex": 2,
"campaignIndex": 2,
"frameIndex": 0,
"geometryIndex": 0
},
],
"contents": [
{
"name": "Content-0",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.jpg",
"size": "187435",
"hash": {
"type": "CRC32",
"payload": "ODc1ZTlmYg=="
},
"adCopyId": "211"
},
{
"name": "Content-1",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.jpg",
"size": "97227",
"hash": {
"type": "CRC32",
"payload": "ODI0MmZjMjg="
},
"adCopyId": "212"
},
{
"name": "Content-2",
"mimeType": "mp4",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.mp4",
"size": "97434227",
"hash": {
"type": "CRC32",
"payload": "ODI0MmZjMjg="
},
"adCopyId": "2122"
},
{
"name": "FillerContent",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.jpg",
"size": "244768",
"hash": {
"type": "CRC32",
"payload": "ODc1ZTlmYg=="
},
"adCopyId": "2222"
},
],
"identification": {
"playerId": "2272",
"displayUnitId": "3472"
"displayUnitLatlong": {
"latitude": 45.5164,
"longitude": -73.5548
},
"displayUnitAddress": "1100 Robert-Bourassa Montreal"
},
"campaigns": [
{
"campaignId": "19889482"
},
{
"campaignId": "14889444"
},
{
"campaignId": "99932"
}
],
"frames": [
{
"frameId": "19889456",
"fillerIndices": [0],
"name": "center",
"criteriaIndices": [0]
}
],
"geometries": [
{
"width": 1920,
"height": 1080,
"fullscreen": true
}
]
"fillers": [
{
"contentIndex": 3,
"duration": "30s"
}
}
],
"criterias": [
{
"criteriaId": 36890241,
"name": "CriteriaForCenterFrame"
}
]
}
Note: Some “0” values have been included in this example for sake of clarity. Actually, 0 values are omitted in the serialized output and are to be assumed as the default value. The default values of any other type used are also omitted from results ("false" for boolean values and "" for string values). This is done for performance and payload size reasons.
{
"playlists": [
{
"items": [
{
"startTime": "2022-08-29T17:37:56.111Z",
"duration": "3600s",
"token": "CgphbGV4YW5kcmVjEgNVVEMaDAj22I7oBRCAhLjZASICCAUoAToDCNMBQgMIlRtKAwiSG2IDVVUwcgMI4BE=",
"geometryIndex": 1
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGM+q3tWuMCDAzyQoATjCmAFA19gBSNPYAXDSmAE=",
"contentIndex": 1,
"geometryIndex": 1
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGI/6gtauMCDAzyQoATjaAUDX2AFI09gBcNKYAQ==",
"contentIndex": 2,
"geometryIndex": 1,
"frameIndex": 2
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGM/Jp9auMCDAzyQoATitAkDX2AFI09gBcNKYAQ==",
"contentIndex": 3,
"geometryIndex": 1,
"frameIndex": 2
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGI+ZzNauMCDAzyQoATjblwFA19gBSNPYAXDSmAE=",
"geometryIndex": 1,
"frameIndex": 4
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGM/o8NauMCDAzyQoATjCmAFA19gBSNPYAXDSmAE=",
"contentIndex": 1,
"geometryIndex": 1,
"frameIndex": 4
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGI+4ldeuMCDAzyQoATjaAUDX2AFI09gBcNKYAQ==",
"contentIndex": 2,
"geometryIndex": 1,
"frameIndex": 6
}
]
},
{
"items": [
{
"startTime": "2022-08-29T17:37:56.111Z",
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGI/budWuMCDAzyQoATjblwFA19gBSfasdfAXDSmAE=",
"frameIndex": 1
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGM+budWuMCDAzyQoATjblwFA19gBSfasdfAXDSmAE=",
"contentIndex": 1,
"frameIndex": 1
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGI/6gtauMCDAzyQoATjaAUfdsaaAFI09gBcNKYAQ==",
"contentIndex": 2,
"frameIndex": 3
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGM/Jp9auMCDAzyQoATjfusDX2AFI09gBcNKYAQ==",
"contentIndex": 3,
"frameIndex": 3
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGI+ZzNauMCDAzyQoATjblwFA19gBSNPYAXDSmAE=",
"frameIndex": 5
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGM/o8NauMCDAzyQoATjCmAFA19gBSNPYAXDSmAE=",
"contentIndex": 1,
"frameIndex": 5
},
{
"duration": "3600s",
"token": "CgthaXJfcGxheWVyMhIDVVRDGI+4ldeuMCDAzyQoATjaAUDX2AFI09gBcNKYAQ==",
"contentIndex": 2,
"frameIndex": 7
}
]
},
],
"contents": [
{
"name": "Content-0",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.jpg",
"size": "187435",
"hash": {
"type": "CRC32",
"payload": "ODc1ZTlmYg=="
},
"adCopyId": "211"
},
{
"name": "Content-1",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.jpg",
"size": "97227",
"hash": {
"type": "CRC32",
"payload": "ODI0MmZjMjg="
},
"adCopyId": "212"
},
{
"name": "Content-2",
"mimeType": "mp4",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.mp4",
"size": "97434227",
"hash": {
"type": "CRC32",
"payload": "ODI0MmZjMjg="
},
"adCopyId": "2122"
},
{
"name": "FillerContent",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.jpg",
"size": "244768",
"hash": {
"type": "CRC32",
"payload": "ODc1ZTlmYg=="
},
"adCopyId": "2222"
},
{
"name": "FillerContent-LeftScreen",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/11045825-19889464/8e649eb2-4e0a-4727-8d8c-9e6b1fb31f50.jpg",
"size": "244768",
"hash": {
"type": "CRC32",
"payload": "ODc1ZTlmYg=="
},
"adCopyId": "2226"
}
],
"identification": {
"playerId": "2272",
"displayUnitId": "3472"
"displayUnitLatlong": {
"latitude": 45.5164,
"longitude": -73.5548
},
"displayUnitAddress": "1100 Robert-Bourassa Montreal"
},
"campaigns": [
{
"campaignId": "19889482"
},
{
"campaignId": "14889444"
},
{
"campaignId": "99932"
}
],
"frames": [
{
"frameId": "19889456",
"fillerIndices": [0],
"name": "LeftFrame-DayPart1",
"criteriaIndices": [0]
},
{
"frameId": "19889901",
"fillerIndices": [1],
"name": "RightFrame-DayPart1",
"criteriaIndices": [1]
},
{
"frameId": "1489431",
"fillerIndices": [0],
"name": "LeftFrame-DayPart2",
"criteriaIndices": [0]
},
{
"frameId": "18890012",
"fillerIndices": [1],
"name": "RightFrame-DayPart2",
"criteriaIndices": [1]
},
{
"frameId": "12437980",
"fillerIndices": [0],
"name": "LeftFrame-DayPart3",
"criteriaIndices": [2]
},
{
"frameId": "132795",
"fillerIndices": [1],
"name": "RightFrame-DayPart3",
"criteriaIndices": [2]
},
{
"frameId": "89001",
"fillerIndices": [0,1],
"name": "LeftFrame-DayPart4",
"criteriaIndices": [0]
},
{
"frameId": "1988457",
"fillerIndices": [0,1],
"name": "RightFrame-DayPart4",
"criteriaIndices": [1]
}
],
"geometries": [
{
"width": 1920,
"height": 1080,
"fullscreen": true
}
]
"fillers": [
{
"contentIndex": 3,
"duration": "30s"
}
},
{
"contentIndex": 4,
"duration": "60s"
}
}
],
"criterias": [
{
"criteriaId": 36890241,
"name": "CriteriaForLeftFrame"
},
{
"criteriaId": 36890456,
"name": "CriteriaForRightFrame"
},
{
"criteriaId": 36890625,
"name": "AnotherCriteria"
}
]
}
Note: Some “0” values have been included in this example for sake of clarity. Actually, 0 values are omitted in the serialized output and are to be assumed as the default value. The default values of any other type used are also omitted from results ("false" for boolean values and "" for string values). This is done for performance and payload size reasons.