API-Referenz

Kampagnen-API

Kampagnen

HTTP-Referenz. Generiert aus dem Backend-Vertrag. Durchsuchen Sie die Endpunkte unten oder laden Sie OpenAPI herunter.

Diese Gruppe hat 10 Operationen, generiert aus api/openapi.yaml. Filtern Sie nach Pfad, Aktion oder Authentifizierung. Jeder Endpunkt listet seine Eingaben auf; klappen Sie ihn auf, um eine Anfragevorlage und die Antwortcodes zu sehen. Die Vorlagen brauchen Ihre eigenen Werte und einen schemagültigen Anfragekörper.

Großgeschriebene Platzhalter durch Ihre Werte ersetzen. Für eine JSON-Anfrage speichern Sie einen Body, der dem Schema in request.json entspricht. Cookie-Beispiele verwenden ein lokales Cookie-Archiv aus einer authentifizierten Sitzung.

Kampagnen

GET/api/campaigns

Kampagnen auflisten

Listet die Kampagnen des Projekts in Rangfolge auf (höchstens 100), in der Reihenfolge, in der die Auflösung sie liest. reserved ist bei jeder Kampagne vorhanden.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) sieht jede Kampagne, mit editable true nur dann, wenn die gesamte Zielgruppe innerhalb seines Bereichs liegt (ein Tag-Blatt und die Wurzelregel für jeden Bildschirm sind es nie; eine all-Regel braucht ein enthaltenes Kind, eine any-Regel jedes Kind) und der Aufrufer ändern darf, was abgespielt wird.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listCampaigns

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns'

Antworten

StatusBedeutungTextkörper und Header
200Die Kampagnen des Projekts.CampaignList (application/json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/campaigns

Kampagne erstellen

Erstellt eine Kampagne: Jeder Bildschirm in ihrer Zielgruppe wechselt zu playlist_id, solange from, until und windows in der Zeitzone des Bildschirms gelten (screenrig.schedule/v1; alle drei weglassen für immer), und wechselt zurück, wenn sie nicht mehr gelten.

Ein Bildschirm ermittelt seine Playlist als seine Übernahme, dann die erste Kampagne, die in der Rangfolge zutrifft (priority, höhere zuerst, dann die zuletzt erstellte), dann seinen Playlist-Zeitplan, dann seine Standard-Playlist. Eine Kampagne gilt nur für einen Bildschirm mit Standard-Playlist; eine mit from, until oder windows braucht die Zeitzone des Bildschirms.

Die Playlist muss existieren und genehmigt sein (playlist_not_approved). Bildschirme wechseln innerhalb einer Minute; GET /api/campaigns/{id}/screens zeigt den Stand jedes Bildschirms. Eine Organisation hat höchstens 100 Kampagnen über alle ihre Projekte (campaign_limit_reached).

Hängt campaign.created an. reserved true reserviert die Kampagne, und nur eine Person, die genehmigen kann, setzt es (reserved_item für einen Agenten, einen Service-Client oder jeden anderen), wobei campaign.reserved_changed angehängt wird.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) erstellt eine Kampagne nur für eine Zielgruppe innerhalb seines Bereichs (Blätter vom Typ folder und screen_id; kein Tag, nicht alle Bildschirme), sonst outside_screen_scope, und nur als Person, die genehmigen kann (approver_required).

Eine Kampagne, deren Zielgruppe einen geschützten Bildschirm erreicht, ist auf jeder Zugriffsstufe eine protected_change-Überprüfung, die eine zweite genehmigende Person entscheidet (202 pending_review). reserved true fällt unter die geschützten Ordner und paused true bei einer neuen Kampagne (einem Entwurf) unter die Änderungskontrolle für Zeitpläne, beide Teil des Enterprise-Plans; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
CampaignWrite
Operations-ID
createCampaign

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 120
playlist_id (erforderlich, Zeichenfolge)minLength: 1
audience (erforderlich, CampaignAudience)

