Ereignistypen: Inhalte, Programme, Geräte, Apps
Die abonnierbaren Ereignistypen aus Medien, Szenen, Programmen, Marktplatz, Flotte, App-Laufzeit, Wiedergabe, Auswertung und Werbung, dazu die Typen der Plattform, die nie ankommen.
16 Minuten LesezeitWebhooksStand: 25.10.2026
Auf dieser Seite
Bevor Sie loslegen
- Für wen
- Wer die Ereignisse eines Endpunkts wählt oder den Rumpf einer Zustellung liest.
- Voraussetzung
- keine zum Lesen, zum Abonnieren ein Endpunkt unter Einstellungen › Organisation › Webhooks.
Die abonnierbaren Ereignistypen aus Medien, Szenen, Programmen, Marktplatz, Flotte, App-Laufzeit, Wiedergabe, Auswertung und Werbung — die Ereignisse, mit denen die meisten Anbindungen beginnen.
So lesen Sie die Tabellen
- Ereignistyp ist die Zeichenkette, die Sie beim Endpunkt abonnieren. Sie kommt bei jeder Zustellung in der Kopfzeile
X-Event-Typean. Statt einzelner Typen dürfen Sie auch einen ganzen Bereich abonnieren (composition.*) oder mit*alles. Mehr Formen gibt es nicht, und alles andere weist der Server ab, siehe Den Ereigniskatalog über die API abrufen. - Nutzlast-Kern nennt zwei bis vier der wichtigsten Felder, die im Rumpf der Zustellung stehen. Es ist ein Auszug. Die vollständige Form bestimmt der jeweilige Bereich, und sie kann weitere Felder tragen. Zeitpunkt, Ereigniskennung und Auslöser reisen nicht im Rumpf.
- Wann es entsteht ist ein Halbsatz zur Einordnung, keine Aussage über Häufigkeit.
Das Portal bietet unter Abonnierte Ereignisse genau die Typen dieser Seite und der Seite Ereignistypen: Organisation, Konten, Abrechnung zur Auswahl — dieselbe Liste, die GET /v1/webhooks/event-types liefert. Alles andere lässt sich nicht abonnieren, das Anlegen eines Endpunkts weist es ab. Welche Typen das sind, steht unter Was nie ankommt. Zugestellt wird nur, was im Kontext Ihrer Organisation entsteht.
In den Feldern bezeichnet playerId ein Display (Kennung ply_…) und deviceId das Gerät, an dem es hängt.
Die Ereignistypen
Medien
Dateien vom Upload bis zur fertigen Aufbereitung, Ordner und automatische Sammlungen. asset.ready schließt die Aufbereitung der Varianten ab, asset.deleted stößt die Prüfung der Szenen an, die die Datei nutzen.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
media-library.asset.upload-initiated |
assetId, sha256, sizeBytes, mimeType |
Ein Upload wurde begonnen. |
media-library.asset.upload-aborted |
assetId, abortedById |
Ein Upload wurde abgebrochen. |
media-library.asset.uploaded |
assetId, sha256, sizeBytes, deduplicated |
Die Datei ist vollständig, und deduplicated sagt, ob sie schon vorhanden war. |
media-library.asset.processing-started |
assetId, tenantId |
Die Aufbereitung der Datei hat begonnen. |
media-library.asset.ready |
assetId, variantKinds |
Alle Varianten sind erzeugt, und die Datei ist einsatzbereit. |
media-library.asset.processing-failed |
assetId, reason |
Die Aufbereitung ist gescheitert. |
media-library.asset.updated |
assetId, updatedById, changedFields |
Angaben zu einer Datei wurden geändert. |
media-library.asset.deleted |
assetId, deletedById |
Eine Datei wurde gelöscht. Szenen, die sie nutzen, werden geprüft. |
media-library.asset.restored |
assetId, restoredById |
Eine gelöschte Datei wurde wiederhergestellt. |
media-library.folder.created |
folderId, path, createdById |
Ein Ordner wurde angelegt. |
media-library.folder.moved |
folderId, oldPath, newPath, affectedDescendants |
Ein Ordner wurde verschoben. |
media-library.folder.deleted |
folderId, path, cascadeAssetCount |
Ein Ordner wurde gelöscht, cascadeAssetCount zählt die mitgelöschten Dateien. |
media-library.tag.assigned |
assetId, tags, assignedById |
Schlagwörter wurden zugewiesen. |
media-library.smart-bucket.created |
smartBucketId, name, createdById |
Eine automatische Sammlung wurde angelegt. |
Szenen und Vorlagen
Szenen, ihre Versionen und Layout-Vorlagen. scene-version.created ist der Auslöser, an dem Wiedergabe und Programme nachziehen.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
composition.scene.created |
sceneId, tenantId, createdById |
Eine Szene wurde angelegt. |
composition.scene.updated |
sceneId, version, updatedById |
Eine Szene wurde bearbeitet (jede Änderung). |
composition.scene.published |
sceneId, sceneVersionId, versionNumber, contentHash |
Eine Szene wurde veröffentlicht, contentHash kennzeichnet den Stand. |
composition.scene.archived |
sceneId, archivedById, reason |
Eine Szene wurde archiviert. |
composition.scene.restored |
sceneId, restoredById |
Eine archivierte Szene wurde zurückgeholt. |
composition.scene.deleted |
sceneId, deletedById |
Eine Szene wurde gelöscht. |
composition.scene-version.created |
sceneVersionId, versionNumber, contentHash, assetIds |
Eine neue Version einer Szene ist entstanden, assetIds nennt die verwendeten Dateien. |
composition.layout-template.created |
layoutTemplateId, createdById |
Eine Layout-Vorlage wurde angelegt. |
composition.layout-template.updated |
layoutTemplateId, updatedById |
Eine Layout-Vorlage wurde geändert. |
composition.layout-template.deleted |
layoutTemplateId, deletedById |
Eine Layout-Vorlage wurde gelöscht. |
composition.integrity-issue.detected |
issueId, sceneId, type, severity |
Ein Problem in einer Szene wurde erkannt, etwa eine fehlende Datei. |
composition.integrity-issue.resolved |
issueId, sceneId, resolution |
Ein erkanntes Problem wurde behoben. |
Playlisten und Programme
Playlisten, Programme, die Zuweisung an Displays und die Planfassungen. schedule-item.changed und player-program.changed sind bewusst je ein Sammel-Ereignis mit action-Feld. timeline.invalidated nennt in reason den Anlass: timeline-invalidated oder media-source-changed (die Medien-Auswahl einer automatischen Playlist hat sich verschoben). plan-revision.recorded hält den Plan eines Displays für die nächsten 48 Stunden fest. Aus ihm rechnen Auswertung und Werbung die Planzeit und das Soll kommender Stunden.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
scheduling.playlist.created |
playlistId, itemCount, assetIds, createdById |
Eine Playlist wurde angelegt. |
scheduling.playlist.updated |
playlistId, version, assetIds, updatedById |
Eine Playlist wurde geändert, assetIds nennt die enthaltenen Dateien. |
scheduling.playlist.deleted |
playlistId, deletedById |
Eine Playlist wurde gelöscht. |
scheduling.schedule.created |
scheduleId, tenantId, createdById |
Ein Programm wurde angelegt. |
scheduling.schedule.updated |
scheduleId, version, changedFields, updatedById |
Ein Programm wurde geändert. |
scheduling.schedule.deleted |
scheduleId, deletedById |
Ein Programm wurde gelöscht. |
scheduling.schedule-item.changed |
scheduleId, itemId, action (created/updated/deleted) |
Ein Eintrag eines Programms wurde angelegt, geändert oder gelöscht — ein Sammel-Ereignis mit action. |
scheduling.player-program.changed |
playerId, action (assigned/cleared/override-set/override-cleared) |
Die Zuweisung an einem Display hat sich geändert — ein Sammel-Ereignis mit action. |
scheduling.timeline.invalidated |
tenantId, affectedPlayerIds, reason |
Die Zeitleisten der genannten Displays werden neu berechnet, reason nennt den Anlass. |
scheduling.plan-revision.recorded |
playerId, revisionId, effectiveFrom |
Für ein Display gilt ab effectiveFrom eine neue Planfassung. Sie entsteht, wenn eine Änderung seinen Plan bewegt, und spätestens, wenn die vorige Fassung weniger als einen Tag vorausreicht. Eine Änderung, die den Plan nicht bewegt, löst keine aus. |
Marktplatz: installierte Apps
Apps aus Sicht Ihrer Organisation: Installation, Aktualisierung, Zustimmung und Ablehnung, die Bitten an die Inhaber, die Umstellung am Ende einer Auslauffrist, die Deinstallation und die Löschung der App-Daten danach.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
marketplace.app.installed |
grantId, appId, version, acceptedById |
Eine App wurde installiert. |
marketplace.app.install-requested |
appId, version, requestedById, message |
Ein Manager bittet die Inhaber, eine App zu installieren. |
marketplace.app.upgraded |
grantId, appId, oldVersion, newVersion |
Eine installierte App wurde auf eine neue Version gehoben: still, nach Ihrer Zustimmung oder am Ende einer Auslauffrist. |
marketplace.app.pending-reacceptance |
grantId, appId, newManifestHash, addedPermissionKeys |
Eine neue Version verlangt neue Rechte, Zugriffe oder Bedingungen, oder die installierte Version wird ausgemustert, und die Zustimmung steht aus. |
marketplace.app.update-decision-requested |
appId, fromVersion, toVersion, requestedById, message |
Ein Manager bittet die Inhaber, über das wartende Update einer App zu entscheiden. |
marketplace.app.reaccepted |
grantId, appId, manifestHash, acceptedById |
Ein Update, das auf Zustimmung wartete, wurde angenommen. |
marketplace.app.update-declined |
grantId, appId, installedVersion, declinedVersion |
Ein Update wurde abgelehnt. Die App bleibt auf installedVersion, bis eine höhere Version als declinedVersion erscheint. |
marketplace.app.update-withdrawn |
grantId, appId, installedVersion, withdrawnVersion |
Die Version, auf deren Zustimmung die App wartete, wurde zurückgenommen. Die App arbeitet wieder auf installedVersion. |
marketplace.app.release-switched |
grantId, appId, fromVersion, toVersion |
Die Auslauffrist der installierten Version ist abgelaufen, und die App läuft mit ihren Szenen auf toVersion. |
marketplace.app.uninstalled |
grantId, appId, uninstalledById |
Eine App wurde deinstalliert. |
marketplace.app.data-deletion-scheduled |
appId, requestedById, dueAt, total |
Die Daten einer deinstallierten App werden nach Ablauf der Frist dueAt endgültig gelöscht. Bis dahin lässt sich die Löschung abbrechen. |
marketplace.app.data-deletion-cancelled |
appId, cancelledById |
Die Löschung der App-Daten wurde abgebrochen oder die App erneut installiert. Die Daten bleiben erhalten. |
marketplace.app.data-purged |
appId, purgedAt, resources, total |
Die Daten einer deinstallierten App wurden nach Ablauf der Frist endgültig gelöscht. |
marketplace.acceptance-record.created |
recordId, grantId, appId, manifestHash |
Eine Zustimmung zu den Rechten einer App wurde festgehalten. |
Flotte: Geräte, Displays, Standorte, Leinwände
Geräte, Displays, Befehle, Schlagwörter, Leinwände, Standorte und Systemaktualisierungen. Es gibt kein Ereignis je Lebenszeichen — player.status-changed ist die Spur für online und offline. Die display-group.*-Ereignisse sind die Leinwände, ihr memberPlayerIds nennt die betroffenen Displays. Die ota-*-Ereignisse tragen die Geräte-Kennung (deviceId), weil ein Systemstand am Gerät hängt, nicht am einzelnen Display.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
fleet.device.claimed |
deviceId, tenantId, claimedByUserId, playerIds |
Ein Gerät wurde der Organisation zugeordnet, playerIds nennt die angelegten Displays. |
fleet.device.capabilities-changed |
deviceId, playerIds, capabilities |
Die gemeldeten Fähigkeiten eines Geräts haben sich geändert. |
fleet.device.channel-changed |
deviceId, channel, previousChannel, changedById |
Der Kanal eines Geräts wurde gesetzt, und es folgt ab jetzt den Freigaben des neuen Kanals. |
fleet.player.created |
playerId, deviceId, screenIndex |
Ein Display wurde angelegt. |
fleet.player.updated |
playerId, changedFields |
Angaben zu einem Display wurden geändert. |
fleet.player.config-updated |
playerId, changedConfig |
Die Konfiguration eines Displays wurde geändert. |
fleet.player.tagged |
playerId, tagId |
Ein Display bekam ein Schlagwort. |
fleet.player.untagged |
playerId, tagId |
Ein Schlagwort wurde vom Display entfernt. |
fleet.player.status-changed |
playerId, from, to |
Der Status eines Displays hat sich geändert (from → to) — die Spur für online und offline. |
fleet.player.deleted |
playerId, deletedById |
Ein Display wurde entfernt, und sein Platz ist frei. |
fleet.player.decommissioned |
playerId, decommissionedById |
Ein Display ging mit seinem Gerät: Das Gerät hat die Organisation verlassen oder wurde gesperrt, oder die Organisation wurde gelöscht. |
fleet.player.screenshot-recorded |
screenshotId, playerId, screenIndex, capturedAt, trigger, repeated |
Ein Display hat ein Bild seines Bildschirms gemeldet. repeated heißt: Es glich dem vorigen, und nur dessen „zuletzt gesehen“ ist gewachsen. |
fleet.command.issued |
commandId, playerId, kind |
Ein Befehl an ein Display wurde abgesetzt. |
fleet.command.status-changed |
commandId, deviceId, kind, status |
Der Zustand eines Befehls hat sich geändert (Maschinenverkehr). |
fleet.command.completed |
commandId, playerId, durationMs |
Ein Befehl wurde ausgeführt (Maschinenverkehr). |
fleet.command.failed |
commandId, playerId, error |
Ein Befehl ist gescheitert. |
fleet.command.timeout |
commandId, playerId, kind |
Ein Befehl blieb ohne Antwort. |
fleet.player-tag.created |
tagId, tenantId, name |
Ein Schlagwort für Displays wurde angelegt. |
fleet.player-tag.deleted |
playerTagId, deletedById |
Ein Schlagwort für Displays wurde gelöscht. |
fleet.display-group.created |
displayGroupId, name, memberPlayerIds |
Eine Leinwand wurde angelegt, memberPlayerIds nennt ihre Displays. |
fleet.display-group.updated |
displayGroupId, memberPlayerIds, previousMemberPlayerIds |
Die Displays einer Leinwand wurden geändert. |
fleet.display-group.deleted |
displayGroupId, memberPlayerIds, deletedById |
Eine Leinwand wurde gelöscht. |
fleet.location.created |
locationId, tenantId, name |
Ein Standort wurde angelegt. |
fleet.location.updated |
locationId, tenantId, name, changedFields |
Angaben zu einem Standort wurden geändert, changedFields nennt welche. Die zugeordneten Displays bleiben, wo sie sind. |
fleet.location.opening-hours-changed |
locationId, tenantId |
Die Öffnungszeiten eines Standorts wurden geändert: Wochenplan, Sondertermine, Bundesland oder Zeitzone. |
fleet.location.deleted |
locationId, tenantId, deletedById |
Ein Standort wurde gelöscht. Er war leer, an ihm hing kein Display mehr. |
fleet.player.ota-installed |
deviceId, version, slotInstalled, installDurationMs |
Ein Gerät hat eine Systemaktualisierung installiert. |
fleet.player.ota-completed |
deviceId, version, markGoodAt, bootDurationMs |
Ein Gerät läuft nach der Aktualisierung stabil. |
fleet.player.ota-rolled-back |
deviceId, versionAttempted, reason |
Ein Gerät ist auf den vorigen Stand zurückgefallen. |
App-Laufzeit
Datenabrufe und wiederkehrende Jobs installierter Apps. fetch.completed ist der Auslöser, an dem die Wiedergabe neue App-Daten übernimmt.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
app-runtime.fetch.completed |
tenantId, appId, fetchKey, payloadHash |
Ein Datenabruf einer App ist abgeschlossen. |
app-runtime.fetch.failed |
tenantId, appId, fetchKey, error |
Ein Datenabruf einer App ist gescheitert. |
app-runtime.cache.invalidated |
tenantId, appId, fetchKey |
Zwischengespeicherte App-Daten wurden verworfen. |
app-runtime.job.scheduled |
scheduleId, appId, jobKey, cron |
Ein wiederkehrender App-Job wurde eingeplant. |
app-runtime.job.executed |
scheduleId, appId, jobKey, durationMs |
Ein App-Job wurde ausgeführt. |
app-runtime.job.failed |
scheduleId, appId, jobKey, error |
Ein App-Job ist gescheitert. |
Wiedergabe
Der berechnete Wiedergabestand je Display und die Meldungen der Wiedergabe-Software. Protokolliert wird hier nur, was schiefgeht. Die übrigen Ereignisse sind Maschinenverkehr, dessen Menge mit der Zahl der Displays wächst.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
playback.snapshot.recomputed |
playerId, manifestHash, bundleHashes, recomputeReason |
Der Wiedergabestand eines Displays wurde neu berechnet. |
playback.snapshot.bundle-changed |
playerId, bundleKind, newHash, oldHash |
Ein Bestandteil des Wiedergabestands hat sich geändert. |
playback.snapshot.stale-detected |
playerId, validUntil, ageSeconds |
Der Wiedergabestand eines Displays ist veraltet. |
playback.snapshot.partial-failure |
playerId, degradedWidgets |
Teile des Wiedergabestands konnten nicht erzeugt werden, degradedWidgets nennt sie. |
playback.snapshot.playlist-item-skipped |
playerId, skippedItems |
Einträge einer Playlist wurden übersprungen. |
playback.snapshot.recompute-failed |
playerId, recomputeReason, error |
Die Neuberechnung des Wiedergabestands ist gescheitert. |
playback.renderer.diagnostics-ingested |
playerId, errorCount, severityCounts |
Ein Display hat Diagnosedaten geliefert. |
Auswertung
Verdichtete Messwerte, Kennzahlen, Berichte, Nachweise und die Verweise für Werbepartner. analytics.proof.issued erreicht Ihren Endpunkt für jeden Nachweis Ihres Direktgeschäfts: für Abschlüsse und Nachträge aus dem nächtlichen Lauf ebenso wie für einen Zwischenstand, den Ihre Organisation anfordert. Nachweise des Werbenetzes gehören keiner Organisation und erreichen keinen Endpunkt.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
analytics.metric.aggregated |
metric, timeBucket, bucketStart, entryCount |
Messwerte wurden zu einem Zeitfenster verdichtet. |
analytics.engagement-snapshot.recomputed |
tenantId, computedAt |
Die Kennzahlen der Organisation wurden neu berechnet. |
analytics.report.created |
reportId, tenantId, ownerUserId |
Ein Bericht wurde angelegt. |
analytics.report.updated |
reportId, changedFields |
Ein Bericht wurde geändert. |
analytics.report.deleted |
reportId, tenantId |
Ein Bericht wurde gelöscht. |
analytics.report.scheduled-run-triggered |
reportId, nextRunAt |
Ein geplanter Berichtslauf wurde angestoßen. |
analytics.report.generated |
generatedReportId, format, rowCount, trigger, window, expiresAt |
Ein Bericht wurde erzeugt — von Hand, nach Plan oder als einmalige Ausgabe (trigger). window nennt die festen Tage, expiresAt das Ende der Abrufbarkeit. |
analytics.report.generation-failed |
reportId, error |
Die Erzeugung eines Berichts ist gescheitert. |
analytics.retention.archived |
metric, bucketStart, entryCount |
Alte Messwerte wurden archiviert. |
analytics.proof.issued |
proofDocumentId, number, kind, campaignId, period, signed |
Ein Abschluss, Nachtrag oder Zwischenstand einer Buchung liegt als Nachweis mit laufender Nummer vor. signed sagt, ob er signiert ist; seine Dateien nennt GET /v1/analytics/proofs/{proofId}. |
analytics.share-link.created |
shareLinkId, advertiserId, label, expiresAt, createdById |
Ihre Organisation hat einem Werbepartner einen Verweis auf Kampagnenbericht und Nachweise ausgestellt. Den Schlüssel trägt das Ereignis nie. createdById ist null, wenn die Zustellung eines großen Nachweises den Verweis angelegt hat. |
analytics.share-link.revoked |
shareLinkId, advertiserId, label, revokedAt, revokedById |
Ein Verweis für einen Werbepartner wurde widerrufen und öffnet nichts mehr. |
Werbung
Werbepartner, Werbekampagnen mit ihren Buchungen, Motive und ihre Freigabe, die Werbefläche der Displays, das Publikum der Standorte, die Teilnahme am Werbenetz und die Gutschrift über die Werbeerlöse eines Monats. Die Ereignisse sind schmal, den Stand dazu lesen Sie unter /v1/advertising/… nach. Die Ereignisse zu Werbepartnern, Werbekampagnen, Buchungen und Motiven nennen in ownerKind und tenantId, wem die Zeile gehört. Zugestellt werden nur die Zeilen Ihrer Organisation (ownerKind: tenant). Werbepartner, Werbekampagnen, Buchungen und Motive des Werbenetzes tragen keine Organisation und erreichen keinen Endpunkt.
| Ereignistyp | Nutzlast-Kern | Wann es entsteht |
|---|---|---|
advertising.advertiser.created |
advertiserId, ownerKind, tenantId |
Ein Werbepartner wurde angelegt. |
advertising.advertiser.updated |
advertiserId, ownerKind, tenantId |
Name, Marken, Branche, Ansprechpartner oder Notiz eines Werbepartners wurden geändert. |
advertising.advertiser.archived |
advertiserId, ownerKind, tenantId |
Ein Werbepartner wurde archiviert. Er bekommt keine neuen Werbekampagnen, Buchungen und Motive, seine Werbekampagnen und Nachweise bleiben lesbar. Was gebucht ist, läuft weiter. |
advertising.campaign.created |
campaignId, advertiserId, status |
Eine Werbekampagne wurde angelegt, status ist draft oder booked. |
advertising.campaign.updated |
campaignId, advertiserId, status |
Name, Zeitraum, Ziel, Preis oder Notiz einer Werbekampagne wurden geändert. Ein Wechsel des Zustands hat sein eigenes Ereignis. |
advertising.campaign.status-changed |
campaignId, advertiserId, status |
Eine Werbekampagne wurde gebucht, angehalten, fortgesetzt oder beendet. status ist der neue Zustand: booked, paused oder cancelled. |
advertising.booking-line.created |
bookingLineId, campaignId |
Eine Buchung wurde angelegt. |
advertising.booking-line.updated |
bookingLineId, campaignId |
Zeitraum, Tagesteile, Displays, Häufigkeit, Zusage, Motive oder Zustand einer Buchung wurden geändert. Begonnene Stunden behalten ihr Soll. |
advertising.booking-line.deleted |
bookingLineId, campaignId |
Eine Buchung wurde gelöscht. Das geht nur, solange sie noch nichts geliefert haben kann. |
advertising.creative.created |
creativeId, advertiserId, approvalStatus |
Ein Motiv wurde angelegt, auch als Ersatz eines Motivs mit neuer Datei. approvalStatus ist zunächst pending. |
advertising.creative.updated |
creativeId, advertiserId, approvalStatus |
Name, Pflichttext oder Zustand eines Motivs wurden geändert, auch beim Archivieren. Ein neuer Pflichttext an einem freigegebenen Motiv setzt die Freigabe auf pending zurück. |
advertising.creative.approval-decided |
creativeId, advertiserId, approvalStatus |
Über die Freigabe eines Motivs wurde entschieden: approved oder rejected. Nur ein freigegebenes Motiv erreicht ein Display. |
advertising.inventory.updated |
playerId, tenantId |
Die Werbefläche eines Displays wurde geändert: Platzierung, Diagonale, Ausrichtung, Platzierungsfaktor oder die Freigabe für das Werbenetz. |
advertising.audience-profile.updated |
locationId, tenantId |
Das Publikum eines Standorts wurde gepflegt. Die Kontakte seiner Ausspielungen rechnen ab jetzt mit diesen Zahlen. |
advertising.network-participation.changed |
tenantId, enabled |
Ihre Organisation hat die Teilnahme am Werbenetz ein- oder ausgeschaltet oder ihre Bedingungen geändert. enabled ist der neue Stand. |
advertising.revenue-statement.approved |
statementId, month |
Szenera hat die Aufstellung Ihrer Werbeerlöse eines Monats geprüft und freigegeben. Als Nächstes wird die Gutschrift ausgestellt. |
advertising.revenue-statement.issued |
statementId, month, documentNumber, creditCents, grossCents |
Szenera hat Ihnen die Gutschrift über die Werbeerlöse eines Monats ausgestellt, mit einer Nummer der Form WG-2026-0001 und den Beträgen netto (creditCents) und brutto (grossCents). Die Aufstellung des Monats ändert sich danach nicht mehr. |
advertising.revenue-statement.settled |
statementId, month, documentNumber, kind, invoiceNumber, paidOn |
Die Gutschrift ist erledigt: offset verrechnet mit Ihrer Rechnung invoiceNumber, paid ausgezahlt am paidOn. Das jeweils andere Feld ist null. |
Was nie ankommt
Der Katalog unter GET /v1/webhooks/event-types führt 241 der 338 Ereignistypen der Plattform, in 16 Bereichen — genau die Typen dieser Seite und der Seite Ereignistypen: Organisation, Konten, Abrechnung. Die übrigen 97 sind nicht abonnierbar: die Ereignisse der Zustellung selbst und alles, was ohne Bezug zu einer Organisation entsteht. Das Anlegen und Ändern eines Endpunkts weist solche Typen mit 422 WebhookEndpoint.EventUnknown ab, und ein Bereichs-Abo wie ops.* gibt es für diese Bereiche nicht. Das sind:
- Die Ereignisse der Zustellung selbst. Die zwölf Typen unter
notifications.*— In-App-Nachrichten, E-Mail-Versand und die Webhook-Verwaltung (notifications.webhook.endpoint.created,.endpoint.disabled,.webhook.delivered,.failed,.dead) — lösen nie einen Webhook aus, sonst löste jede Zustellung die nächste aus. Die Abschaltung eines Endpunkts sehen Sie im Portal am Status Inaktiv, nicht per Webhook. - Ereignisse des Plattformbetriebs. Die 16 Typen unter
ops.*(Wartungsfenster, Störungen, Systemzustand, Gerätesoftware) entstehen ohne Bezug zu einer Organisation. - Der App-Katalog. Die acht Typen unter
app-catalog.*(Fassungen, Pakete und Status der Apps im Katalog): Eine Fassung wird einmal für die Plattform veröffentlicht, nicht je Organisation. Was daraus bei Ihnen folgt, melden diemarketplace.app.*-Ereignisse. - Geräte, bevor sie einer Organisation gehören, und die Technik der Verbindung.
fleet.pairing.code-issuedundfleet.pairing.code-rotated(Kopplungscodes entstehen vor der Zuordnung),identity.device.unblocked(der Betreiber hebt eine Sperre an einem Gerät auf, das keiner Organisation mehr gehört),device.ota.availableunddevice.software.available(der Anstoß einer Aktualisierung durch den Betreiber) sowie die vier Typen unterrealtime.*(Verbindungen und Lebenszeichen, Dauerverkehr). - Konten und Schlüssel des Betreibers. Die acht Typen unter
identity.operator-user.*und die drei unteridentity.operator-api-key.*, verwaltet in der Betreiber-Oberfläche. - Die Stellgrößen des Werbenetzes.
advertising.network-parameters.changed: Der Betreiber setzt sie für das ganze Netz, sie gehören keiner Organisation. Ein Bereichs-Abo wieadvertising.*schließt sie nicht ein. - Die Plattformschicht. 27 Typen unter
auth.*,permissions.*,outbox.*,audit.*,jobs.*undapps.*(Schlüsselwechsel, Warteschlangen, Änderungsprotokoll, Start der Apps) sowiefeeds.source.updated(der Feed-Katalog gehört der Plattform). Auch die Typen des Änderungsprotokolls gehören dazu:audit.export.requested,audit.export.completedundaudit.pseudonymization.completedsind nicht abonnierbar.
Auch ein Typ aus dem Katalog erreicht Ihren Endpunkt nur, wenn der Vorgang im Kontext Ihrer Organisation entsteht. Vorgänge des Plattformbetriebs (in den Tabellen so vermerkt) und die Zeilen des Werbenetzes tragen keine Organisation. Sie bleiben aus, ohne Fehlversuch und ohne Eintrag im Zustellprotokoll.
Womit Sie anfangen können
Vier Abonnements, mit denen sich die meisten Anbindungen prüfen lassen, weil Sie sie im Portal selbst auslösen: composition.scene.published (eine Szene veröffentlichen), scheduling.playlist.updated (eine Playlist ändern), media-library.asset.ready (eine Datei hochladen) und fleet.player.status-changed (ein Display vom Netz trennen).