packages/optimizely-sdk/lib/core/event_builder/index.js
function(options) {
    var impressionEvent = {
      httpVerb: HTTP_VERB
    };

    var commonParams = getCommonEventParams(options);
    impressionEvent.url = ENDPOINT;

    var impressionEventParams = getImpressionEventParams(options.configObj, options.experimentId, options.variationId);
    // combine Event params into visitor obj
    commonParams.visitors[0].snapshots.push(impressionEventParams);

    impressionEvent.params = commonParams;

    return impressionEvent;
  }
function(options) {
    var impressionEvent = {
      httpVerb: HTTP_VERB
    };

    var commonParams = getCommonEventParams(options);
    impressionEvent.url = ENDPOINT;

    var impressionEventParams = getImpressionEventParams(options.configObj, options.experimentId, options.variationId);
    // combine Event params into visitor obj
    commonParams.visitors[0].snapshots.push(impressionEventParams);

    impressionEvent.params = commonParams;

    return impressionEvent;
  }
function ( options ) { var impressionEvent = { httpVerb : HTTP_VERB } ; var commonParams = getCommonEventParams ( options ) ; impressionEvent . url = ENDPOINT ; var impressionEventParams = getImpressionEventParams ( options . configObj , options . experimentId , options . variationId ) ; // combine Event params into visitor obj commonParams . visitors [ 0 ] . snapshots . push ( impressionEventParams ) ; impressionEvent . params = commonParams ; return impressionEvent ; }
Create impression event params to be sent to the logging endpoint
@param  {Object} options               Object containing values needed to build impression event
@param  {Object} options.attributes    Object representing user attributes and values which need to be recorded
@param  {string} options.clientEngine  The client we are using: node or javascript
@param  {string} options.clientVersion The version of the client
@param  {Object} options.configObj     Object representing project configuration, including datafile information and mappings for quick lookup
@param  {string} options.experimentId  Experiment for which impression needs to be recorded
@param  {string} options.userId        ID for user
@param  {string} options.variationId   ID for variation which would be presented to user
@return {Object}                       Params to be used in impression event logging endpoint call
Create impression event params to be sent to the logging endpoint