public function process_rtb_ping_statistics(&$AuctionPopo) { /* * COLLECT STATS FOR THE BID LOGS */ $bids_total = 0; $bids_won = 0; $bids_lost = 0; $bid_errors = 0; $spend_total_gross = 0; $spend_total_private_exchange_gross = 0; $spend_total_net = 0; $error_list = array(); foreach ($this->RTBPingerList as $RTBPinger) { $SellSidePartnerHourlyBids = new \model\SellSidePartnerHourlyBids(); $SellSidePartnerHourlyBids->SellSidePartnerID = $RTBPinger->partner_id; $SellSidePartnerHourlyBids->PublisherAdZoneID = $this->PublisherAdZoneID; $SellSidePartnerHourlyBids->BidsWonCounter = 0; $SellSidePartnerHourlyBids->BidsLostCounter = 0; $SellSidePartnerHourlyBids->BidsErrorCounter = 0; $SellSidePartnerHourlyBids->SpendTotalGross = 0; $SellSidePartnerHourlyBids->SpendTotalPrivateExchangeGross = 0; $SellSidePartnerHourlyBids->SpendTotalNet = 0; if ($RTBPinger->ping_success == true) { $bids_total += $RTBPinger->total_bids; if ($RTBPinger->won_auction === true) { $bids_won += $RTBPinger->won_bids; $bids_lost += $RTBPinger->lost_bids; $SellSidePartnerHourlyBids->BidsWonCounter = $RTBPinger->won_bids; if ($AuctionPopo->is_second_price_auction === true) { $SellSidePartnerHourlyBids->SpendTotalGross = floatval($AuctionPopo->second_price_winning_bid_price) / 1000; $SellSidePartnerHourlyBids->SpendTotalPrivateExchangeGross = floatval($AuctionPopo->second_price_winning_adjusted_amount_before_private_exchange_markup_bid_price) / 1000; } else { $SellSidePartnerHourlyBids->SpendTotalGross = floatval($RTBPinger->winning_bid) / 1000; $SellSidePartnerHourlyBids->SpendTotalPrivateExchangeGross = floatval($RTBPinger->winning_amount_before_private_exchange_markup_bid) / 1000; } $spend_total_gross = $SellSidePartnerHourlyBids->SpendTotalGross; $spend_total_private_exchange_gross = $SellSidePartnerHourlyBids->SpendTotalPrivateExchangeGross; // Subtract Global Ad Exchange Publisher markup $mark_down = floatval($SellSidePartnerHourlyBids->SpendTotalGross) * floatval($this->publisher_markup_rate); $adusted_amount_before_private_exchange_markup = floatval($SellSidePartnerHourlyBids->SpendTotalGross) - floatval($mark_down); $SellSidePartnerHourlyBids->SpendTotalPrivateExchangeGross = $adusted_amount_before_private_exchange_markup; $spend_total_private_exchange_gross = $SellSidePartnerHourlyBids->SpendTotalPrivateExchangeGross; // Subtract Private Ad Exchange Publisher markup $mark_down_private_exchange = floatval($SellSidePartnerHourlyBids->SpendTotalPrivateExchangeGross) * floatval($this->private_exchange_publisher_markup_rate); $adusted_amount = floatval($adusted_amount_before_private_exchange_markup) - floatval($mark_down_private_exchange); $SellSidePartnerHourlyBids->SpendTotalNet = $adusted_amount; $spend_total_net = $SellSidePartnerHourlyBids->SpendTotalNet; } else { $bids_lost += $RTBPinger->lost_bids; $SellSidePartnerHourlyBids->BidsLostCounter = $RTBPinger->lost_bids; } } else { $bid_errors++; $SellSidePartnerHourlyBids->BidsErrorCounter = 1; $error_list[] = "PartnerID: " . $RTBPinger->partner_id . " Error Message: " . $RTBPinger->ping_error_message; } \util\CachedStatsWrites::incrementSellSideBidsCounterCached($this->config, $SellSidePartnerHourlyBids); } $PublisherHourlyBids = new \model\PublisherHourlyBids(); $PublisherHourlyBids->PublisherAdZoneID = $this->PublisherAdZoneID; $PublisherHourlyBids->AuctionCounter = 1; $PublisherHourlyBids->BidsWonCounter = $bids_won; $PublisherHourlyBids->BidsLostCounter = $bids_lost; $PublisherHourlyBids->BidsErrorCounter = $bid_errors; $PublisherHourlyBids->SpendTotalGross = $spend_total_gross; $PublisherHourlyBids->SpendTotalPrivateExchangeGross = $spend_total_private_exchange_gross; $PublisherHourlyBids->SpendTotalNet = $spend_total_net; if ($AuctionPopo->ImpressionType == "video" && $AuctionPopo->auction_was_won && \util\ParseHelper::isVastURL($AuctionPopo->winning_ad_tag) === true) { /* * If this is a video impression record the winning auction * information when the VASTAdTagURI is loaded from the * publisher's video player. */ $PublisherHourlyBidsCopy = new \model\PublisherHourlyBids(); $PublisherHourlyBidsCopy->PublisherAdZoneID = $this->PublisherAdZoneID; $PublisherHourlyBidsCopy->AuctionCounter = 0; $PublisherHourlyBidsCopy->BidsWonCounter = 1; $PublisherHourlyBidsCopy->BidsLostCounter = 0; $PublisherHourlyBidsCopy->BidsErrorCounter = 0; $PublisherHourlyBidsCopy->SpendTotalGross = $spend_total_gross; $PublisherHourlyBidsCopy->SpendTotalPrivateExchangeGross = $spend_total_private_exchange_gross; $PublisherHourlyBidsCopy->SpendTotalNet = $spend_total_net; $AuctionPopo->vast_publisher_imp_obj = $PublisherHourlyBidsCopy; /* * Record the general impression auction information here now. */ $PublisherHourlyBids->BidsWonCounter = 0; $PublisherHourlyBids->SpendTotalGross = 0; $PublisherHourlyBids->SpendTotalPrivateExchangeGross = 0; $PublisherHourlyBids->SpendTotalNet = 0; } \util\CachedStatsWrites::incrementPublisherBidsCounterCached($this->config, $PublisherHourlyBids); $log_header = "----------------------------------------------------------------\n"; $log_header .= "NEW BID RESPONSE, WEBSITE: " . $this->WebDomain . ", PubZoneID: " . $this->PublisherAdZoneID . ", AD: " . $this->AdName; \rtbsellv22\RtbSellV22Logger::get_instance()->log[] = $log_header; $log_header = "NEW BID RESPONSE, WEBSITE: " . $this->WebDomain . ", PubZoneID: " . $this->PublisherAdZoneID . ", AD: " . $this->AdName; \rtbsellv22\RtbSellV22Logger::get_instance()->min_log[] = $log_header; $log = "----------------------------------------------------------------"; $log .= "\nDate: " . date('m-d-Y H:i:s'); $log .= "\nTotal Bids: " . $bids_total; $log .= "\nBids Won: " . $bids_won; $log .= "\nBids Lost: " . $bids_lost; $log .= "\nBid Errors: " . $bid_errors; $log .= "\nError List: " . implode(",", $error_list); foreach ($this->skipped_partner_list as $skipped_partner) { $log .= "\nSkipped Partner: " . $skipped_partner; } $log .= "\n----------------------------------------------------------------\n"; \rtbsellv22\RtbSellV22Logger::get_instance()->log[] = $log; \rtbsellv22\RtbSellV22Logger::get_instance()->min_log[] = $log; }
public function process_rtb_ping_statistics() { /* * COLLECT STATS FOR THE BID LOGS */ $bids_total = 0; $bids_won = 0; $bids_lost = 0; $bid_errors = 0; $error_list = array(); foreach ($this->RTBPingerList as $RTBPinger) { $SellSidePartnerHourlyBids = new \model\SellSidePartnerHourlyBids(); $SellSidePartnerHourlyBids->SellSidePartnerID = $RTBPinger->partner_id; $SellSidePartnerHourlyBids->PublisherAdZoneID = $this->PublisherAdZoneID; $SellSidePartnerHourlyBids->BidsWonCounter = 0; $SellSidePartnerHourlyBids->BidsLostCounter = 0; $SellSidePartnerHourlyBids->BidsErrorCounter = 0; $SellSidePartnerHourlyBids->SpendTotalGross = 0; $SellSidePartnerHourlyBids->SpendTotalNet = 0; if ($RTBPinger->ping_success == true) { $bids_total++; if ($RTBPinger->won_auction === true) { $bids_won = 1; $SellSidePartnerHourlyBids->BidsWonCounter = 1; $SellSidePartnerHourlyBids->SpendTotalGross = floatval($RTBPinger->winning_bid) / 1000; // Subtract Ad Exchange Publisher markup $mark_down = floatval($SellSidePartnerHourlyBids->SpendTotalGross) * floatval($this->publisher_markup_rate); $adusted_amount = floatval($SellSidePartnerHourlyBids->SpendTotalGross) - floatval($mark_down); $SellSidePartnerHourlyBids->SpendTotalNet = $adusted_amount; } else { $bids_lost++; $SellSidePartnerHourlyBids->BidsLostCounter = 1; } } else { $bid_errors++; $SellSidePartnerHourlyBids->BidsErrorCounter = 1; $error_list[] = "PartnerID: " . $RTBPinger->partner_id . " Error Message: " . $RTBPinger->ping_error_message; } \util\CachedStatsWrites::incrementSellSideBidsCounterCached($this->config, $SellSidePartnerHourlyBids); } $log_header = "----------------------------------------------------------------\n"; $log_header .= "NEW BID RESPONSE, WEBSITE: " . $this->WebDomain . ", PubZoneID: " . $this->PublisherAdZoneID . ", AD: " . $this->AdName; \rtbsellv22\RtbSellV22Logger::get_instance()->log[] = $log_header; $log_header = "NEW BID RESPONSE, WEBSITE: " . $this->WebDomain . ", PubZoneID: " . $this->PublisherAdZoneID . ", AD: " . $this->AdName; \rtbsellv22\RtbSellV22Logger::get_instance()->min_log[] = $log_header; $log = "----------------------------------------------------------------"; $log .= "\nDate: " . date('m-d-Y H:i:s'); $log .= "\nTotal Bids: " . $bids_total; $log .= "\nBids Won: " . $bids_won; $log .= "\nBids Lost: " . $bids_lost; $log .= "\nBid Errors: " . $bid_errors; $log .= "\nError List: " . implode(",", $error_list); foreach ($this->skipped_partner_list as $skipped_partner) { $log .= "\nSkipped Partner: " . $skipped_partner; } $log .= "\n----------------------------------------------------------------\n"; \rtbsellv22\RtbSellV22Logger::get_instance()->log[] = $log; \rtbsellv22\RtbSellV22Logger::get_instance()->min_log[] = $log; }