Welche Bildschirme eine Kampagne anspricht: genau eines von all (jede Regel trifft zu), any (mindestens eine trifft zu), tag (der Bildschirm trägt das Tag), screen_id (dieser Bildschirm) oder folder (die Bildschirme in diesem Bildschirmordner und in jedem darin enthaltenen Ordner, GET /api/screen-folders; der Ordner muss existieren).

Regeln verschachteln sich höchstens 3 tief, und eine Zielgruppe hat höchstens 500 Regeln. {"all": []} ist jeder Bildschirm des Projekts; sonst listen all und any mindestens eine Regel auf.

from (optional, string)Muster: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$"
until (optional, string)Später als from. Muster: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$"
windows (optional, array)
monthly (optional, array)
dates (optional, array)
except (optional, array)Zivile Daten, aufsteigend und jeweils einmal gespeichert. Eine Ausnahme entfernt jedes Vorkommen, das an ihrem Datum beginnt, einschließlich überlappender Nachtabschnitte; sie liegt zwischen from und until.
data (optional, PageDataCondition)

Ein card-data-Prädikat, ausgewertet vor der zivilen Zeit. Fehlende oder abgelaufene Daten stimmen nie überein. Die Seite respektiert auch ihre gewöhnlichen Zeitgrenzen. Erfordert die Host-Fähigkeit page.conditions; ältere Hosts erhalten die deaktivierte Seite.

interaction (optional, LevelInteraction)

Die Ebene gilt, solange jemand den Bildschirm nutzt: ab einer Berührung, einem Klick oder einer Taste, bis idle_s Sekunden ohne Eingabe vergehen. Typische Verwendung: eine interaktive Seite über einer Attract-Schleife. idle_s wird gespeichert und zurückgegeben (60, wenn ausgelassen).

covers (optional, string)

Wo die Ebene läuft: die ganze Seite (default, gespeichert fehlend) oder main, die Seite selbst, für eine gewöhnliche Playlist; header, footer oder side, ein über die Seite gezeichneter Streifen, nur für eine Regions-Playlist dieser Region (PlaylistRegionFormat). Eine Regions-Playlist wird mit full oder main abgelehnt, und ein Streifen braucht eine Regions-Playlist, die auf einem anvisierten Display angeordnet ist.

Erlaubt: "full", "main", "header", "footer", "side"

displays (optional, array)Die Ausgänge einer Videowand, auf denen sie spielt; fehlt der Wert, spielt sie auf jedem Ausgang.
start (optional, string)on_time wechselt an der Grenze und unterbricht das aktuelle Element; next_item (Standard, gespeichert als fehlend) wartet, bis es endet. Erlaubt: "next_item", "on_time"
priority (optional, integer)Standard: 0 Minimum: 0 Maximum: 100
paused (optional, boolean)Standard: false
reserved (optional, Boolean)Nur eine Person, die genehmigen kann, reserviert eine Kampagne (sonst reserved_item). default: false
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt.Kampagne (application/json); Header: ETag
400invalid_request, einschließlich einer Zielgruppenregel, eines Fensters oder einer playlist_id, die das Projekt nicht hat.Problem (application/problem+json)
402

feature_not_in_plan — Geschützte Ordner und die Änderungskontrolle für Zeitpläne sind Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan. Eine Kampagne, die eine Playlist auf Display 2 oder höher einer Videowand (displays) festlegt, ist Teil von Plus. Das Problem nennt die Funktion, den Plan des Projekts und required_plan.

Problem (application/problem+json)
409campaign_limit_reached, playlist_not_approved oder idempotency_mismatch.Problem (application/problem+json)
202

Der Schreibvorgang wurde zu einer Überprüfung und wartet auf die Genehmigung einer Person (docs/reviews.md), mit Propose-Zugriff oder auf jeder Zugriffsstufe, wenn er einen Bildschirm in einem geschützten Bildschirmordner erreicht, wo eine zweite genehmigende Person entscheidet (docs/screen-scope.md). Eine Person genehmigt, lehnt ab oder fordert Änderungen im Dashboard unter review.url an.

