Description
Broadcast interval feature allows campaigns that are running on an interval schedule to ignore segment with a certain periodicity (by setting an interval which is always larger then the main interval). Because of this, feature only makes sense for campaigns that are targeted to a particular segment of users.
Broadcast execution will happen on each broadcast_interval / main_interval step of the cycle. The main interval is executed as usual, while the final step of the cycle is treated differently:
- segment conditions will be ignored
- a target audience will consist of all active subscribers for a channel which was used for the campaign’s segment
Execution logic
Each final step of the cycle is followed by a CampaignStrictRequest with broadcast_id set to the BroadCastIntervalDelivery ID.
In this case MessageStrictCampaignTask will run the task with a context of broadcast delivery which includes:
- using it’s content data for messages (either a pool or a single message instance)
- ignoring campaign segment conditions
- act as if the campaign is targeted to all active subscribers of a particular channel (or channels, in case of multi-channel segment)
All logic is concentrated on a manager service, which is responsible for campaign execution.
Use cases
Such feature may be very useful when we want to update our campaign to send messages more frequently only for a subset of users, while keeping the main interval for the rest of the users. For example:
- campaign running every 2 minute
- we want fresh users (age < 10 days) to receive messages every 30 seconds
- we set campaign interval to 30 seconds
- we also set a segment that will only include users that are less than 10 days old
- we set a broadcast interval to 2 minutes