public function bidAction() { \buyloopbackpartner\LoopbackPartnerInit::init(); $real_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ""; foreach ($this->ban_ips as $ban_ip) { if (strpos($real_ip, $ban_ip) !== false) { $this->indexAction(); } } $config = $this->getServiceLocator()->get('Config'); $application_config = $this->getServiceLocator()->get('ApplicationConfig'); $rtb_seat_id = isset($application_config['rtb_seat_id']) ? $application_config['rtb_seat_id'] : null; $response_seat_id = isset($application_config['response_seat_id']) ? $application_config['response_seat_id'] : null; $request_id = "Not Given"; try { $LoopbackPartnerBid = new \buyloopbackpartner\LoopbackPartnerBid($config, $rtb_seat_id, $response_seat_id); $LoopbackPartnerBid->is_local_request = false; $validated = $LoopbackPartnerBid->parse_incoming_request(); if ($validated === true) { $request_id = $LoopbackPartnerBid->RtbBidRequest->id; $LoopbackPartnerBid->process_business_logic(); } $LoopbackPartnerBid->convert_ads_to_bid_response(); $LoopbackPartnerBid->build_outgoing_bid_response(); $LoopbackPartnerBid->send_bid_response(); if ($LoopbackPartnerBid->had_bid_response == true || \buyloopbackpartner\LoopbackPartnerLogger::get_instance()->setting_only_log_bids == false) { \buyloopbackpartner\LoopbackPartnerLogger::get_instance()->output_log(); } } catch (Exception $e) { \buyloopbackpartner\LoopbackPartnerLogger::get_instance()->log[] = "BID EXCEPTION: ID: " . $request_id . " MESSAGE: " . $e->getMessage(); header("Content-type: application/json"); echo '{"seatbid":[{"bid":[{"price":0}]}],"nbr":2}'; } if (\buyloopbackpartner\LoopbackPartnerLogger::get_instance()->setting_only_log_bids == false) { \buyloopbackpartner\LoopbackPartnerLogger::get_instance()->output_log(); } exit; }