フォルダー別・タグ別の集計
fleet_health、uptime、publishing、alerts は、フリートをフォルダー、画面、タグ別に、両端を含む UTC の日付で集計します。フォルダーの行は、その中とサブフォルダー内のすべての画面を数え、最初の行はプロジェクト全体です。タグは2つ目のグループ化で、画面は持っているタグごとに数えられます。
| レポート | 行が表すもの |
|---|---|
fleet_health | 画面数、現在オンライン、可用性、未解決のアラート、期間中に発生したアラート、高温、ディスプレイ切断、クラッシュ中、最新のコンテンツを再生中の画面数 |
uptime | オンライン・オフライン時間、可用性、記録済みカバレッジ |
publishing | 最新のコンテンツ、更新中のコンテンツ、要対応のコンテンツ、コンテンツなしの画面 |
alerts | 現在未解決のアラートと期間中に発生したアラート(条件別) |
alert_log | 期間中に発生したアラートごとに 1 行:画面、条件、開始と終了、確認した人 |
proof_of_play | スポンサーまたは広告主の直接キャンペーンの再生数(キャンペーン、メディア、画面別)と合計 |
GET /api/reports/{kind} はレポートを作成します。from と to は UTC の日付です(既定は直近30日)。group_by は folder(既定)、screen、tag のいずれかです。folder_id はレポートをフォルダーとその中のすべてに限定し、direct=true を付けるとフォルダーとその子フォルダー、画面単位ではフォルダー直下の画面に限定します。tag はそのタグを持つ画面だけを残します。フォルダーの行には id、parent_id、depth が含まれるので、クライアントは行から階層を描けます。可用性はオンライン時間を記録された時間で割ったもので、記録済みカバレッジは期間のうち画面が状態を報告した割合を表します。
ダッシュボードのヘルスページは、これらの集計を画面フォルダーの階層として表示します。各フォルダーを開くとサブフォルダーと画面が表示され、各画面からはその画面のヘルスタブに進めます。
CSV、XLSX、PDF
すべてのレポートルートは format=csv、xlsx、pdf を受け付け、同じ行を含む添付ファイルで応答します。対象は新しいレポート、GET /api/uptime/daily、GET /api/screens/{id}/uptime、GET /api/screens/{id}/health/history、GET /api/health/trend、GET /api/alerts、GET /api/playback、GET /api/playback/plays、GET /api/playback/totals、GET /api/playback/completeness、広告の配信・充足・支出レポート、直接キャンペーンのレポートです。ページ分割されたレポートは最大 50,000 行まで全体が書き出され、先頭の行だけの場合は truncated で分かります。
XLSX ファイルは 1 枚のシートで、固定されたヘッダーの上にタイトルと期間があり、数値は数値のまま、合計は太字です。PDF は、screenRIG の名前、宛先のプロジェクト、タイトルと期間、各ページで繰り返されるヘッダーの表、合計、ページ番号を備えた簡潔な報告書で、そのまま送れます。CSV は列ラベルで始まり、表計算ソフトが数式として実行してしまうテキストのセルを無害化します。
screenrig reports show fleet_health --group-by folder --format pdf --output fleet-health.pdf
screenrig reports show proof_of_play --advertiser "Acme Corp" --from 2026-10-01 --to 2026-10-31 --format pdf --output acme.pdf
screenrig project uptime --format xlsx --output uptime.xlsx
screenrig alerts list --state all --format csv --output alerts.csv
スポンサーまたは広告主向けの再生証明
proof_of_play はプロジェクトの直接キャンペーンの再生数を集計します。再生は、画面がメディアの再生完了を報告したときに数えられます。campaign_id で1つのキャンペーンを、advertiser(正確な名前、大文字小文字は区別しません)でスポンサーまたは広告主のすべてのキャンペーンを指定します。各行は、キャンペーン、メディアファイル、画面ごとの再生数、再生時間、最初と最後の日、画面に視聴者数の推定がある場合は推定インプレッションです。PDF はそのまま送れる報告書です。
メールスケジュール
レポート購読は、レポートの種類とフィルター、頻度、ファイル形式、送り先のプロジェクトメンバーを指定します。POST /api/report-subscriptions で作成します。1 組織あたり、すべてのプロジェクトを合わせて最大 50 件です(report_subscription_limit_reached)。
| メンバー | 意味 |
|---|---|
kind | fleet_health、uptime、publishing、alerts、alert_log、proof_of_play のいずれか |
filters | 日付以外のレポートのフィルター: group_by、folder_id、direct、tag、campaign_id、advertiser |
schedule | cadence daily、weekly(weekday)または monthly(day_of_month、1〜28)、hour 0〜23、IANA の timezone |
format | pdf、xlsx、csv(メールに添付) |
recipients | プロジェクトのメンバー。user_id またはメンバーのメールアドレスで指定します |
各実行は、その直前の期間を UTC の日単位で対象にします。日次は前日、週次は直前の7日間、月次は直前の1か月分で、スケジュールのタイムゾーンの暦で数えます。宛先はプロジェクトのメンバーで、送信のたびに再確認されます。メンバー以外は購読の作成時に拒否され、退出したメンバーやメールアドレスが未確認のメンバーには届かなくなります。添付ファイルは最大 8 MiB です。
失敗した実行は 15 分後、1 時間後、4 時間後に再試行され、その後は次の実行を待ちます。購読には last_status(delivered または failed)、last_error、前回の実行が対象にした日、next_run_at が表示されます。POST /api/report-subscriptions/{id}/send は、今実行した場合に対象となる期間のレポートを、スケジュールを動かさずに今すぐ送り、購読とこの送信の結果を返します。
screenrig reports subscriptions create --name "Monday fleet health" --kind fleet_health \
--cadence weekly --weekday monday --hour 7 --timezone America/Los_Angeles \
--format pdf --recipients ann@example.com,usr_ID
screenrig reports subscriptions list
screenrig reports subscriptions send rsub_ID
ダッシュボードのレポートページにも、メールスケジュールとして同じスケジュールがあります。
プロジェクト全体をエクスポート
screenrig project export DIR はプロジェクトのデータをオープン形式でディレクトリに書き出します。復元に使う前に、各セクションの結果を確認してください。
| パス | 内容 |
|---|---|
export.json | 形式(screenrig.export/v1)、作成日時、各セクションの結果、各ファイルのサイズと SHA-256 |
project.json, tags.json | プロジェクトとそのタグ、タグごとの画面 |
screens/ | screens.json、folders.json、schedules.json(各画面のレベル、テイクオーバー、ディスプレイのスケジュール) |
playlists/ | 各プレイリストとすべてのリビジョン(JSON) |
campaigns.json, advertising/direct-campaigns.json | キャンペーンと直接キャンペーン |
cards/, sources.json, applications.json, triggers.json | データを含むカード、データソース設定、アプリケーションのメタデータ、アラートのトリガー |
applications/APP_ID/kv.json | 各アプリケーションの永続 K/V エントリー:base64 の値、コンテンツタイプ、バイト数、SHA-256、リビジョン |
notifications.json, webhooks.json, alert-mutes.json, report-subscriptions.json | 通知、Webhook、ミュート、スケジュール |
media/files/ と media/manifest.json | 元のメディアファイルと、各ファイルの ID、名前、種類、サイズ、SHA-256 |
data/ | 再生、再生数の合計、日次の可用性、画面別の可用性、アラートの CSV |
log/events.jsonl | プロジェクトのイベントログ(1 行に 1 つの JSON イベント) |
log/audit.jsonl, log/audit-head.json | 監査ログ(1 行に 1 件の JSON エントリ)とそのチェーンの先頭 |
古いプレイリストに固定されたリリースも復元できるよう、元のアプリケーションアーカイブをエクスポートと一緒に保管してください。アプリケーションの内容の省略はアプリケーションファイルのセクションに表示され、data.complete:false と export_application_content_omitted が返されます。--no-media の指定時も同様です。再実行するとメタデータが更新されます。
アプリケーションの K/V は、--no-media と --since のどちらを指定してもすべてコピーされます。K/V の一覧または値の読み取りに失敗すると、applications セクションは export_section_failed で失敗し、data.complete:false が設定されます。読み取りエラーを解消してから再実行し、コピーを更新してください。
認証情報はコピーに含まれません。Webhook の署名シークレットと受信アドレス、通知のチャットまたはポケベルの認証情報、データソースのシークレットは除外されます(ファイルには受信先のオリジンとシークレットの名前だけが残ります)。再実行しても安全です。JSON ファイルは丸ごと書き直され、すでに完全なメディアファイルは保持され、途中までのダウンロードは続きから再開されます。各メディアファイルは、保持する前にプロジェクトが記録している SHA-256 と照合されます。--no-media はメディアファイルを省略し、--since DAY は CSV データとイベントログの開始日を指定します。各リクエストは課金対象の API リクエストで、メディアのダウンロードはエグレスです。