Eine Wiederholung mit demselben Idempotency-Key liefert denselben Body.

ReviewPending (application/json)
403

outside_screen_scope oder approver_required wie bei ScreenScopePlays oder reserved_item - eine reservierte Kampagne wird nur von einer Person geändert, pausiert, gelöscht oder auf nicht reserviert gesetzt, die Überprüfungen genehmigen kann, nie von einem Agenten oder Service-Client (docs/screen-scope.md).

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/campaigns/preview

Vorschau der Kampagne

Was ein Schreibvorgang an einer Kampagne ändern würde, ohne ihn auszuführen. Mit id ist body der PATCH-Body dieser Kampagne; ohne id ist er der POST-Body einer neuen. Der Body wird so geprüft, wie der Schreibvorgang ihn prüft (eine Zielgruppenregel, ein Zeitfenster, eine nicht genehmigte Playlist, ein Bildschirmordner, den das Projekt nicht hat).

Die Antwort listet die Bildschirme auf, die die Kampagne auf ihrem Stack gewinnen würden, und die, die sie verlieren würden (count und die ersten 500 Bildschirm-IDs), sowie den Zeitplankalender der Bildschirme der alten und der neuen Zielgruppe, wie er ist (before) und wie er wäre (after), von from bis to (Standard: eine Woche ab jetzt; höchstens 93 Tage), gruppiert, wie GET /api/schedule/calendar gruppiert.

Eine pausierte Kampagne liegt auf keinem Stack, daher kommt beim Veröffentlichen einer solchen ihre Zielgruppe hinzu; eine Änderung, bei der die Kampagne auf dem Stack eines Bildschirms bleibt, lässt nichts hinzukommen oder wegfallen und erscheint in den Kalendern. Lesezugriff: Es wird nichts geschrieben.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
CampaignPreviewRequest
Operations-ID
previewCampaign

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.

Anfrageinhalt-Felder

FeldBeschreibung
id (optional, Zeichenfolge)Die Kampagne, auf der ein PATCH-Body in der Vorschau gezeigt wird; auslassen, um eine Erstellung in der Vorschau zu zeigen.
body (erforderlich, Objekt)Ein CampaignPatch mit id, ein CampaignWrite ohne.
from (optional, string)Beginn der Kalender; Standard ist jetzt. format: "date-time"
to (optional, Zeichenfolge)Ende der Kalender; Standard ist eine Woche nach from, höchstens 93 Tage danach. format: "date-time"
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns/preview'

Antworten

StatusBedeutungTextkörper und Header
200Die Vorschau.SchedulePreview (application/json)
400

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
404

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
409

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
GET/api/campaigns/{id}

Kampagne abrufen

Eine Kampagne. reserved ist immer vorhanden; editable ist bei einem auf Bildschirme beschränkten Aufrufer vorhanden (siehe listCampaigns).

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
getCampaign

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
200Eine Kampagne.Kampagne (application/json); Header: ETag
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
PATCH/api/campaigns/{id}

Kampagne aktualisieren

Ändert die Mitglieder, die der Body setzt; null löscht from, until oder windows. paused true stoppt die Kampagne auf jedem Bildschirm, und false setzt sie fort. Eine pausierte Kampagne ist ein Entwurf: Sie liegt auf dem Stack keines Bildschirms, und ein Schreibvorgang, der sie pausiert lässt, löst keinen Bildschirm neu auf.

Das Veröffentlichen für einen Test ist dieser PATCH mit paused false und einer Zielgruppe, die ein Testordner oder einige Bildschirme ist; POST /api/campaigns/{id}/promote kopiert diese Zielgruppe dann auf die echte. Jeder Bildschirm der alten und der neuen Zielgruppe wird innerhalb einer Minute neu aufgelöst. Fügt campaign.updated hinzu. If-Match schützt die Revision.

