Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gregberns/25b4d3aeef340236421dce97a30d4447 to your computer and use it in GitHub Desktop.
Save gregberns/25b4d3aeef340236421dce97a30d4447 to your computer and use it in GitHub Desktop.
X_JS_API_Get_Campaigns_Audiences
/*output is a concatenated string for testing, but feel free to reformat as needed*/
/*campaignID:experimentId:variationId:audienceId:"audience conditions"*/
/*e.g. 7807482864:7807902575:7806347946:6536242902:"and,or,or,{"value":"iphone","type":"device","name":null,"match":null}",7807482864:7807902575:7806347946:9436482444:"and,or,or,{"value":"00:00_23:59_friday","type":"time_and_day","name":null,"match":null}"*/
/*this code only includes audiences for which the visitor actually qualified*/
var state = window.optimizely.get && window.optimizely.get('state');
var data = window.optimizely.get && window.optimizely.get('data');
(function getCurrentActiveAll(e) {
if ('undefined' !== typeof window.optimizely) {
var all_campaigns = data.campaigns,
variation_map = state.getVariationMap(),
campaign_states = state.getCampaignStates(),
logStringList = [];
for (experiment_id in variation_map) {
try {
for (campaign_id in campaign_states) {
if (typeof campaign_states[campaign_id].experiment !== 'undefined' &&
campaign_states[campaign_id].isInCampaignHoldback === false &&
campaign_states[campaign_id].experiment.id == experiment_id) {
var all_audiences = campaign_states[campaign_id].audiences,
audience_ids = all_campaigns[campaign_id].experiments[0].audienceIds;
for (audience in all_audiences) {
for (audience_id in audience_ids) {
if (audience_ids[audience_id] != 'or' &&
audience_ids[audience_id] != 'and' &&
audience_ids[audience_id] != 'not' &&
all_audiences[audience].id == audience_ids[audience_id]) {
var audience_conditions = '"' +
data.audiences[audience_ids[audience_id]].conditions[0] +
',' +
data.audiences[audience_ids[audience_id]].conditions[1][0] +
',' +
data.audiences[audience_ids[audience_id]].conditions[1][1][0] +
',' + JSON.stringify(
data.audiences[audience_ids[audience_id]].conditions[1][1][1]) +
'"';
var logString = campaign_id + ':' + experiment_id + ':' +
campaign_states[campaign_id].variation.id + ':' +
audience_ids[audience_id] + ':' + audience_conditions;
logStringList.push(logString);
}
}
}
}
}
} catch (err) {
// error handling
}
}
}
console.log(logStringList.join());
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment