CityScreen Play

CityScreen Play is the CMS that manages playback on digital screens. Two independent synchronization mechanisms connect the two systems, and they have different triggers, different directions, and different purposes.

Inventory sync — inbound

Digital display records are pulled from CityScreen Play into the Deals inventory on an hourly schedule. This keeps the display list current so that proposals are built against real screens.

Each run matches incoming displays to existing records by external ID or GID, creates new display records where no match exists, and updates existing ones. The fields synchronized from CS Play include name, GID, side, location, physical size, installation kind, placement, state, metadata, images, and the per-day operating schedule.

What becomes read-only

Once a digital display has been synchronized from CS Play, the fields that CS Play owns become read-only in Deals. The interface prevents edits in Deals, because the next sync run would overwrite them. To change a synchronized field, change it in CityScreen Play; the next sync run carries the update into Deals.

Two gates

The inventory sync requires two independent switches to both be on:

  1. Digital display synchronization — CityScreen enables it for your organization on request. Until it is enabled, the CMS integration checkbox in Settings cannot be switched on.

  2. CMS integration enabled — the toggle in Settings → Sync → CMS integration, controlled by the tenant administrator. The administrator also enters the CS Play base URL, access token, and CS Play organization ID here.

Both gates must be open for the hourly sync to run.

Manual re-sync

To pull the display list immediately, click Synchronize on the CMS integration section in Settings → Sync. This triggers an immediate pull. If another sync is already in progress, it is canceled first.

Sync log

Each run writes a log entry visible under Settings → Sync → Synchronization logs. The log shows the start and end time, whether the run succeeded, and the count of displays created and updated. Only the most recent run is retained.

Campaign export — outbound

Once a deal reaches the Booked or Paid stage, its digital content can be pushed to CityScreen Play as a live campaign. This is the outbound half of the integration: Deals tells CS Play what to play, on which screens, and when.

Two push granularities exist: deal-level and proposal-level. They are independent mechanisms and should not be mixed for the same deal.

Deal-level sync

The deal detail page shows a CMS Sync field with a Sync button. Clicking it exports the entire deal as a single CS Play campaign spanning the full booking period.

The deal’s sync status tracks the exchange:

  • Not Synced — no campaign has been pushed.

  • In Progress — the export pipeline is running.

  • Successful — the campaign was created and activated in CS Play.

  • Failed — the export failed; the error is shown next to the status.

A sync cannot be started while another one is already in progress.

Proposal-level sync

The proposal’s Synchronization tab offers finer-grained control. Here, each placement period within the proposal becomes its own CS Play campaign. This is the recommended approach for proposals with multiple flights, because each flight can be pushed and tracked independently.

Two modes are available:

Full proposal

Pushes all periods in the proposal at once. New periods get new campaigns; previously synced periods are updated.

Single period

Pushes one specific placement period.

The Synchronization tab maintains a full history of every push attempt — type, status, who triggered it, when, the external campaign ID, and any error text. The deal-level sync status shows only the current state.

What the export pipeline does

When a campaign export runs, the pipeline:

  1. Creates a draft campaign in CS Play (or updates an existing one).

  2. Uploads any new creative files.

  3. Creates or updates ads linked to those creatives.

  4. Deactivates ads whose creative was disabled or whose files changed.

  5. Activates the campaign.

Automatic re-sync flagging

If a proposal was already successfully synchronized and its periods or prices are later edited, Deals marks the proposal and the affected periods as requiring re-sync. A Requires Update entry appears in the sync history.

This flag is informational. To send the updated content to CS Play, click Synchronize again.

Prerequisites for a successful push

The campaign export validates several conditions before starting:

  • The deal must be in the Booked or Paid stage.

  • At least one proposal must exist.

  • Creative date ranges must fall inside their proposal period bounds.

  • No other sync may be in progress for the same deal or proposal.

If any condition fails, the sync is rejected with an error.

Permissions

  • Editing CMS integration settings in Settings → Sync requires the Synchronization settings permission with update access.

  • Triggering a manual inventory re-sync requires Digital display update permission.

  • Triggering a deal-level campaign export requires Deal update permission.