Jeder Schreibvorgang wird im Verlauf der Kampagne gespeichert (GET /api/campaigns/{id}/revisions). campaign.updated. If-Match schützt die Revision. reserved setzt oder löscht das Flag reserved (eine reservierte Kampagne ändert, pausiert oder hebt nur eine Person auf, die genehmigen kann: sonst reserved_item); ein Wechsel fügt campaign.reserved_changed hinzu.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) ändert eine Kampagne nur, wenn ihre gespeicherte und die neue Zielgruppe innerhalb seines Bereichs liegen (outside_screen_scope; sonst ist sie für ihn schreibgeschützt).

Eine Kampagne, die einen geschützten Bildschirm erreicht, ist eine protected_change-Überprüfung, die eine zweite genehmigende Person entscheidet (202 pending_review). reserved true bei einer Kampagne, die nicht reserviert ist, fällt unter die geschützten Ordner, die der Enterprise-Plan enthält; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt.

Das Pausieren oder Fortsetzen einer Kampagne sowie das Bearbeiten einer reservierten Kampagne und das Aufheben ihrer Reservierung sind in jedem Plan offen.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
CampaignPatch
Operations-ID
updateCampaign

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.

Anfrageinhalt-Felder

FeldBeschreibung
Name (optional, Zeichenkette)minLength: 1 maxLength: 120
playlist_id (optional, Zeichenfolge)minLength: 1
audience (optional, CampaignAudience)

Welche Bildschirme eine Kampagne anspricht: genau eines von all (jede Regel trifft zu), any (mindestens eine trifft zu), tag (der Bildschirm trägt das Tag), screen_id (dieser Bildschirm) oder folder (die Bildschirme in diesem Bildschirmordner und in jedem darin enthaltenen Ordner, GET /api/screen-folders; der Ordner muss existieren).

Regeln verschachteln sich höchstens 3 tief, und eine Zielgruppe hat höchstens 500 Regeln. {"all": []} ist jeder Bildschirm des Projekts; sonst listen all und any mindestens eine Regel auf.

from (optional, inline)null leert es.
bis (optional, inline)null leert es.
windows (optional, inline)null leert sie.
monthly (optional, inline)null leert sie.
dates (optional, inline)null leert sie.
except (optional, inline)null leert sie.
data (optional, inline)null leert es.
interaction (optional, inline)null leert es.
covers (optional, inline)null ist die ganze Seite. header, footer und side brauchen eine Regions-Playlist dieser Region (PlaylistRegionFormat).
displays (optional, inline)null spielt auf jedem Ausgang.
start (optional, inline)null entspricht next_item.
priority (optional, integer)Minimum: 0 Maximum: 100
paused (optional, boolean)
reserved (optional, Boolean)Nur eine Person, die genehmigen kann, reserviert oder gibt eine Kampagne frei (sonst reserved_item).
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
200Die aktualisierte Kampagne.Kampagne (application/json); Header: ETag
402

feature_not_in_plan — Geschützte Ordner sind Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan. Das Setzen von displays, die von denen der Kampagne selbst abweichen, ist Teil von Plus; null hebt es in jedem Plan auf. Das Problem nennt die Funktion, den Plan des Projekts und required_plan.

Problem (application/problem+json)
409playlist_not_approved oder idempotency_mismatch.Problem (application/problem+json)
412revision_conflict.Problem (application/problem+json)
202

Der Schreibvorgang wurde zu einer Überprüfung und wartet auf die Genehmigung einer Person (docs/reviews.md), mit Propose-Zugriff oder auf jeder Zugriffsstufe, wenn er einen Bildschirm in einem geschützten Bildschirmordner erreicht, wo eine zweite genehmigende Person entscheidet (docs/screen-scope.md). Eine Person genehmigt, lehnt ab oder fordert Änderungen im Dashboard unter review.url an.

