Link Search Menu Expand Document

BBC Delegate

Important BAG reporting for Page Views is Enabled by default. If you are looking for AV reporting, please see Reporting AV play events via BAG.

This delegate reports Page Views to BAG. It’s also responsible for sending AppsFlyer AV events via BAG (the AV events are currently mobile only).

Table of contents

  1. Enabling BAG reporting
  2. BAG Page Loads
  3. Enabling BAG AV reporting
  4. Event Caching and Retry Behaviour
    1. Network connectivity check
    2. Retry on failure
    3. When retries are skipped

Enabling BAG reporting

BAG reporting is enabled by default. Please do not disable reporting, unless specifically asked to. Associated config keys can be found on the Advanced Config page

BAG Page Loads

From Echo iOS 7.0.0, Echo Android 20.0.0, and Echo JS 13.3.0 BAG will be reporting Page Loads for every Destination. This functionality supports the Product Group KPI for tracking Weekly Active Accounts.

Enabling BAG AV reporting

BAG AV reporting is disabled by default. Currently, BAG AV reporting is reporting to AppsFlyer only. Please see Reporting AV play events via BAG on the AppsFlyer reporting page for more information. BAG AV Reporting is currently only available for the Mobile platforms (iOS and Android) and it is not available for Echo JS.

Event Caching and Retry Behaviour

Events are cached locally and are only flushed when a network connection to BAG is available. This helps avoid unnecessary cache processing when BAG is unreachable and reduces the risk of event loss during cache persistence. If event delivery fails, the library retries using exponential backoff with jitter until the configured maximum retry attempt count is reached (this defaults to 3). This spreads retry traffic across clients, reducing the risk of overwhelming BAG during service recovery while improving the reliability of event delivery.

Network connectivity check

Before flushing cached events, Echo verifies that BAG is reachable by sending a lightweight request to the BAG status endpoint. If the status check fails, the cache flush is skipped entirely. Thus, the cache is only emptied when there is a valid network connection to BAG.

Retry on failure

If a cache flush is attempted and BAG returns a 5xx error, timeout, or connection failure, the failed events are automatically re-cached and a retry is scheduled using exponential backoff with jitter (see Advanced Config).

When retries are skipped

  • Retries are not scheduled when ECHO_CACHE_MODE is set to 'never' (no events are cached) or 'all' (all events are cached but need explicit flush of the cache to send the events).
  • Client errors (4xx) do not trigger retries.