/** * * @return \Zend\View\Model\ViewModel */ public function editlineitemAction() { $id = $this->getEvent()->getRouteMatch()->getParam('param1'); if ($id == null) { die("Invalid Banner ID"); } $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $is_preview = $this->getRequest()->getQuery('ispreview'); // verify if ($is_preview == "true") { $is_preview = \transformation\TransformPreview::doesPreviewBannerExist($id, $this->auth); } $banner_preview_id = ""; if ($is_preview == true) { // ACL PREVIEW PERMISSIONS CHECK transformation\CheckPermissions::checkEditPermissionInsertionOrderLineItemPreview($id, $this->auth, $this->config_handle); $InsertionOrderLineItemVideoRestrictionsPreviewFactory = \_factory\InsertionOrderLineItemVideoRestrictionsPreview::get_instance(); $params = array(); $params["InsertionOrderLineItemPreviewID"] = $id; $InsertionOrderLineItemVideoRestrictions = $InsertionOrderLineItemVideoRestrictionsPreviewFactory->get_row($params); $InsertionOrderLineItemPreviewFactory = \_factory\InsertionOrderLineItemPreview::get_instance(); $params = array(); $params["Active"] = 1; $params["InsertionOrderLineItemPreviewID"] = $id; $banner_preview_id = $id; $InsertionOrderLineItem = $InsertionOrderLineItemPreviewFactory->get_row($params); $PmpDealPublisherWebsiteToInsertionOrderLineItemPreviewFactory = \_factory\PmpDealPublisherWebsiteToInsertionOrderLineItemPreview::get_instance(); $params = array(); $params["InsertionOrderLineItemPreviewID"] = $banner_preview_id; $PmpDealPublisherWebsiteToInsertionOrderLineItemList = $PmpDealPublisherWebsiteToInsertionOrderLineItemPreviewFactory->get($params); $SspRtbChannelToInsertionOrderLineItemPreviewFactory = \_factory\SspRtbChannelToInsertionOrderLineItemPreview::get_instance(); $params = array(); $params["InsertionOrderLineItemPreviewID"] = $banner_preview_id; $SspRtbChannelToInsertionOrderLineItemList = $SspRtbChannelToInsertionOrderLineItemPreviewFactory->get($params); } else { // ACL PERMISSIONS CHECK transformation\CheckPermissions::checkEditPermissionInsertionOrderLineItem($id, $this->auth, $this->config_handle); $InsertionOrderLineItemVideoRestrictionsFactory = \_factory\InsertionOrderLineItemVideoRestrictions::get_instance(); $params = array(); $params["InsertionOrderLineItemID"] = $id; $InsertionOrderLineItemVideoRestrictions = $InsertionOrderLineItemVideoRestrictionsFactory->get_row($params); $InsertionOrderLineItemFactory = \_factory\InsertionOrderLineItem::get_instance(); $params = array(); $params["Active"] = 1; $params["InsertionOrderLineItemID"] = $id; $InsertionOrderLineItem = $InsertionOrderLineItemFactory->get_row($params); $PmpDealPublisherWebsiteToInsertionOrderLineItemFactory = \_factory\PmpDealPublisherWebsiteToInsertionOrderLineItem::get_instance(); $params = array(); $params["InsertionOrderLineItemID"] = $id; $PmpDealPublisherWebsiteToInsertionOrderLineItemList = $PmpDealPublisherWebsiteToInsertionOrderLineItemFactory->get($params); $SspRtbChannelToInsertionOrderLineItemFactory = \_factory\SspRtbChannelToInsertionOrderLineItem::get_instance(); $params = array(); $params["InsertionOrderLineItemID"] = $id; $SspRtbChannelToInsertionOrderLineItemList = $SspRtbChannelToInsertionOrderLineItemFactory->get($params); } if ($InsertionOrderLineItem == null) { die("Invalid {$InsertionOrderLineItem} ID"); } $campaignid = isset($InsertionOrderLineItem->InsertionOrderID) ? $InsertionOrderLineItem->InsertionOrderID : ""; $bannerid = isset($InsertionOrderLineItem->InsertionOrderLineItemID) ? $InsertionOrderLineItem->InsertionOrderLineItemID : ""; $campaignpreviewid = isset($InsertionOrderLineItem->InsertionOrderPreviewID) ? $InsertionOrderLineItem->InsertionOrderPreviewID : ""; $bannerpreviewid = isset($InsertionOrderLineItem->InsertionOrderLineItemPreviewID) ? $InsertionOrderLineItem->InsertionOrderLineItemPreviewID : ""; $bannername = $InsertionOrderLineItem->Name; $startdate = date('m/d/Y', strtotime($InsertionOrderLineItem->StartDate)); $enddate = date('m/d/Y', strtotime($InsertionOrderLineItem->EndDate)); $current_mobile = $InsertionOrderLineItem->IsMobile; if ($InsertionOrderLineItem->IsMobile == 2) { $size_list = \util\BannerOptions::$iab_mobile_tablet_banner_options; } elseif ($InsertionOrderLineItem->IsMobile > 0) { $size_list = \util\BannerOptions::$iab_mobile_phone_banner_options; } else { $size_list = \util\BannerOptions::$iab_banner_options; } $height = $InsertionOrderLineItem->Height; $width = $InsertionOrderLineItem->Width; $weight = $InsertionOrderLineItem->Weight; $bidamount = $InsertionOrderLineItem->BidAmount; $adtag = $InsertionOrderLineItem->AdTag; $landingpagetld = $InsertionOrderLineItem->LandingPageTLD; $current_iabsize = $InsertionOrderLineItem->IABSize; $ImpressionType = $InsertionOrderLineItem->ImpressionType; if ($ImpressionType == 'image') { preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $adtag, $matches); if (!isset($matches[1])) { die("Required Field: <img src= attribute was missing"); } preg_match('/href=[\'"]?([^\\s\\>\'"]*)[\'"\\>]/', $adtag, $matches); if (!isset($matches[1])) { die("Required Field: <a href= attribute was missing"); } } $current_mimes = array(); $current_apis_supported = array(); $current_protocols = array(); $current_delivery_methods = array(); $current_playback_methods = array(); $current_start_delay = ""; $current_linearity = ""; $impression_type = "banner"; if ($InsertionOrderLineItemVideoRestrictions != null) { $current_mimes_raw = $InsertionOrderLineItemVideoRestrictions->MimesCommaSeparated; $current_apis_supported_raw = $InsertionOrderLineItemVideoRestrictions->ApisSupportedCommaSeparated; $current_protocols_raw = $InsertionOrderLineItemVideoRestrictions->ProtocolsCommaSeparated; $current_delivery_methods_raw = $InsertionOrderLineItemVideoRestrictions->DeliveryCommaSeparated; $current_playback_methods_raw = $InsertionOrderLineItemVideoRestrictions->PlaybackCommaSeparated; $current_start_delay = $InsertionOrderLineItemVideoRestrictions->StartDelay; $current_linearity = $InsertionOrderLineItemVideoRestrictions->Linearity; $current_mimes = array(); if ($current_mimes_raw) { $current_mimes = explode(',', $current_mimes_raw); } $current_apis_supported = array(); if ($current_apis_supported_raw) { $current_apis_supported = explode(',', $current_apis_supported_raw); } $current_protocols = array(); if ($current_protocols_raw) { $current_protocols = explode(',', $current_protocols_raw); } $current_delivery_methods = array(); if ($current_delivery_methods_raw) { $current_delivery_methods = explode(',', $current_delivery_methods_raw); } $current_playback_methods = array(); if ($current_playback_methods_raw) { $current_playback_methods = explode(',', $current_playback_methods_raw); } } $is_vast_url = \util\ParseHelper::isVastURL($adtag); $vast_type = $is_vast_url == true ? "url" : "xml"; $imageurl = ""; $landingpageurl = ""; if ($ImpressionType == "image") { preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $adtag, $matches); if (isset($matches[1])) { $imageurl = $matches[1]; } preg_match('/href=[\'"]?([^\\s\\>\'"]*)[\'"\\>]/', $adtag, $matches); if (isset($matches[1])) { $landingpageurl = $matches[1]; } } return new ViewModel(array('imageurl' => $imageurl, 'landingpageurl' => $landingpageurl, 'campaignid' => $campaignid, 'bannerid' => $bannerid, 'pmp_deal_list' => $PmpDealPublisherWebsiteToInsertionOrderLineItemList, 'ssp_channel_list' => $SspRtbChannelToInsertionOrderLineItemList, 'campaignpreviewid' => $campaignpreviewid, 'bannerpreviewid' => $bannerpreviewid, 'ispreview' => $is_preview == true ? '1' : '0', 'bannername' => $bannername, 'startdate' => $startdate, 'enddate' => $enddate, 'current_mobile' => $current_mobile, 'mobile_options' => \util\BannerOptions::$mobile_options, 'size_list' => $size_list, 'height' => $height, 'width' => $width, 'weight' => $weight, 'bidamount' => $bidamount, 'adtag' => $adtag, 'vast_type' => $vast_type, 'landingpagetld' => $landingpagetld, 'current_iabsize' => $current_iabsize, 'bread_crumb_info' => $this->getBreadCrumbInfoFromBanner($bannerid, $bannerpreviewid, $is_preview), 'user_id_list' => $this->user_id_list_demand_customer, 'center_class' => 'centerj', 'user_identity' => $this->identity(), 'true_user_name' => $this->auth->getUserName(), 'header_title' => 'Edit Insertion Order', 'is_super_admin' => $this->is_super_admin, 'effective_id' => $this->auth->getEffectiveIdentityID(), 'impersonate_id' => $this->ImpersonateID, 'ImpressionType' => $ImpressionType, 'linearity' => \util\BannerOptions::$linearity, 'start_delay' => \util\BannerOptions::$start_delay, 'playback_methods' => \util\BannerOptions::$playback_methods, 'delivery_methods' => \util\BannerOptions::$delivery_methods, 'apis_supported' => \util\BannerOptions::$apis_supported, 'protocols' => \util\BannerOptions::$protocols, 'mimes' => \util\BannerOptions::$mimes, 'current_mimes' => $current_mimes, 'current_apis_supported' => $current_apis_supported, 'current_protocols' => $current_protocols, 'current_delivery_methods' => $current_delivery_methods, 'current_playback_methods' => $current_playback_methods, 'current_start_delay' => $current_start_delay, 'current_linearity' => $current_linearity, 'impression_type' => $impression_type)); }
private function process_demand_tag($config, $banner_request) { $banner_request_id = intval($banner_request["demand_banner_id"]); if (isset($banner_request["winning_seat"]) && $banner_request["winning_partner_id"]) { $buyer_id = 'local:' . $banner_request["winning_partner_id"] . ':' . $banner_request["winning_seat"]; } else { $buyer_id = $this->getRequest()->getQuery('buyerid'); } $cache_file_dir = $config['delivery']['cache_file_location'] . 'demand/' . date('m.d.Y') . '/' . date('H') . '/' . date('i') . '/'; if (!file_exists($cache_file_dir)) { mkdir($cache_file_dir, 0777, true); } $tag_type = "default"; if (isset($banner_request["dt"]) && $banner_request["dt"]) { $tag_type = trim($banner_request["dt"]); } $cache_file = $cache_file_dir . $banner_request_id . "." . $tag_type . ".zone.txt"; $InsertionOrderLineItemFactory = \_factory\InsertionOrderLineItem::get_instance(); $params = array(); $params["InsertionOrderLineItemID"] = $banner_request_id; $InsertionOrderLineItem = $InsertionOrderLineItemFactory->get_row_cached($config, $params); if ($InsertionOrderLineItem != null) { $banner_impression_cost = $InsertionOrderLineItem->BidAmount; $spend_increase_gross = floatval($banner_impression_cost) / 1000; $spend_increase_net = $spend_increase_gross; $found_second_price = false; if ($banner_request["winbid"] !== null && !empty($banner_request["winbid"])) { $decrypted_second_price = $this->decrypt_second_price($banner_request["winbid"]); if (floatval($decrypted_second_price)) { $spend_increase_net = floatval($decrypted_second_price) / 1000; $found_second_price = true; } } if ($found_second_price === false) { /* * We already marked down this demand customer's bid when we sent it to the DSP * So at this point we have to get the original bid price set by the demand user * in the demand dashboard and set it to the gross cost for the demand customer. * If we got a second price URL Macro parameter from the DSP, then we are finished. * We set the second price to the net price for the impression. * Otherwise we have to calculate the markup on the demand dashboard bid again * and get the net impression price that way. * * Remember that the RTB bid price sent to the DSP was already marked down by the markup * price in class RtbBuyV22Workflow: * Line 544: $adusted_amount = floatval($InsertionOrderLineItem->BidAmount) - floatval($mark_down); */ $InsertionOrderFactory = \_factory\InsertionOrder::get_instance(); $params = array(); $params["InsertionOrderID"] = $InsertionOrderLineItem->InsertionOrderID; $InsertionOrder = $InsertionOrderFactory->get_row_cached($config, $params); $markup_rate = \util\Markup::getMarkupRate($InsertionOrder, $config); $mark_down = floatval($spend_increase_gross) * floatval($markup_rate); $spend_increase_net = floatval($spend_increase_gross) - floatval($mark_down); } $InsertionOrderLineItemFactory->incrementInsertionOrderLineItemImpressionsCounterAndSpendCached($config, $buyer_id, $banner_request_id, $spend_increase_gross, $spend_increase_net); $InsertionOrderLineItemFactory->incrementBuySideHourlyImpressionsByTLDCached($config, $banner_request_id, $banner_request["tld"]); $is_video_impression = false; if (isset($banner_request["ImpressionType"]) && $banner_request["ImpressionType"] == 'video' || isset($banner_request["video"]) && $banner_request["video"] == 'vast') { $is_video_impression = true; } /* * Video can not be cached */ if (file_exists($cache_file) && $is_video_impression === false) { $cached_tag = file_get_contents($cache_file); if ($banner_request["dt"] == "in") { $this->ad_macros_to_adtag($cached_tag, $banner_request); header("Content-type: application/javascript"); } else { $this->ad_macros_to_adtag($cached_tag, $banner_request); } echo $cached_tag; exit; } $tag_cachable = true; if ($is_video_impression === true) { $adtag = $InsertionOrderLineItem->AdTag; if (\util\ParseHelper::isVastURL($adtag) === true) { $tracker_url = ""; if (isset($banner_request["tracker_url"])) { $tracker_url = $banner_request["tracker_url"]; } $output = $this->get_vast_wrapper_xml($config, $adtag, $tracker_url); $tag_cachable = false; } else { $output = $adtag; } header("Content-type: text/xml"); } elseif ($banner_request["dt"] == "in") { header("Content-type: application/javascript"); $output = "document.write(" . json_encode($InsertionOrderLineItem->AdTag) . ");"; } else { $output = "<!DOCTYPE html>\n<html><head></head><body style=\"margin: 0px; padding: 0px;\">" . $InsertionOrderLineItem->AdTag . "\r\n\r\n</body></html>"; } if ($tag_cachable === true) { $fh = fopen($cache_file, "w"); fwrite($fh, $output); fclose($fh); } if ($is_video_impression === false) { $this->ad_macros_to_adtag($output, $banner_request); } echo $output; exit; } echo "NGINAD"; exit; }
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; }
/** * * @return \Zend\View\Model\ViewModel */ public function editbannerAction() { $id = $this->getEvent()->getRouteMatch()->getParam('param1'); if ($id == null) { die("Invalid Banner ID"); } $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $is_preview = $this->getRequest()->getQuery('ispreview'); // verify if ($is_preview == "true") { $is_preview = \transformation\TransformPreview::doesPreviewBannerExist($id, $this->auth); } $banner_preview_id = ""; if ($is_preview == true) { // ACL PREVIEW PERMISSIONS CHECK transformation\CheckPermissions::checkEditPermissionAdCampaignBannerPreview($id, $this->auth, $this->config_handle); $AdCampaignVideoRestrictionsPreviewFactory = \_factory\AdCampaignVideoRestrictionsPreview::get_instance(); $params = array(); $params["AdCampaignBannerPreviewID"] = $id; $AdCampaignVideoRestrictions = $AdCampaignVideoRestrictionsPreviewFactory->get_row($params); $AdCampaignBannerPreviewFactory = \_factory\AdCampaignBannerPreview::get_instance(); $params = array(); $params["Active"] = 1; $params["AdCampaignBannerPreviewID"] = $id; $banner_preview_id = $id; $AdCampaignBanner = $AdCampaignBannerPreviewFactory->get_row($params); } else { // ACL PERMISSIONS CHECK transformation\CheckPermissions::checkEditPermissionAdCampaignBanner($id, $this->auth, $this->config_handle); $AdCampaignVideoRestrictionsFactory = \_factory\AdCampaignVideoRestrictions::get_instance(); $params = array(); $params["AdCampaignBannerID"] = $id; $AdCampaignVideoRestrictions = $AdCampaignVideoRestrictionsFactory->get_row($params); $AdCampaignBannerFactory = \_factory\AdCampaignBanner::get_instance(); $params = array(); $params["Active"] = 1; $params["AdCampaignBannerID"] = $id; $AdCampaignBanner = $AdCampaignBannerFactory->get_row($params); } if ($AdCampaignBanner == null) { die("Invalid {$AdCampaignBanner} ID"); } $campaignid = isset($AdCampaignBanner->AdCampaignID) ? $AdCampaignBanner->AdCampaignID : ""; $bannerid = isset($AdCampaignBanner->AdCampaignBannerID) ? $AdCampaignBanner->AdCampaignBannerID : ""; $campaignpreviewid = isset($AdCampaignBanner->AdCampaignPreviewID) ? $AdCampaignBanner->AdCampaignPreviewID : ""; $bannerpreviewid = isset($AdCampaignBanner->AdCampaignBannerPreviewID) ? $AdCampaignBanner->AdCampaignBannerPreviewID : ""; $bannername = $AdCampaignBanner->Name; $startdate = date('m/d/Y', strtotime($AdCampaignBanner->StartDate)); $enddate = date('m/d/Y', strtotime($AdCampaignBanner->EndDate)); $current_adcampaigntype = $AdCampaignBanner->AdCampaignTypeID; $current_mobile = $AdCampaignBanner->IsMobile; if ($AdCampaignBanner->IsMobile == 2) { $size_list = \util\BannerOptions::$iab_mobile_tablet_banner_options; } elseif ($AdCampaignBanner->IsMobile > 0) { $size_list = \util\BannerOptions::$iab_mobile_phone_banner_options; } else { $size_list = \util\BannerOptions::$iab_banner_options; } $height = $AdCampaignBanner->Height; $width = $AdCampaignBanner->Width; $weight = $AdCampaignBanner->Weight; $bidamount = $AdCampaignBanner->BidAmount; $adtag = $AdCampaignBanner->AdTag; $landingpagetld = $AdCampaignBanner->LandingPageTLD; $current_iabsize = $AdCampaignBanner->IABSize; $ImpressionType = $AdCampaignBanner->ImpressionType; $current_mimes = array(); $current_apis_supported = array(); $current_protocols = array(); $current_delivery_methods = array(); $current_playback_methods = array(); $current_start_delay = ""; $current_linearity = ""; $impression_type = "banner"; if ($AdCampaignVideoRestrictions != null) { $current_mimes_raw = $AdCampaignVideoRestrictions->MimesCommaSeparated; $current_apis_supported_raw = $AdCampaignVideoRestrictions->ApisSupportedCommaSeparated; $current_protocols_raw = $AdCampaignVideoRestrictions->ProtocolsCommaSeparated; $current_delivery_methods_raw = $AdCampaignVideoRestrictions->DeliveryCommaSeparated; $current_playback_methods_raw = $AdCampaignVideoRestrictions->PlaybackCommaSeparated; $current_start_delay = $AdCampaignVideoRestrictions->StartDelay; $current_linearity = $AdCampaignVideoRestrictions->Linearity; $current_mimes = array(); if ($current_mimes_raw) { $current_mimes = explode(',', $current_mimes_raw); } $current_apis_supported = array(); if ($current_apis_supported_raw) { $current_apis_supported = explode(',', $current_apis_supported_raw); } $current_protocols = array(); if ($current_protocols_raw) { $current_protocols = explode(',', $current_protocols_raw); } $current_delivery_methods = array(); if ($current_delivery_methods_raw) { $current_delivery_methods = explode(',', $current_delivery_methods_raw); } $current_playback_methods = array(); if ($current_playback_methods_raw) { $current_playback_methods = explode(',', $current_playback_methods_raw); } } $is_vast_url = \util\ParseHelper::isVastURL($adtag); $vast_type = $is_vast_url == true ? "url" : "xml"; return new ViewModel(array('campaignid' => $campaignid, 'bannerid' => $bannerid, 'campaignpreviewid' => $campaignpreviewid, 'bannerpreviewid' => $bannerpreviewid, 'ispreview' => $is_preview == true ? '1' : '0', 'bannername' => $bannername, 'startdate' => $startdate, 'enddate' => $enddate, 'current_adcampaigntype' => $current_adcampaigntype, 'adcampaigntype_options' => $this->getAdCampaignTypeOptions(), 'current_mobile' => $current_mobile, 'mobile_options' => \util\BannerOptions::$mobile_options, 'size_list' => $size_list, 'height' => $height, 'width' => $width, 'weight' => $weight, 'bidamount' => $bidamount, 'adtag' => $adtag, 'vast_type' => $vast_type, 'landingpagetld' => $landingpagetld, 'current_iabsize' => $current_iabsize, 'bread_crumb_info' => $this->getBreadCrumbInfoFromBanner($bannerid, $bannerpreviewid, $is_preview), 'user_id_list' => $this->user_id_list_demand_customer, 'center_class' => 'centerj', 'user_identity' => $this->identity(), 'true_user_name' => $this->auth->getUserName(), 'header_title' => 'Edit Ad Campaign Banner', 'is_admin' => $this->is_admin, 'effective_id' => $this->auth->getEffectiveIdentityID(), 'impersonate_id' => $this->ImpersonateID, 'ImpressionType' => $ImpressionType, 'linearity' => \util\BannerOptions::$linearity, 'start_delay' => \util\BannerOptions::$start_delay, 'playback_methods' => \util\BannerOptions::$playback_methods, 'delivery_methods' => \util\BannerOptions::$delivery_methods, 'apis_supported' => \util\BannerOptions::$apis_supported, 'protocols' => \util\BannerOptions::$protocols, 'mimes' => \util\BannerOptions::$mimes, 'current_mimes' => $current_mimes, 'current_apis_supported' => $current_apis_supported, 'current_protocols' => $current_protocols, 'current_delivery_methods' => $current_delivery_methods, 'current_playback_methods' => $current_playback_methods, 'current_start_delay' => $current_start_delay, 'current_linearity' => $current_linearity, 'impression_type' => $impression_type)); }