Eine Wiederholung mit demselben Idempotency-Key liefert denselben Body.

ReviewPending (application/json)
403

outside_screen_scope oder approver_required wie bei ScreenScopePlays oder reserved_item - eine reservierte Kampagne wird nur von einer Person geändert, pausiert, gelöscht oder auf nicht reserviert gesetzt, die Überprüfungen genehmigen kann, nie von einem Agenten oder Service-Client (docs/screen-scope.md).

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
LÖSCHEN/api/campaigns/{id}

Kampagne löschen

Löscht die Kampagne und ihren Revisionsverlauf. Jeder Bildschirm, der sie zeigt, kehrt innerhalb einer Minute zu dem zurück, was er ohne sie zeigen würde. Fügt campaign.deleted hinzu. If-Match schützt die Revision. Eine reservierte Kampagne löscht nur eine Person, die genehmigen kann (reserved_item).

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) löscht eine Kampagne nur, wenn ihre Zielgruppe innerhalb seines Bereichs liegt (outside_screen_scope). Eine Kampagne, die einen geschützten Bildschirm erreicht, ist eine protected_change-Überprüfung, die eine zweite genehmigende Person entscheidet (202 pending_review).

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
deleteCampaign

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
204Gelöscht.kein Körper
412revision_conflict.Problem (application/problem+json)
202

Der Schreibvorgang wurde zu einer Überprüfung und wartet auf die Genehmigung einer Person (docs/reviews.md), mit Propose-Zugriff oder auf jeder Zugriffsstufe, wenn er einen Bildschirm in einem geschützten Bildschirmordner erreicht, wo eine zweite genehmigende Person entscheidet (docs/screen-scope.md). Eine Person genehmigt, lehnt ab oder fordert Änderungen im Dashboard unter review.url an.

Eine Wiederholung mit demselben Idempotency-Key liefert denselben Body.

ReviewPending (application/json)
403

outside_screen_scope oder approver_required wie bei ScreenScopePlays oder reserved_item - eine reservierte Kampagne wird nur von einer Person geändert, pausiert, gelöscht oder auf nicht reserviert gesetzt, die Überprüfungen genehmigen kann, nie von einem Agenten oder Service-Client (docs/screen-scope.md).

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
GET/api/campaigns/{id}/revisions

Kampagnen-Revisionen auflisten

Die Revisionen der Kampagne, neueste zuerst: die Kampagne, wie sie nach jedem Schreibvorgang einer Person, eines Agenten oder eines Zeitplan-Imports gespeichert wurde (eine Erstellung, ein Update, ein Hochstufen, eine Wiederherstellung), mit der Art der Änderung und wer sie vorgenommen hat.

Der Verlauf beginnt mit der Revision, die eine Kampagne hielt, als der Revisionsverlauf erstmals aufgezeichnet wurde: bis zu ihrem nächsten Schreibvorgang enthält die Liste allein diese Revision, mit change baseline. Eine Kampagne, deren Verlauf keine Revision mit paused false enthält, ist ein Entwurf. Revisionen bleiben so lange erhalten wie die Kampagne und gehen mit ihr.

Höchstens 50 pro Seite; next_cursor, solange weitere folgen, null auf der letzten Seite.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listCampaignRevisions

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
nachAbfrageoptionalnext_cursor der vorherigen Seite derselben Liste mit denselben Filtern. Wird ausgelassen, beginnt bei der neuesten Zeile. Ein Wert, der kein solcher Cursor ist, ist invalid_request.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/revisions'

Antworten

