src/Placement.js
/**
         * Executes the request for content to fill the placement
         * @param callback
         * @private
         */
Executes the request for content to fill the placement
@param callback
@private
Executes the request for content to fill the placement @param callback @private
_fetchContent(callback) {
            const query = this.getConfig();
            const key = this.config.key;
            if (okanjo.metrics.sid) query.sid = okanjo.metrics.sid;
            query.filters.url_referrer = this.config.url_referrer || window.location.href;
            query.wgid = this.instanceId;
            query.pgid = okanjo.metrics.pageId;
            okanjo.net.request.post(
                `${okanjo.net.getRoute(okanjo.net.routes.ads, null, this.config.sandbox ? 'sandbox' : 'live')}?key=${encodeURIComponent(key)}`,
                query,
                (err, res) => {
                    if (err) {
                        okanjo.report('Failed to retrieve placement content', err, { placement: this });
                        this.setMarkup(''); 
                        this.emit('error', err);
                        callback && callback(err);
                    } else {
                        this._response = res;
                        this.emit('data');
                        callback && callback();
                    }
                }
            );
        }
_fetchContent ( callback ) { const query = this . getConfig ( ) ; const key = this . config . key ; if ( okanjo . metrics . sid ) query . sid = okanjo . metrics . sid ; query . filters . url_referrer = this . config . url_referrer || window . location . href ; query . wgid = this . instanceId ; query . pgid = okanjo . metrics . pageId ; okanjo . net . request . post ( ` ${ okanjo . net . getRoute ( okanjo . net . routes . ads , null , this . config . sandbox ? 'sandbox' : 'live' ) } ${ encodeURIComponent ( key ) } ` , query , ( err , res ) => { if ( err ) { okanjo . report ( 'Failed to retrieve placement content' , err , { placement : this } ) ; this . setMarkup ( '' ) ; this . emit ( 'error' , err ) ; callback && callback ( err ) ; } else { this . _response = res ; this . emit ( 'data' ) ; callback && callback ( ) ; } } ) ; }
Executes the request for content to fill the placement
 @param callback
 @private
Executes the request for content to fill the placement @param callback @private
// Build request to api, starting with this placement config params // Extract the key // Attach sid and referrer // Send it // Don't show anything // Store the raw response // Hook point for response handling // Return