Réponse
Le service Broadsign Air répond généralement à une demande de génération de liste de lecture dans les 30 secondes. Dans le cas contraire, le client est libre de se déconnecter et de réessayer au moins 5 minutes plus tard.
Les éléments sont une séquence ordonnée d'éléments de liste de lecture et incluent les paramètres suivants :
| Paramètre | Type | Description |
| startTime | Timestamp |
Quand cet élément devrait commencer à être joué. La réponse contient toujours les heures UTC et le fuseau horaire est réellement spécifié (notez le « z » : à la fin de la valeur Les éléments de liste de lecture consécutifs auront ce champ omis. |
| duration | Duration | La durée de cet article. Exprimée en secondes. |
| token | bytes | Un jeton opaque représentant cet élément de liste de lecture unique. Utilisé dans les appels ConfirmPlayback. Voir confirm_playback. |
| contentIndex | uint32 | Le contenu à jouer pour cet article. L'index est une position basée sur 0 dans le tableau de contenu. |
| campaignIndex | uint32 | La campagne à partir de laquelle cet élément a été généré. L'index est une position basée sur 0 dans le tableau des campagnes. |
| frameIndex | uint32 | Le cadre sur lequel cet élément était prévu pour être diffusé. L'index est une position basée sur 0 dans le tableau des cadres. |
| geometryIndex | uint32 | La géométrie à laquelle cet élément doit être affiché. L'index est une position basée sur 0 dans le tableau de géométrie. |
Le contenu est constitué de fichiers de contenu référencés par des éléments de liste de lecture et comprend les paramètres suivants :
| Paramètre | Type | Description |
| name | string | Le nom du contenu. |
| mimeType | string | Le format de fichier défini par l'extension de fichier. Exemple : 'png'. |
| uri | string | L'URL du contenu. |
| size | uint64 | La taille du fichier en octets. |
| hash | ContentHash |
Le hachage de ce contenu. Note : Seuls les hachages CRC32 sont pris en charge. La charge utile des sommes de contrôle CRC32 est la somme de contrôle représentée en hexadécimal avec les 0 non significatifs supprimés, puis codée en base64. Par exemple, un fichier avec une somme de contrôle de |
| percentVolumeOverride | int32 | Le volume doit être réglé sur cette valeur pendant la lecture. |
| adCopyId | string |
La copie publicitaire à partir de laquelle ce contenu est dérivé. Note : Cette valeur est une |
| variables | map<string, string> | Variables personnalisées associées à la copie publicitaire. |
| dataSynchronizations | list<DataSynchronization> | Données qui doivent être synchronisées pour pouvoir lire ce contenu. |
| htmlPackageParameters | htmlPackageParameters | Informations complémentaires pour le contenu de type « HTML package ». Laissez le paramètre vide pour les autres types de contenu. |
Les éléments sont des informations d'identification et incluent les paramètres suivants :
| Paramètre | Type | Description |
| playerId | string |
Le lecteur sur lequel cet élément doit être diffusé. Note : Cette valeur est une |
| displayUnitId | string |
L'unité d'affichage sur laquelle cet élément est programmé pour être lu. Note : Cette valeur est une |
| displayUnitLatlong | Geolocation | Informations de latitude et de longitude de l'unité d'affichage. |
| displayUnitAddress | string | Adresse de localisation de l'unité d'affichage. |
| displayUnitLocationCode | string | Code d'emplacement (postal, code postal, etc.) associé à l'unité d'affichage. |
| variables | map<string, string> | Variables personnalisées associées au lecteur ou à l'unité d'affichage. |
Les éléments sont des informations sur le contenu de remplissage configuré :
Note : Le remplissage Broadsign Air est récupéré à partir de la politique de boucle des cadres actifs.
| Paramètre | Type | Description |
| duration | Duration | La durée, en secondes, de cet article. |
| contentIndex | uint32 | Le contenu à jouer pour cet article. L'index est une position basée sur 0 dans le tableau de contenu. |
Les éléments sont des informations de campagne et incluent les paramètres suivants :
| Paramètre | Type | Description |
| campaignId | string |
La campagne à laquelle cet article est associé. Les éléments avec une valeur Note : Cette valeur est une |
| variables | map<string, string> | Variables personnalisées associées à la campagne. Les variables de campagne avec la même clé peuvent remplacer les variables de contenu. |
Les éléments sont des informations de cadre et incluent les paramètres suivants :
| Paramètre | Type | Description |
| frameId | string |
Le cadre sur lequel cet élément doit être diffusé. Note : Cette valeur est une |
| fillerIndices | list<uint32> | Tableau contenant les indices des contenus désignés comme « remplissage » pour un cadre spécifique. Les indices sont une position basée sur 0 dans le tableau de remplissage. |
| name | string | Le nom du cadre. |
| criteriaIndices | list<uint32> | Tableau contenant les indices des critères associés avec cadre. Les indices sont une position basée sur 0 dans le tableau des critères. |
Les éléments sont des informations de critères et incluent les paramètres suivants :
| Paramètre | Type | Description |
| criteriaId | string |
Les critères associés à une ressource. Note : Cette valeur est une |
| name | string | Le nom du critère. |
Les éléments sont des éléments géométriques référencés par les éléments de la liste de lecture et incluent les paramètres suivants :
| Paramètre | Type | Description |
| width | int32 | Largeur du cadre |
| height | int32 | Hauteur du cadre. |
| fullscreen | boolean | Si le contenu est en plein écran. |
| x | int32 | La coordonnée x, en pixels, de la géométrie, par rapport au plein écran. |
| y | int32 | La coordonnée y, en pixels, de la géométrie, par rapport au plein écran. |
| z | int32 |
L'ordre z de cette géométrie détermine sa priorité d'affichage. Les géométries avec des valeurs « z » plus grandes sont affichées au-dessus de celles avec des valeurs plus petites. Note : La valeur « 2147483647 » représente la valeur maximale utilisée pour désigner le contenu avec un remplacement « plein écran ». |
Les éléments sont des données de synchronisation référencées par des éléments de liste de lecture. Ces éléments peuvent être configurés par la fonction Monitor Sync. Les éléments de synchronisation des données incluent les paramètres suivants :
| Paramètre | Type | Description |
| from | string |
L'adresse Web du serveur distant à partir duquel récupérer les informations. |
| to | string | Le chemin local sur le système du lecteur où le contenu synchronisé doit être stocké. Le chemin doit être relatif. |
| behavior | Behavior | Copie un fichier distant spécifique sur la machine locale. Un seul fichier ( FILE_SYNCHRONIZATION ) est actuellement pris en charge. La synchronisation des dossiers distants et des manifestes n'est pas prise en charge. |
| expiry | Duration | La copie publicitaire peut être supprimée de la boucle lorsque le flux de données associé devient obsolète. En règle générale, cette option est activée lorsque le choix est fait qu'il est préférable de ne pas afficher de contenu plutôt que du contenu obsolète. La période spécifiée peut s'écouler parce que le serveur distant n'est pas disponible ou que le contenu du flux distant n'a pas changé. Exprimée en secondes. |
| refreshPeriod | Duration | Définit la fréquence à laquelle l'URL distante doit être synchronisée localement, c'est-à-dire la fréquence à laquelle le lecteur doit vérifier l'URL distante pour les nouveaux fichiers. Exprimée en secondes. |
| timeoutPeriod | Duration | Contrôle la durée pendant laquelle le lecteur doit attendre un délai d'expiration du serveur, c'est-à-dire la durée pendant laquelle le lecteur doit attendre avant de mettre fin aux connexions bloquées. Exprimée en secondes. |
Les éléments sont des éléments HTML Package référencés par les éléments de la liste de lecture et incluent les paramètres suivants :
| Paramètre | Type | Description |
| mainHtmlFilePath | string | Le chemin local sur le système du lecteur où le HTML Package doit être stocké. Le chemin doit être relatif. |
{
"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/content/9e6b1fb31f50.jpg",
"size": "187435",
"hash": {
"type": "CRC32",
"payload": "ODc1ZTlmYg=="
},
"adCopyId": "211"
},
{
"name": "Content-1",
"mimeType": "mp4",
"uri": "https://my-storage-url.com/content/9e6b1fb31f51.mp4",
"size": "97434227",
"hash": {
"type": "CRC32",
"payload": "ODI0MmZjMjg="
},
"adCopyId": "212"
},
{
"name": "Content-2",
"mimeType": "x-html-package",
"uri": "https://my-storage-url.com/content/9e6b1fb31f52.x-html-package",
"size": "97227",
"hash": {
"type": "CRC32",
"payload": "ODI0MmZjMjg="
},
"adCopyId": "213",
"dataSynchronizations": [
{
"from": "https://weather.com/data.json",
"to": "sync_data/weather_data.json",
"behavior": "FILE_SYNCHRONIZATION",
"expiry": "480s",
"refreshPeriod": "60s",
"timeoutPeriod": "120s"
}
],
"htmlPackageParameters": {
"mainHtmlFilePath": "assets/index.html"
}
},
{
"name": "FillerContent",
"mimeType": "jpg",
"uri": "https://my-storage-url.com/content/9e6b1fb31f53.jpg",
"size": "244768",
"hash": {
"type": "CRC32",
"payload": "ODc1ZTlmYg=="
},
"adCopyId": "214"
},
],
"identification": {
"playerId": "123",
"displayUnitId": "124",
"displayUnitLatlong": {
"latitude": 45.5164,
"longitude": -73.5548
},
"displayUnitAddress": "1100 Robert-Bourassa Montreal"
},
"campaigns": [
{
"campaignId": "321"
},
{
"campaignId": "322"
},
{
"campaignId": "323"
}
],
"frames": [
{
"frameId": "411",
"fillerIndices": [0],
"name": "center",
"criteriaIndices": [0]
}
],
"geometries": [
{
"width": 1920,
"height": 1080,
"fullscreen": true
}
],
"fillers": [
{
"contentIndex": 3,
"duration": "30s"
}
],
"criterias": [
{
"criteriaId": 511,
"name": "CriteriaForCenterFrame"
}
],
"dataSynchronizations": [
{
"from": "https://source.test.com/data.txt",
"to": "common/data.txt",
"behavior": "FILE_SYNCHRONIZATION",
"expiry": "60s",
"refreshPeriod": "6000s",
"timeoutPeriod": "120s"
}
]
}
Note : Certaines valeurs « 0 » ont été incluses dans cet exemple par souci de clarté. En fait, les valeurs 0 sont omises dans la sortie sérialisée et doivent être considérées comme la valeur par défaut. Les valeurs par défaut de tout autre type utilisé sont également omises des résultats (« false » pour les valeurs booléennes et "" pour les valeurs de chaîne). Ceci est fait pour des raisons de performance et de taille de charge utile.
{
"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": "x-html-package",
"uri": ""https://my-storage-url.com/content/9e6b1fb31f52.x-html-package"",
"size": "97227",
"hash": {
"type": "CRC32",
"payload": "ODI0MmZjMjg="
},
"adCopyId": "2122",
"dataSynchronizations": [
{
"from": "https://weather.com/data.json",
"to": "sync_data/weather_data.json",
"behavior": "FILE_SYNCHRONIZATION",
"expiry": "480s",
"refreshPeriod": "60s",
"timeoutPeriod": "120s"
}
]
"htmlPackageParameters": {
"mainHtmlFilePath": "assets/index.html"
}
},
{
"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"
}
]
"dataSynchronizations": [
{
"from": "https://source.test.com/data.txt",
"to": "common/data.txt",
"behavior": "FILE_SYNCHRONIZATION",
"expiry": "0s",
"refreshPeriod": "6000s",
"timeoutPeriod": "120s"
}
]
}
Note : Certaines valeurs « 0 » ont été incluses dans cet exemple par souci de clarté. En fait, les valeurs 0 sont omises dans la sortie sérialisée et doivent être considérées comme la valeur par défaut. Les valeurs par défaut de tout autre type utilisé sont également omises des résultats (« false » pour les valeurs booléennes et "" pour les valeurs de chaîne). Ceci est fait pour des raisons de performance et de taille de charge utile.
