Link Search Menu Expand Document

Advanced Config

The default Echo config is for a live piece of media and is our preferred setup for products using Echo. Config can also optionally be specified and passed to EchoClient via a config object, overriding the defaults.

Typically, it is not neccessary to specify any configuration changes when using Echo in a live scenario.

Table of contents

  1. Remote Config
  2. Config Options

Remote Config

Echo does not handle remote configuration itself. It is advisable that products implement their own remote configuration for mobile apps when making config changes, to handle any mistakes which may get released into production or app stores without waiting for an approval.

If you implement remote configuration, you will need to reinitialise Echo for your config changes to be enabled.

Config Options

The following values are able to be configured within Echo.

Important: You should only modify these options if you’re aware of the impact changes will have on the BBC’s analytics infrastructure.

Name Meaning Value Default
APPSFLYER_ENABLED Turn on/off appsflyer reporting string false (off)
APPSFLYER_DEBUG_ENABLED Turn on/off appsflyer debug mode (Android only) string false (off)
APPS_FLYER_APP_ID Set App ID for Apps Flyer reporting. See Reporting to AppsFlyer for usage string n/a
BBC_GATEWAY_ENABLED Turn on/off BBC Activity Gateway reporting string true
BBC_GATEWAY_AV_REPORTING_ENABLED Set TRUE for enabling AppsFlyer AV reporting via the BBC Activity Gateway string false
BBC_GATEWAY_URL Enpoint for the BBC Activity Gateway string n/a
ECHO_ENABLED Turn on/off echo reporting string true (on)
ECHO_AUTO_START Turn on/off echo auto-start string true (on)
ECHO_TRACE Set a unique string for testing string n/a
ECHO_DEVICE_ID Set a device ID (s1 cookie ignored in DAx) string n/a
REPORTING_PROFILE The reporting profile to use string 'PUBLIC_SERVICE'
COMSCORE_ENABLED Turn on/off reporting to ComScore (AKA DAx) string false (off)
COMSCORE_HOST The endpoint to send ComScore events to string 'sa.bbc.co.uk' / 'scorecardresearch.com'
COMSCORE_SITE The comscore site id string 'bbc'
COMSCORE_CUSTOMER_ID The comscore customer id string '16060501'
COMSCORE_PUBLISHER_SECRET The comscore publisher secret string '6b2a1dae06c679702e102b0f2741f180'
BARB_ENABLED Turn on/off reporting to BARB string false (off)
BARB_OFFLINE_MODE (iOS & Android) Turn on/off offline collection. When device reconnects, events stored locally will be sent string true (on)
BARB_SITE_CODE The kantar subdomain to send BARB events to string bbcdotcom (JS) /bbcandroid/bbcios
WEBVIEW_COOKIES_ENABLED Turn on/off setting the s1 cookie for mobile app webviews boolean true (on)
ECHO_CACHE_MODE Set the caching option of offline events string 'never' (JS), 'offline' (mobile)
USE_ESS Enable ESS Enrichment string false (off)
ATI_ENABLED Turn on/off reporting to AT Internet string true (on)
ATI_FORCE_HTTPS Always send ATI stats over HTTPS (deprecated) string true (on)
ATI_FORCE_HTTP Always send ATI stats over HTTP (JS only) string false (off)
ATI_DOMAIN Domain of URL hits (deprecated on JS) string Test: ati-host.net
Live: api.bbc.co.uk
ATI_LOG (iOS, Android) Subdomain of URL hits (deprecated on JS) string Test: logw363
Live: a1
ATI_SSL_LOG (iOS, Android) Subdomain of secured (HTTPS) URL hits (deprecated on JS) string Test: logws1363
Live: a1
ATI_COLLECT_DOMAIN (JS) Data collection domain (on JS instead of ATI_DOMAIN & ATI_LOG) string Test: logw363.ati-host.net
Live: a1.api.bbc.co.uk
ATI_COLLECT_DOMAIN_SSL (JS) Secured data collection domain (on JS instead of ATI_SSL_LOG) string Test: logws1363.ati-host.net
Live: a1.api.bbc.co.uk
DESTINATION The ATI Destination to use string 'DEFAULT'
UKOM_ENABLED Turn on/off reporting to IPSOS string true (on)
UKOM_API_KEY The product-specific, uuid format, API Key (provided by IPSOS) string n/a
  /** Example set up config for EchoClient Class in testing environment**/

  var conf = { };

  // Send ComScore events to ComScore test site
  conf[ConfigKeys.COMSCORE_SITE] = 'test';

  conf[ConfigKeys.BARB_ENABLED] = true;
  conf[ConfigKeys.BARB_SITE_CODE] = "bbcdotcom";

  // Instantiate EchoClient
  var echo = new EchoClient('MyApp', Enums.ApplicationType.WEB, conf); 
  
  HashMap<String, String> config = new HashMap<String, String>();

  config.put(EchoConfigKeys.ECHO_TRACE, "EchoJSTesting-" + Math.random());

  // Send ComScore events to ComScore test site
  config.put(EchoConfigKeys.COMSCORE_HOST, "sa.bbc.co.uk");
  config.put(EchoConfigKeys.COMSCORE_SITE, "test");

  config.put(EchoConfigKeys.BARB_ENABLED, "true");
  config.put(EchoConfigKeys.BARB_SITE_CODE, "bbcandroidtest");

  // Instantiate EchoClient
  EchoClient echo = new EchoClient(
    "MyApp",                    // App Name
    ApplicationType.WEB,        // App type
    "echo.android.test",        // App Countername
    getApplicationContext(),    // The Android Context of your Application
    config,                     // config options HashMap
    bbcUser,                    // BBCUser instance
    this                        // Application instance of your Application
  );      
  
  // Do not set config options in bold below for live apps, they will be set correctly by default
  var config:Dictionary<EchoConfigKey, String> = [
      .echoDebug: "false",
      .echoTrace: "echo_demo_ios",
      .comScoreSite: model.setup_comscoreSiteKey,
      .comScoreEnabled: "true",
      .barbSiteCode: "bbciostest",
      .barbEnabled: "true",
  ]
  do {
      model.echo = try EchoClient(appName: "EchoDemoApp",
                                  appType: .mobileApp,
                                  startCounterName: "bbc.start.page",
                                  config: config,
                                  bbcUser: user)
  } catch {
      // Handle Echo config error
  }
}