Campanhas
Uma campanha muda todas as telas de um público-alvo para uma playlist enquanto suas regras vigoram, e as muda de volta quando deixam de vigorar. Uma campanha executa cardápios de almoço em todas as lojas north, e uma tela marcada com north mais tarde também a recebe. Sem nenhuma regra definida, ela vigora sempre.
Por tela, o servidor escolhe o takeover dela, ou a primeira campanha em vigor (--priority de 0 a 100, maior primeiro, depois a mais recente), ou a programação de playlist, ou a playlist atribuída; veja Programações e takeover para a pilha e as regras. Uma campanha alcança uma tela que tem uma playlist padrão (screen assign). Suas datas, dias e horas são horários civis lidos no fuso horário próprio de cada tela: a substituição definida com screen set-timezone, senão o fuso que seu Player informa, senão UTC. As telas mudam em cerca de um minuto, e os Players não precisam de atualização.
Uma campanha em pausa é um rascunho: não está em nenhuma tela até que campaign publish a publique, se quiser primeiro numa pasta de teste ou em poucas telas de teste, e depois campaign promote coloca o público dela nela. campaign preview mostra uma mudança antes de ela ser feita, e campaign revisions e campaign restore guardam e recuperam versões anteriores. Os mesmos rascunhos, prévias e histórico existem para as entradas de cronograma abaixo; veja rascunhos, teste e promoção, histórico.
Os comandos de campanha usam a capacidade screens. As gravações precisam de acesso Gerenciar: uma sessão Propor responde 403 insufficient_access. Uma organização tem no máximo 100 campanhas em todos os seus projetos (campaign_limit_reached, exit 5), e a playlist deve estar aprovada (playlist_not_approved, exit 5). Campanhas são um recurso do Plus: sem ele, campaign create, campaign resume e um campaign update que não seja pausar respondem feature_not_in_plan (saída 8), enquanto list, show, screens, explain, preview, pause e delete continuam liberados, então uma campanha já configurada continua rodando. Um rascunho (campaign create --paused) e campaign promote pertencem ao controle de alterações da programação, um recurso do Enterprise que responde da mesma forma. Preços lista os planos. Cada gravação acrescenta campaign.created, campaign.updated ou campaign.deleted aos eventos do projeto, e uma tela que uma campanha move registra screen.playlist_switched com source campaign e o id da campanha como entry_id. ads campaigns compram tempo de anúncio em outras telas e são um recurso diferente.
Um solicitante limitado a pastas de telas só cria, altera e exclui uma campanha cujo público inteiro está dentro do seu escopo; caso contrário, outside_screen_scope (exit 3), e campaign list e campaign show mostram editable: false para uma campanha que alcança fora dele. Uma gravação campaign create, update, pause, resume ou delete cujo público alcança uma tela de uma pasta protegida responde pending_review com uma revisão protected_change que um segundo aprovador decide: não repita a gravação, leia a decisão com reviews show ID e use --note TEXT para dizer ao aprovador o motivo. Uma campanha reservada só é alterada por uma pessoa que pode aprovar, e um agente é recusado com reserved_item (exit 3) em qualquer nível de acesso.
campaign list#
Listar as campanhas do projeto na ordem em que as telas as leem.
campaign listSem parâmetros.
screenrig campaign listdata.items contém no máximo 100 campanhas, maior prioridade primeiro e, dentro de uma prioridade, a mais recente primeiro. Cada uma traz os campos que campaign show retorna, com reach depois de contada. Uma campanha pausada é listada e não se aplica em lugar nenhum. reserved marca uma campanha reservada, e editable aparece apenas para um solicitante limitado a pastas de telas: false significa que a campanha alcança telas fora desse escopo.
campaign show#
Leia uma campanha.
campaign show <id>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
screenrig campaign show cmp_LUNCHRetorna name, playlist_id, audience (a regra exata), priority, paused, reserved (true para uma campanha reservada, que só uma pessoa que pode aprovar altera), os from, until, windows, monthly, dates, except, data, interaction, covers, displays e start que estão definidos, e revision, o valor para --expect-rev em uma gravação posterior. editable aparece apenas para um solicitante limitado a pastas de telas: false significa que a campanha alcança telas fora desse escopo e é somente leitura para esse solicitante. import está presente em uma campanha criada por uma importação de programação. reach informa quantas telas o público-alvo reúne: published quando a campanha foi publicada pela última vez (criada, ou atualizada com um novo público-alvo, playlist ou estado de pausa), current e at para a contagem mais recente, e empty_groups, as folhas tag:NAME e folder:ID do público-alvo que não correspondem a nenhuma tela. Uma tag, pasta, arquivamento ou exclusão que muda a contagem é recontada em cerca de 15 segundos; campaign list também traz reach, e as notificações reach_dropped e group_empty a observam. Um id de ads campaigns list responde not_found (exit 4) aqui.
campaign create#
Mudar as telas de um público-alvo para uma playlist, sempre ou enquanto suas regras vigoram.
campaign create --name NAME --playlist-id ID (--tag TAG | --any-tag TAG | --screen-id ID | --folder ID | --all-screens | --audience RULE) [--from TIME] [--until TIME] [--window SPEC] [--monthly SPEC] [--date SPEC] [--except DATES] [--data KEY[:PATH[=VALUE]]] [--on-touch [IDLE_S]] [--displays N[,N]] [--start on-time|next-item] [--covers WHERE] [--priority N] [--paused] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
--name NAME | string | sim | nenhum | Um nome de 1 a 120 caracteres. |
--playlist-id ID | string | sim | nenhum | A playlist pl_ que as telas do público-alvo exibem enquanto a campanha vigora. Deve estar aprovada. |
--tag TAG | string | uma opção de público-alvo | nenhum | Telas que têm esta tag. Repita ou separe por vírgulas para exigir todas as tags listadas. |
--any-tag TAG | string | uma opção de público-alvo | nenhum | Telas que têm pelo menos uma destas tags. Repita ou separe por vírgulas. |
--screen-id ID | string | uma opção de público-alvo | nenhum | Estas telas. Repita ou separe por vírgulas. |
--folder ID | string | uma opção de público-alvo | nenhum | As telas desta pasta de telas sfd_ e de cada pasta dentro dela. Para combinar uma pasta com tags, use --audience. |
--all-screens | boolean | uma opção de público-alvo | desligado | Todas as telas do projeto. |
--audience RULE | string | uma opção de público-alvo | nenhum | Uma regra em JSON, @FILE para lê-la de um arquivo, ou - para stdin. |
--from TIME | string | não | sem início | Iniciar neste horário civil no fuso horário de cada tela, YYYY-MM-DDTHH:MM sem deslocamento. |
--until TIME | string | não | sem fim | Encerrar antes deste horário civil no fuso horário de cada tela, no mesmo formato e posterior a --from. |
--window SPEC | string | não | nenhum | Vigorar apenas nesta janela semanal, DAYS ou DAYS@HH:MM-HH:MM, como mon-fri@09:00-17:00 ou sat,sun. Repita até 16 vezes; a campanha vigora em qualquer uma delas. |
--monthly SPEC | string | não | nenhum | Vigorar apenas nesta ocorrência mensal: um dia do mês (15 ou day15; um mês sem esse dia a ignora) ou o enésimo dia da semana (1st-mon, 2nd-tue, 3rd-wed, 4th-thu, last-sun), cada um com um @HH:MM-HH:MM opcional. Repita até 16 vezes. |
--date SPEC | string | não | nenhum | Vigorar apenas neste dia, YYYY-MM-DD ou YYYY-MM-DD@HH:MM-HH:MM. Repita até 100 vezes. |
--except DATE | string | não | nenhum | Pula estas datas, YYYY-MM-DD, repetidas ou separadas por vírgulas, até 100. Uma exceção remove toda ocorrência que começa nessa data, incluindo as continuações noturnas. |
--data KEY[:PATH[=VALUE]] | string | não | nenhum | Vale apenas enquanto os dados de cartão KEY (uma chave de dados de cartão ou um ID de cartão, ou {screen.weather}) existirem, opcionalmente no ponteiro RFC 6901 PATH ou iguais a VALUE. Informe uma única vez. |
--on-touch [IDLE_S] | integer | não | desligado | Vigorar apenas enquanto alguém usa a tela por toque ou clique, até que se passem IDLE_S segundos, de 5 a 3600 (padrão 60), sem entrada. |
--displays N[,N] | string | não | todas as saídas | Reproduzir apenas nestas saídas do videowall, de 1 a 12, separadas por vírgulas. |
--start WHEN | string | não | next-item | on-time troca no momento exato e interrompe o item atual; next-item espera ele terminar. |
--covers WHERE | string | não | full | Onde a playlist é reproduzida: full (a página inteira), main (a própria página), ou header, footer ou side, uma faixa desenhada sobre a página que exige uma playlist feita para essa região (playlist create --format-region). Veja faixas. Uma faixa é recusada com playlist_format_mismatch (exit 5) quando não cabe em nenhuma das telas do público. |
--priority N | integer | não | 0 | De 0 a 100. O número maior vence quando duas campanhas vigoram na mesma tela. |
--paused | boolean | não | desligado | Criar pausada: um rascunho que não está em nenhuma tela até campaign publish ou campaign resume. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig campaign create --name "Lunch menu" --playlist-id pl_LUNCH --tag north --window mon-fri@11:00-14:00
screenrig campaign create --name "North Tower welcome" --playlist-id pl_WELCOME --folder sfd_01EXAMPLEFOLDER000000000
screenrig campaign create --name "Holiday hours" --playlist-id pl_HOLIDAY --tag Lobby --from 2026-12-20T00:00 --until 2027-01-02T00:00 --priority 10
screenrig campaign create --name "North cafes" --playlist-id pl_CAFE --audience '{"all":[{"tag":"North"},{"any":[{"tag":"Cafe"},{"tag":"Patio"}]}]}' --paused
screenrig campaign create --name "Brunch" --playlist-id pl_BRUNCH --tag Cafe --monthly 1st-sun@10:00-14:00 --except 2026-12-06
screenrig campaign create --name "Touch to browse" --playlist-id pl_MENU --screen-id scr_KIOSK --on-touch 90
screenrig campaign create --name "Holiday opening" --playlist-id pl_HOLIDAY --tag Lobby --date 2026-12-24@18:00-22:00 --start on-time
screenrig campaign create --name "Wall outputs 1 and 2" --playlist-id pl_WALL --screen-id scr_WALL --displays 1,2
screenrig campaign create --name "Room availability" --playlist-id pl_LIVE --folder sfd_01EXAMPLEFOLDER000000000 --data "crd_ROOM:/available=true"
screenrig campaign create --name "Fire exits" --playlist-id pl_EXITS --folder sfd_01EXAMPLEFOLDER000000000 --note "Fire safety"Tags têm de 1 a 32 letras ou dígitos. DAYS é daily, um dia (mon), um intervalo (mon-fri; fri-mon atravessa o fim da semana) ou uma lista separada por vírgulas (sat,sun). Sem um horário, a janela é o dia inteiro, e um fim igual ou anterior ao início cruza a meia-noite e pertence ao dia de início. Em uma regra --audience, cada membro tem exatamente um entre all, any, tag, screen_id ou folder, os grupos se aninham em no máximo 3 níveis, um público-alvo tem no máximo 500 regras, e {"all":[]} equivale a todas as telas. O servidor recusa uma regra morta: uma data --except fora de --from e --until, um --date que começa fora delas e um --date que também é uma exceção (invalid_request, exit 8).
--data KEY vale enquanto os dados de cartão KEY existirem, --data KEY:PATH enquanto existir um valor no ponteiro RFC 6901 PATH, e --data KEY:PATH=VALUE enquanto ele for igual a VALUE, um escalar JSON (true, false, null, um número ou uma string entre aspas JSON) ou uma string simples como rain. Objetos e arrays são recusados. Dados ausentes ou expirados nunca correspondem, e um null ou false presente conta como existente. KEY:=VALUE compara o documento inteiro. Escape os dois-pontos em KEY como \: e coloque o argumento entre aspas para manter as aspas da string JSON: --data 'crd_ROOM:/status="true"'. A chave {screen.weather} lê o clima no local de cada tela (screen update ID --location LAT,LON): --data '{screen.weather}:/condition=rain'.
Após uma criação interrompida ou ambígua, execute novamente o comando idêntico dentro de 24 horas: ele reutiliza a chave de idempotência salva, e o servidor retorna a mesma campanha em vez de criar outra.
campaign update#
Alterar uma campanha; as telas do seu público-alvo antigo e do novo são resolvidas novamente em até um minuto.
campaign update <id> [--name NAME] [--playlist-id ID] [audience option] [--from TIME | --clear-from] [--until TIME | --clear-until] [--window SPEC | --clear-windows] [--monthly SPEC | --clear-monthly] [--date SPEC | --clear-dates] [--except DATES | --clear-except] [--data KEY[:PATH[=VALUE]] | --clear-data] [--on-touch [IDLE_S] | --clear-on-touch] [--displays N[,N] | --clear-displays] [--start WHEN] [--covers WHERE] [--priority N] [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--name NAME | string | não | inalterado | Renomear a campanha. |
--playlist-id ID | string | não | inalterado | Exibir esta playlist no lugar. Deve estar aprovada. |
--tag, --any-tag, --screen-id, --folder, --all-screens, --audience | string | não | inalterado | No máximo uma, escrita como em campaign create. Substitui o público-alvo inteiro. |
--from TIME, --until TIME | string | não | inalterado | Um horário civil como em campaign create. --from deve ficar antes de --until, caso contrário invalid_request (exit 8). |
--clear-from, --clear-until | boolean | não | desligado | Remover o início ou o fim. |
--window SPEC | string | não | inalterado | Substitui todas as janelas por estas. Repita até 16 vezes. |
--clear-windows | boolean | não | desligado | Remover todas as janelas. |
--monthly SPEC, --date SPEC, --except DATE | string | não | inalterado | Como em campaign create; cada uma substitui todas as regras do seu tipo. |
--data KEY[:PATH[=VALUE]] | string | não | inalterado | Como em campaign create; substitui a condição de dados de cartão. |
--on-touch [IDLE_S], --displays N[,N], --start WHEN | string | não | inalterado | Como em campaign create; --on-touch sem valor são 60 segundos. |
--clear-monthly, --clear-dates, --clear-except, --clear-data, --clear-on-touch, --clear-displays | boolean | não | desligado | Remove-os. Uma campanha sem nenhuma regra vigora sempre. |
--covers WHERE | string | não | inalterado | full, main, header, footer ou side, como em campaign create. |
--priority N | integer | não | inalterado | De 0 a 100. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig campaign update cmp_LUNCH --playlist-id pl_LUNCH2 --expect-rev 2
screenrig campaign update cmp_LUNCH --tag Lobby --window sat,sun --priority 20
screenrig campaign update cmp_LUNCH --clear-until --clear-windows
screenrig campaign update cmp_BRUNCH --monthly 2nd-sun@10:00-14:00 --except 2026-12-13,2027-01-10
screenrig campaign update cmp_BROWSE --clear-on-touch --clear-displays
screenrig campaign update cmp_ROOMS --data crd_ROOM:/available=true
screenrig campaign update cmp_ROOMS --clear-data
screenrig campaign update cmp_LUNCH --playlist-id pl_LUNCH2 --note "Safety review done"Passe pelo menos uma alteração; apenas os campos que você passar mudam. Um novo --playlist-id é verificado como na criação. Após uma solicitação interrompida ou ambígua, execute novamente o comando idêntico: ele reutiliza a chave de idempotência salva, e o servidor retorna a atualização que já aconteceu em vez de aplicá-la novamente.
campaign pause#
Interromper uma campanha em todas as telas sem excluí-la.
campaign pause <id> [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig campaign pause cmp_LUNCH
screenrig campaign pause cmp_LUNCH --note "Holiday over"As telas que a exibiam voltam ao que exibiriam sem ela em até um minuto. campaign resume a inicia novamente.
campaign resume#
Iniciar novamente uma campanha pausada.
campaign resume <id> [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig campaign resume cmp_LUNCH
screenrig campaign resume cmp_LUNCH --note "Holiday again"Toda tela do público-alvo à qual a campanha pode se aplicar muda para a playlist da campanha em até um minuto enquanto a campanha vigora.
campaign delete#
Excluir uma campanha.
campaign delete <id> [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig campaign delete cmp_LUNCH
screenrig campaign delete cmp_LUNCH --note "Replaced by the winter campaign"A campanha não volta. Toda tela que a exibe volta ao que exibiria sem ela em até um minuto; playlists, telas e tags permanecem. campaign pause interrompe uma campanha e a mantém.
campaign screens#
Mostrar as telas que uma campanha alcança e a situação de cada uma.
campaign screens <id> [--limit N] [--cursor CURSOR]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--limit N | integer | não | 100 | Telas por página, de 1 a 500. |
--cursor CURSOR | string | não | a primeira página | O data.next_cursor da página anterior. |
screenrig campaign screens cmp_LUNCHdata.counts cobre todas as telas ativas do público-alvo: audience, depois uma contagem por situação presente. data.items é uma página dessas telas em ordem de id da tela, cada uma com o status da campanha. data.next_cursor está ausente na última página. Em uma tela cujo Player resolve a própria pilha, a situação é a que essa pilha dá à campanha: uma campanha de faixa ou main é reproduzida na sua região, e uma campanha --displays, nos seus displays.
| Status | Significado |
|---|---|
playing | A tela exibe a playlist da campanha. |
pending | Deve ser exibida, e a troca ocorre em até um minuto. |
waiting | Fora de --from, --until, das janelas, das regras mensais ou das datas agora; next_start quando começa em até oito dias. |
ended | --until já passou. |
outranked | Está em vigor, mas um takeover da tela (reason takeover) ou outra campanha (reason campaign, com by) prevalece. |
conditional | Está em vigor pelo horário e é reproduzida enquanto alguém usa a tela (reason interaction) ou enquanto sua condição de dados se cumpre (reason data). Só o Player vê sua entrada e seus dados de cartões. |
paused | A campanha está pausada. |
blocked | Não pode ser exibida aqui. reason é no_default_playlist (screen assign), playlist_unavailable (a playlist está ausente, não está aprovada ou não se adequa à tela), region_not_laid_out (não cabe em nenhum display da tela: sua faixa não cabe em nenhum, ou seu --displays não nomeia nenhum, e a campanha fica fora da sua pilha) ou stack_only (o Player da tela não resolve a própria pilha, e só um que resolve respeita uma região, um bloqueio de displays, --on-touch ou uma condição de dados). |
campaign explain#
Mostrar por que cada campanha é ou não reproduzida em uma tela, agora ou em um momento escolhido.
campaign explain <screen-id> [--at TIME] [--to TIME]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<screen-id> | string | sim | nenhum | O id da tela scr_. |
--at TIME | string | não | agora | Explicar este momento em vez de agora: um instante com fuso (2026-12-24T10:00:00-08:00) ou um horário no relógio da própria tela (2026-12-24T18:00). Um horário que o horário de verão pula ou repete é recusado. |
--to TIME | string | não | nenhum | Também lista as trocas de playlist de --at (padrão: agora) até este momento, nas mesmas formas. Não há limite de distância; uma resposta lista no máximo 500 trechos, e cada período de oito dias sem alteração conta como um. |
screenrig campaign explain scr_LOBBY
screenrig campaign explain scr_LOBBY --at 2026-12-24T18:00 --to 2026-12-26T00:00data.items lista todas as campanhas do projeto na ordem em que a tela as lê, cada uma com uma situação de campaign screens ou not_in_audience; uma linha blocked nomeia a correção. data.effective_playlist é a playlist que a tela reproduz agora (id, source, que é takeover, campaign, schedule, default ou folder, e entry_id, o id da campanha, da entrada de programação ou da pasta), ou null quando a tela não exibe nenhuma playlist. Não altera nada.
Com --at, data.at contém a resposta para esse momento: instant, timezone (o fuso horário efetivo da tela) e local (o instante no relógio da tela), effective_playlist (cujo until é a próxima mudança) e uma linha verdicts para o takeover, cada campanha e cada entrada de programação, na ordem em que a tela as lê.
Um veredito é won (a playlist exibida), outranked (está em vigor, e by nomeia a vencedora), not_started (antes do início), ended (depois do fim), outside_hours (dentro das datas, fora das janelas, das regras mensais ou das datas, ou em uma data de exceção; next_start diz quando volta a valer em até oito dias), conditional (está em vigor pelo horário e é reproduzida enquanto alguém usa a tela, reason interaction, ou enquanto sua condição de dados se cumpre, reason data) ou off (não se aplica, e reason diz o motivo: paused, not_in_audience, no_default_playlist, playlist_unavailable, region_not_laid_out ou stack_only). Em uma tela cujo Player resolve a própria pilha, os vereditos leem essa pilha: um nível de faixa ou main vence ou é superado na sua região, e um bloqueio de displays, nos seus displays. effective_playlist e a linha do tempo continuam sendo a página do display 1, e data.at.not_judged lista player_stack.
--to adiciona data.at.timeline, os trechos em que a playlist não muda, e timeline_truncated marca uma resposta que parou antes de --to: consulte de novo com --at definido como o to do último trecho. data.at.not_judged diz o que não é julgado: o takeover, a programação e as campanhas são lidos como estão agora, e data.items continua sendo o estado atual.
campaign preview#
Mostrar o que criar ou alterar uma campanha faria antes de fazê-lo.
campaign preview [<id>] [--name NAME] [--playlist-id ID] [audience option] [rule flags] [clear flag] [--paused | --publish] [--calendar-from INSTANT] [--calendar-to INSTANT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | não | uma nova campanha | A campanha cmp_ cuja mudança será pré-visualizada. Omita para pré-visualizar uma nova campanha a partir dos flags de campaign create. |
--name NAME, --playlist-id ID | string | para uma nova campanha | inalterado | Como em campaign create; uma campanha nova precisa dos dois. |
--tag, --any-tag, --screen-id, --folder, --all-screens, --audience | string | para uma nova campanha | inalterado | No máximo uma, escrita como em campaign create; uma campanha nova precisa de uma. Com um <id>, substitui o público inteiro. |
--from TIME, --until TIME, --window SPEC, --monthly SPEC, --date SPEC, --except DATE | string | não | inalterado | As opções de regra de campaign create. Com um <id>, cada uma substitui todas as regras do seu tipo. |
--data KEY[:PATH[=VALUE]], --on-touch [IDLE_S], --displays N[,N], --start WHEN, --covers WHERE | string | não | inalterado | Como em campaign create. |
--priority N | integer | não | inalterado | De 0 a 100. |
--clear-from, --clear-until, --clear-windows, --clear-monthly, --clear-dates, --clear-except, --clear-data, --clear-on-touch, --clear-displays | boolean | não | desligado | Como em campaign update: prévia da remoção da regra. Elas precisam de um <id>. |
--paused | boolean | não | desligado | Pré-visualizar como rascunho: em pausa, em nenhuma tela. Não com --publish. |
--publish | boolean | não | desligado | Pré-visualizar a saída da pausa da campanha. Com uma opção de público, pré-visualiza a publicação para esse público. Exige um <id> e exclui --paused. |
--calendar-from INSTANT | string | não | agora | Inicie os calendários neste instante com fuso, como 2026-12-01T00:00:00Z. |
--calendar-to INSTANT | string | não | uma semana após o início | Termine os calendários neste instante com fuso, no máximo 93 dias após o início. |
screenrig campaign preview cmp_LUNCH --tag Lobby
screenrig campaign preview cmp_LUNCH --clear-until --priority 20
screenrig campaign preview cmp_LUNCH --publish --folder sfd_TEST
screenrig campaign preview cmp_LUNCH --publish --calendar-from 2026-12-01T00:00:00Z --calendar-to 2027-01-01T00:00:00Z
screenrig campaign preview --name "Holiday hours" --playlist-id pl_HOLIDAY --tag Lobby --from 2026-12-20T00:00 --until 2027-01-02T00:00As opções são verificadas como a gravação as verifica, então uma prévia recusa o que a gravação recusa. Com um <id>, passe pelo menos uma alteração: uma opção de campaign update, --paused ou --publish. Nada é gravado. data.gained e data.lost são {count, screen_ids} (os primeiros 500 por id): as telas que passariam a ter a campanha e agora não têm, e as que deixariam de tê-la. Uma campanha em pausa não está em nenhuma tela, então publicá-la ganha o seu público; uma edição que mantém a campanha numa tela só aparece nos calendários. data.calendar.before e data.calendar.after são os calendários de cronograma de --calendar-from a --calendar-to para as telas do público antigo e do novo, com rascunhos desenhados como níveis em pausa. --human imprime os trechos do primeiro display e os rascunhos que valeriam, e avisa quando o calendário não muda.
campaign publish#
Tirar da pausa uma campanha em rascunho, se quiser somente para uma pasta de teste ou poucas telas de teste.
campaign publish <id> [--test-folder ID | --test-screen ID] [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--test-folder ID | string | não | o público da campanha | Publicar somente nas telas desta pasta de telas sfd_ e de cada pasta dentro dela. |
--test-screen ID | string | não | o público da campanha | Publicar somente nestas telas. Repita ou separe por vírgulas. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig campaign publish cmp_LUNCH
screenrig campaign publish cmp_LUNCH --test-folder sfd_TEST
screenrig campaign publish cmp_LUNCH --test-screen scr_LOBBY,scr_CAFE --expect-rev 2Um rascunho é uma campanha em pausa: não está em nenhuma tela até ser publicado. Sem opção de teste, a campanha alcança seu próprio público em até um minuto. Uma opção de teste substitui o público na mesma gravação, de modo que só as telas de teste mudam. O fluxo usual: campaign create --paused com o público real, campaign publish ID --test-folder FOLDER, olhar as telas de teste e depois campaign promote ID --revision N. campaign preview ID --publish mostra antes o efeito.
campaign promote#
Colocar o público de um rascunho na campanha depois do teste.
campaign promote <id> --revision N [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--revision N | integer | sim | nenhum | A revisão em pausa do rascunho, como campaign revisions a numera. A campanha adota o público dessa revisão. |
--expect-rev REVISION | string | não | a revisão recém-lida | Exigir esta revisão atual da campanha. Sem ela, o CLI lê a campanha logo antes da gravação e envia essa revisão; uma mudança no meio é revision_conflict (exit 6). |
screenrig campaign promote cmp_LUNCH --revision 1
screenrig campaign promote cmp_LUNCH --revision 1 --expect-rev 2O público da revisão N torna-se o da campanha em uma gravação, uma nova revisão cujo change é promoted, e cada tela do público antigo e do novo é resolvida de novo em até um minuto. A revisão N deve ser uma revisão em pausa (invalid_request a nomeia caso contrário), e a campanha deve estar ativa: uma campanha em pausa agora não tem teste para promover. Uma revisão cujo público já é o da campanha não altera nada. --expect-rev é a revisão atual da campanha, não N. Promover exige o acesso que campaign update exige.
campaign revisions#
Listar as revisões de uma campanha, a mais recente primeiro.
campaign revisions <id> [--after CURSOR]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--after CURSOR | string | não | a primeira página | Continue a partir do data.next_cursor da página anterior. |
screenrig campaign revisions cmp_LUNCH
screenrig campaign revisions cmp_LUNCH --after CURSORdata.items contém no máximo 50 revisões, cada uma com revision, created_at, change, current, author quando conhecido e campaign, a campanha como ficou após essa gravação, com seu estado de pausa. change é created, edited (uma atualização ou uma importação de programação), restored ou promoted (uma cópia da revisão anterior que restored_from nomeia), ou baseline, a revisão que a campanha tinha quando seu histórico começou. Uma campanha cujo histórico não tem nenhuma revisão fora de pausa é um rascunho. Enquanto data.next_cursor for uma string, restam revisões mais antigas: execute o comando de novo com --after definido com esse valor. As revisões são mantidas enquanto a campanha existir e somem com a exclusão dela. Acesso somente leitura basta.
campaign restore#
Tornar atual de novo uma revisão anterior copiando-a para a frente.
campaign restore <id> --revision N [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da campanha cmp_. |
--revision N | integer | sim | nenhum | A revisão a copiar para a frente, como campaign revisions a numera. |
--expect-rev REVISION | string | não | a revisão recém-lida | Exigir esta revisão atual da campanha. Sem ela, o CLI lê a campanha logo antes da gravação e envia essa revisão; uma mudança no meio é revision_conflict (exit 6). |
screenrig campaign restore cmp_LUNCH --revision 3
screenrig campaign restore cmp_LUNCH --revision 3 --expect-rev 5O nome, a playlist, o público, as regras, o região, a prioridade e o estado de pausa da revisão N tornam-se uma nova revisão cujo change é restored, verificada como campaign update é verificado: a playlist dela deve continuar existindo e estar aprovada (playlist_not_approved, exit 5). Cada tela do público antigo e do novo é resolvida de novo em até um minuto. As revisões anteriores ficam como estavam, e restaurar o conteúdo atual não muda nada. Restaurar exige o acesso que campaign update exige.