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
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
}
}