StatusBedeutungTextkörper und Header
200Die Revisionen der Kampagne, neueste zuerst.CampaignRevisionList (application/json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/campaigns/{id}/revisions/{revision}/restore

Kampagnen-Revision wiederherstellen

Macht eine frühere Revision wieder aktuell, indem sie über denselben Schreibvorgang wie PATCH nach vorn kopiert wird: ihr Name, ihre Playlist, Zielgruppe, Regel, Platzierung, Priorität und paused werden zu einer neuen Revision (change restored, restored_from die kopierte Revision), geprüft wie ein Update (ihre Playlist muss noch existieren und genehmigt sein), und jeder Bildschirm der alten und der neuen Zielgruppe wird neu aufgelöst, außer die Kampagne war pausiert und bleibt pausiert.

Frühere Revisionen bleiben, wie sie waren. If-Match ist erforderlich und nennt die aktuelle Revision (invalid_request, wenn es fehlt, revision_conflict, wenn sie veraltet ist). Eine Revision, deren Inhalt dem aktuellen Inhalt entspricht, ändert nichts und antwortet mit der aktuellen Kampagne. Derselbe Zugriff wie PATCH.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
restoreCampaignRevision

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
RevisionPfaderforderlichEine Revision des Datensatzes, wie ihre Revisionsliste sie nummeriert.
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/revisions/REVISION/restore'

Antworten

StatusBedeutungTextkörper und Header
200Die Kampagne mit der kopierten Revision als aktueller; ETag trägt ihre Revision.Kampagne (application/json); Header: ETag
404

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
409

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
412

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/campaigns/{id}/promote

Kampagne hochstufen

Veröffentlicht einen Test. Ein Test-Publish ist ein PATCH eines Entwurfs mit paused false und einer Zielgruppe, die ein Testordner oder einige Bildschirme ist; das Hochstufen kopiert dann die Zielgruppe von revision (der eigenen, pausierten Revision des Entwurfs) in einem Schreibvorgang auf die Kampagne (change promoted, restored_from die kopierte Revision), und jeder Bildschirm der alten und der neuen Zielgruppe wird neu aufgelöst.

Abgelehnt (invalid_request, mit Nennung von revision), wenn diese Revision nicht pausiert war, da sie kein Entwurf ist, und wenn die Kampagne jetzt pausiert ist, da es keinen Test zum Hochstufen gibt. If-Match ist erforderlich und nennt die aktuelle Revision. Eine Revision, deren Zielgruppe die aktuelle ist, ändert nichts. Derselbe Zugriff wie PATCH.

Promote fällt unter die Änderungskontrolle für Zeitpläne, die der Enterprise-Plan enthält; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt. Revisionsverlauf, Wiederherstellung und Vorschauen sind in jedem Plan offen.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
CampaignPromote
Operations-ID
promoteCampaign

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.

Anfrageinhalt-Felder

FeldBeschreibung
Revision (erforderlich, Ganzzahl)Die (pausierte) Revision des Entwurfs, deren Zielgruppe die Kampagne übernimmt. minimum: 1
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/promote'

Antworten

StatusBedeutungTextkörper und Header
200Die Kampagne mit der Zielgruppe des Entwurfs; ETag trägt ihre Revision.Kampagne (application/json); Header: ETag
402feature_not_in_plan — Die Änderungskontrolle für Zeitpläne ist Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan.Problem (application/problem+json)
404

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
409

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
412

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
GET/api/campaigns/{id}/screens

Kampagnenbildschirme auflisten

Die Reichweite der Kampagne. counts deckt jeden aktiven Bildschirm in ihrer Zielgruppe ab (audience, dann eine Zählung je Status); items ist eine Seite dieser Bildschirme in Reihenfolge der Bildschirm-ID mit dem Stand der Kampagne auf jedem (siehe CampaignStatus).

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) sieht und zählt nur die Zielgruppen-Bildschirme innerhalb seines Bereichs; Zählungen und Seitenumbruch betreffen diese Menge.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listCampaignScreens

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
LimitAbfrageoptional
CursorAbfrageoptionalnext_cursor der vorherigen Seite.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/screens'

Antworten

StatusBedeutungTextkörper und Header
200Zielgruppe und Stand der Kampagne.CampaignScreens (application/json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)