Campaign life-cycle

An in-app campaign can be quite long lived and do not necessarily even have an end.

Newly created campaign

When the campaign is created it starts with the In Design status. This means that all parts of the campaign can be modified. It stays in this status until the campaign is launched.

Launching the campaigns

When the campaign is launched it means it’s generally available for display. As part of launching the campaign an entity events is sent to make sure that the Device Event Service instances can refresh their cached list of campaigns.

Pausing

A campaign is typically paused if some error was discovered in order to have some time to fix everything in peace and quiet, While paused the campaign is not delivered to any devices. The pausing emits an entity event to allow the Device Event Service to invalidate it’s cache.

From the paused state the campaign can be resumed in which case it goes back to being Launched or it can be cancelled.

Canceling

If the user wishes to end the campaign before the scheduled date the campaign can be canceled. The canceling emits an entity event to allow the Device Event Service to invalidate it’s cache. Since canceling a campaign can not be revoked the campaign is also immediately queued for cleanup.

End of campaign

A campaign is ended when the endedAt is passed in all time zones. Once the end of the campaign is reached it won’t be shown anymore. The campaign can’t be changed anymore and it will be queued for cleanup.