public function process_business_rules_workflow($logger, $config, $rtb_seat_id, &$no_bid_reason, \model\openrtb\RtbBidRequest &$RtbBidRequest) { $this->config = $config; $this->rtb_seat_id = $rtb_seat_id; // $logger = \rtbbuyv22\RtbBuyV22Logger::get_instance(); $AdCampaignBanner_Match_List = array(); $AdCampaignFactory = \_factory\AdCampaign::get_instance(); $params = array(); $params["Active"] = 1; $AdCampaignList = $AdCampaignFactory->get_cached($this->config, $params); $this->current_time = time(); $AdCampaignBannerFactory = \_factory\AdCampaignBanner::get_instance(); $AdCampaignBannerDomainExclusionFactory = \_factory\AdCampaignBannerDomainExclusion::get_instance(); $AdCampaignBannerExclusiveInclusionFactory = \_factory\AdCampaignBannerDomainExclusiveInclusion::get_instance(); $AdCampaignBannerRestrictionsFactory = \_factory\AdCampaignBannerRestrictions::get_instance(); $AdCampaignVideoRestrictionsFactory = \_factory\AdCampaignVideoRestrictions::get_instance(); // match ip against country code \buyrtb\workflows\tasklets\common\adcampaign\GetGeoCodeCountry::execute($logger, $this, $RtbBidRequest); // Check Ad Fraud if (\buyrtb\workflows\tasklets\common\thirdparty\CheckPublisherScore::execute($logger, $this, $RtbBidRequest) === false) { $no_bid_reason = NOBID_BAD_PUBLISHER; return $AdCampaignBanner_Match_List; } // Check Publisher Score if (\buyrtb\workflows\tasklets\common\thirdparty\CheckAdFraud::execute($logger, $this, $RtbBidRequest) === false) { $no_bid_reason = NOBID_AD_FRAUD; return $AdCampaignBanner_Match_List; } // Check Cookie Match if (\buyrtb\workflows\tasklets\common\thirdparty\CheckCookieMatch::execute($logger, $this, $RtbBidRequest) === false) { $no_bid_reason = NOBID_UNMATCHED_USER; return $AdCampaignBanner_Match_List; } foreach ($AdCampaignList as $AdCampaign) { // Check campaign date if (\buyrtb\workflows\tasklets\common\adcampaign\CheckCampaignDate::execute($logger, $this, $RtbBidRequest, $AdCampaign) === false) { continue; } // Check max spend if (\buyrtb\workflows\tasklets\common\adcampaign\CheckMaxSpend::execute($logger, $this, $RtbBidRequest, $AdCampaign) === false) { continue; } // Check max impressions if (\buyrtb\workflows\tasklets\common\adcampaign\CheckMaxImpressions::execute($logger, $this, $RtbBidRequest, $AdCampaign) === false) { continue; } // get markup rate for ad campaign $markup_rate = \util\Markup::getMarkupRate($AdCampaign, $this->config); // iterate the active banners for this ad campaign $params = array(); $params["AdCampaignID"] = $AdCampaign->AdCampaignID; $params["Active"] = 1; $AdCampaignBannerList = $AdCampaignBannerFactory->get_cached($this->config, $params); foreach ($RtbBidRequest->RtbBidRequestImpList as $RtbBidRequestImp) { foreach ($AdCampaignBannerList as $AdCampaignBanner) { if (empty($RtbBidRequestImp->RtbBidRequestVideo) && $AdCampaignBanner->ImpressionType == 'video' || !empty($RtbBidRequestImp->RtbBidRequestVideo) && $AdCampaignBanner->ImpressionType == 'banner') { continue; } /* * check the business rules against the banner */ // Check banner date if (\buyrtb\workflows\tasklets\common\adcampaignbanner\CheckBannerDate::execute($logger, $this, $RtbBidRequest, $RtbBidRequestImp, $AdCampaignBanner) === false) { continue; } // Check to see if this AdCampaginBanner is associated to a contract zone. if (\buyrtb\workflows\tasklets\common\adcampaignbanner\CheckIsContract::execute($logger, $this, $RtbBidRequest, $RtbBidRequestImp, $AdCampaignBanner) === false) { continue; } // Check banner domain exclusive inclusions if (\buyrtb\workflows\tasklets\common\adcampaignbanner\CheckExclusiveInclusion::execute($logger, $this, $RtbBidRequest, $RtbBidRequestImp, $AdCampaignBanner, $AdCampaignBannerExclusiveInclusionFactory) === false) { continue; } // Check banner domain exclusions match if (\buyrtb\workflows\tasklets\common\adcampaignbanner\CheckDomainExclusion::execute($logger, $this, $RtbBidRequest, $RtbBidRequestImp, $AdCampaignBanner, $AdCampaignBannerDomainExclusionFactory) === false) { continue; } if (!empty($RtbBidRequestImp->RtbBidRequestVideo)) { // Video Workflow $VideoWorkflow = new \buyrtb\workflows\VideoWorkflow(); $passed_child_workflow = $VideoWorkflow->process_business_rules_workflow($logger, $this, $RtbBidRequest, $RtbBidRequestImp, $AdCampaignBanner, $AdCampaignVideoRestrictionsFactory); } else { // Display Banner Workflow - Default $DisplayWorkflow = new \buyrtb\workflows\DisplayWorkflow(); $passed_child_workflow = $DisplayWorkflow->process_business_rules_workflow($logger, $this, $RtbBidRequest, $RtbBidRequestImp, $AdCampaignBanner, $AdCampaignBannerRestrictionsFactory); } if ($passed_child_workflow === false) { continue; } /* * PASSED ALL THE BUSINESS RULES, ADD TO THE RESULTS */ $AdCampaignBannerFactory->incrementAdCampaignBannerBidsCounterCached($this->config, $rtb_seat_id, $AdCampaignBanner->AdCampaignBannerID); /* * Adjust the bid rate according to the markup */ $mark_down = floatval($AdCampaignBanner->BidAmount) * floatval($markup_rate); $adusted_amount = floatval($AdCampaignBanner->BidAmount) - floatval($mark_down); $AdCampaignBanner->BidAmount = sprintf("%1.4f", $adusted_amount); // default in config $currency = $this->config['settings']['rtb']['auction_currency']; if (isset($RtbBidRequest->cur[0])) { $currency = $RtbBidRequest->cur[0]; } $AdCampaignBanner_Match_List[(string) $AdCampaignBanner->UserID][] = array("currency" => $currency, "impid" => $RtbBidRequestImp->id, "AdCampaignBanner" => $AdCampaignBanner); } } } return $AdCampaignBanner_Match_List; }
/** * * @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)); }
public static function cloneAdCampaignIntoAdCampaignPreview($ad_campaign_id, $auth, $config, $mail_transport, $update_data) { $return_val = array(); if ($ad_campaign_id === null) { return null; } $AdCampaignFactory = \_factory\AdCampaign::get_instance(); $params = array(); $params["AdCampaignID"] = $ad_campaign_id; $params["UserID"] = $auth->getEffectiveUserID(); $params["Active"] = 1; $AdCampaign = $AdCampaignFactory->get_row($params); if ($AdCampaign == null) { //die("Invalid AdCampaign ID"); $params["error"] = "Invalid AdCampaign ID"; return $params; } /* * Clone AdCampaign into AdCampaignPreview */ $AdCampaignPreviewFactory = \_factory\AdCampaignPreview::get_instance(); $AdCampaignPreview = new \model\AdCampaignPreview(); $AdCampaignPreview->AdCampaignID = $AdCampaign->AdCampaignID; $AdCampaignPreview->UserID = $AdCampaign->UserID; $AdCampaignPreview->Name = $AdCampaign->Name; $AdCampaignPreview->StartDate = $AdCampaign->StartDate; $AdCampaignPreview->EndDate = $AdCampaign->EndDate; $AdCampaignPreview->Customer = $AdCampaign->Customer; $AdCampaignPreview->CustomerID = $AdCampaign->CustomerID; $AdCampaignPreview->ImpressionsCounter = 0; $AdCampaignPreview->MaxImpressions = $AdCampaign->MaxImpressions; $AdCampaignPreview->CurrentSpend = 0; $AdCampaignPreview->MaxSpend = $AdCampaign->MaxSpend; $AdCampaignPreview->Active = 1; $AdCampaignPreview->DateCreated = date("Y-m-d H:i:s"); $AdCampaignPreview->DateUpdated = date("Y-m-d H:i:s"); $AdCampaignPreview->ChangeWentLive = 0; $AdCampaignPreviewID = $AdCampaignPreviewFactory->saveAdCampaignPreview($AdCampaignPreview); if ($update_data['type'] == 'AdCampaignID') { $return_val = array('AdCampaignPreviewID' => $AdCampaignPreviewID); } $AdCampaignBannerFactory = \_factory\AdCampaignBanner::get_instance(); $params = array(); $params["AdCampaignID"] = $AdCampaign->AdCampaignID; $params["Active"] = 1; $AdCampaignBannerList = $AdCampaignBannerFactory->get($params); $AdCampaignBannerPreviewFactory = \_factory\AdCampaignBannerPreview::get_instance(); $AdCampaignBannerRestrictionsFactory = \_factory\AdCampaignBannerRestrictions::get_instance(); $AdCampaignBannerRestrictionsPreviewFactory = \_factory\AdCampaignBannerRestrictionsPreview::get_instance(); $AdCampaignVideoRestrictionsFactory = \_factory\AdCampaignVideoRestrictions::get_instance(); $AdCampaignVideoRestrictionsPreviewFactory = \_factory\AdCampaignVideoRestrictionsPreview::get_instance(); $LinkedBannerToAdZoneFactory = \_factory\LinkedBannerToAdZone::get_instance(); $LinkedBannerToAdZonePreviewFactory = \_factory\LinkedBannerToAdZonePreview::get_instance(); $AdCampaignBannerDomainExclusionFactory = \_factory\AdCampaignBannerDomainExclusion::get_instance(); $AdCampaignBannerDomainExclusionPreviewFactory = \_factory\AdCampaignBannerDomainExclusionPreview::get_instance(); $AdCampaignBannerDomainExclusiveInclusionFactory = \_factory\AdCampaignBannerDomainExclusiveInclusion::get_instance(); $AdCampaignBannerDomainExclusiveInclusionPreviewFactory = \_factory\AdCampaignBannerDomainExclusiveInclusionPreview::get_instance(); foreach ($AdCampaignBannerList as $AdCampaignBanner) { $banner_id = $AdCampaignBanner->AdCampaignBannerID; $BannerPreview = new \model\AdCampaignBannerPreview(); $BannerPreview->AdCampaignPreviewID = $AdCampaignPreviewID; $BannerPreview->AdCampaignBannerID = $AdCampaignBanner->AdCampaignBannerID; $BannerPreview->UserID = $AdCampaignBanner->UserID; $BannerPreview->Name = $AdCampaignBanner->Name; $BannerPreview->ImpressionType = $AdCampaignBanner->ImpressionType; $BannerPreview->StartDate = $AdCampaignBanner->StartDate; $BannerPreview->EndDate = $AdCampaignBanner->EndDate; $BannerPreview->AdCampaignTypeID = $AdCampaignBanner->AdCampaignTypeID; $BannerPreview->IsMobile = $AdCampaignBanner->IsMobile; $BannerPreview->IABSize = $AdCampaignBanner->IABSize; $BannerPreview->Height = $AdCampaignBanner->Height; $BannerPreview->Width = $AdCampaignBanner->Width; $BannerPreview->Weight = $AdCampaignBanner->Weight; $BannerPreview->BidAmount = $AdCampaignBanner->BidAmount; $BannerPreview->AdTag = $AdCampaignBanner->AdTag; $BannerPreview->DeliveryType = $AdCampaignBanner->DeliveryType; $BannerPreview->LandingPageTLD = $AdCampaignBanner->LandingPageTLD; $BannerPreview->ImpressionsCounter = $AdCampaignBanner->ImpressionsCounter; $BannerPreview->BidsCounter = $AdCampaignBanner->BidsCounter; $BannerPreview->CurrentSpend = $AdCampaignBanner->CurrentSpend; $BannerPreview->Active = $AdCampaignBanner->Active; $BannerPreview->DateCreated = date("Y-m-d H:i:s"); $BannerPreview->DateUpdated = date("Y-m-d H:i:s"); $BannerPreview->ChangeWentLive = 0; $AdCampaignBannerPreviewID = $AdCampaignBannerPreviewFactory->saveAdCampaignBannerPreview($BannerPreview); if ($update_data['type'] == 'AdCampaignBannerID' && $update_data['id'] == $banner_id) { $return_val = array('AdCampaignBannerPreviewID' => $AdCampaignBannerPreviewID, 'AdCampaignPreviewID' => $AdCampaignPreviewID); } if ($BannerPreview->ImpressionType == 'video') { /* * VIDEO RESTRICTIONS */ $params = array(); $params["AdCampaignBannerID"] = $banner_id; $AdCampaignVideoRestrictions = $AdCampaignVideoRestrictionsFactory->get_row($params); if ($AdCampaignVideoRestrictions != null) { $VideoRestrictionsPreview = new \model\AdCampaignVideoRestrictionsPreview(); $VideoRestrictionsPreview->AdCampaignBannerPreviewID = $AdCampaignBannerPreviewID; $VideoRestrictionsPreview->GeoCountry = $AdCampaignVideoRestrictions->GeoCountry; $VideoRestrictionsPreview->GeoState = $AdCampaignVideoRestrictions->GeoState; $VideoRestrictionsPreview->GeoCity = $AdCampaignVideoRestrictions->GeoCity; $VideoRestrictionsPreview->MimesCommaSeparated = $AdCampaignVideoRestrictions->MimesCommaSeparated; $VideoRestrictionsPreview->MinDuration = $AdCampaignVideoRestrictions->MinDuration; $VideoRestrictionsPreview->MaxDuration = $AdCampaignVideoRestrictions->MaxDuration; $VideoRestrictionsPreview->ApisSupportedCommaSeparated = $AdCampaignVideoRestrictions->ApisSupportedCommaSeparated; $VideoRestrictionsPreview->ProtocolsCommaSeparated = $AdCampaignVideoRestrictions->ProtocolsCommaSeparated; $VideoRestrictionsPreview->DeliveryCommaSeparated = $AdCampaignVideoRestrictions->DeliveryCommaSeparated; $VideoRestrictionsPreview->PlaybackCommaSeparated = $AdCampaignVideoRestrictions->PlaybackCommaSeparated; $VideoRestrictionsPreview->StartDelay = $AdCampaignVideoRestrictions->StartDelay; $VideoRestrictionsPreview->Linearity = $AdCampaignVideoRestrictions->Linearity; $VideoRestrictionsPreview->FoldPos = $AdCampaignVideoRestrictions->FoldPos; $VideoRestrictionsPreview->MinHeight = $AdCampaignVideoRestrictions->MinHeight; $VideoRestrictionsPreview->MinWidth = $AdCampaignVideoRestrictions->MinWidth; $VideoRestrictionsPreview->PmpEnable = $AdCampaignVideoRestrictions->PmpEnable; $VideoRestrictionsPreview->Secure = $AdCampaignVideoRestrictions->Secure; $VideoRestrictionsPreview->Optout = $AdCampaignVideoRestrictions->Optout; $VideoRestrictionsPreview->Vertical = $AdCampaignVideoRestrictions->Vertical; $VideoRestrictionsPreview->DateCreated = date("Y-m-d H:i:s"); $VideoRestrictionsPreview->DateUpdated = date("Y-m-d H:i:s"); $AdCampaignVideoRestrictionsPreviewID = $AdCampaignVideoRestrictionsPreviewFactory->saveAdCampaignVideoRestrictionsPreview($VideoRestrictionsPreview); if ($update_data['type'] == 'AdCampaignVideoRestrictionsID' && $update_data['id'] == $AdCampaignVideoRestrictions->AdCampaignVideoRestrictionsID) { $return_val = array('AdCampaignVideoRestrictionsPreviewID' => $AdCampaignVideoRestrictionsPreviewID, 'AdCampaignBannerPreviewID' => $AdCampaignBannerPreviewID, 'AdCampaignPreviewID' => $AdCampaignPreviewID); } } } else { /* * BANNER RESTRICTIONS */ $params = array(); $params["AdCampaignBannerID"] = $banner_id; $AdCampaignBannerRestrictions = $AdCampaignBannerRestrictionsFactory->get_row($params); // may not be present if ($AdCampaignBannerRestrictions != null) { $BannerRestrictionsPreview = new \model\AdCampaignBannerRestrictionsPreview(); $BannerRestrictionsPreview->AdCampaignBannerPreviewID = $AdCampaignBannerPreviewID; $BannerRestrictionsPreview->GeoCountry = $AdCampaignBannerRestrictions->GeoCountry; $BannerRestrictionsPreview->GeoState = $AdCampaignBannerRestrictions->GeoState; $BannerRestrictionsPreview->GeoCity = $AdCampaignBannerRestrictions->GeoCity; $BannerRestrictionsPreview->AdTagType = $AdCampaignBannerRestrictions->AdTagType; $BannerRestrictionsPreview->AdPositionMinLeft = $AdCampaignBannerRestrictions->AdPositionMinLeft; $BannerRestrictionsPreview->AdPositionMaxLeft = $AdCampaignBannerRestrictions->AdPositionMaxLeft; $BannerRestrictionsPreview->AdPositionMinTop = $AdCampaignBannerRestrictions->AdPositionMinTop; $BannerRestrictionsPreview->AdPositionMaxTop = $AdCampaignBannerRestrictions->AdPositionMaxTop; $BannerRestrictionsPreview->FoldPos = $AdCampaignBannerRestrictions->FoldPos; $BannerRestrictionsPreview->Freq = $AdCampaignBannerRestrictions->Freq; $BannerRestrictionsPreview->Timezone = $AdCampaignBannerRestrictions->Timezone; $BannerRestrictionsPreview->InIframe = $AdCampaignBannerRestrictions->InIframe; $BannerRestrictionsPreview->InMultipleNestedIframes = $AdCampaignBannerRestrictions->InMultipleNestedIframes; $BannerRestrictionsPreview->MinScreenResolutionWidth = $AdCampaignBannerRestrictions->MinScreenResolutionWidth; $BannerRestrictionsPreview->MaxScreenResolutionWidth = $AdCampaignBannerRestrictions->MaxScreenResolutionWidth; $BannerRestrictionsPreview->MinScreenResolutionHeight = $AdCampaignBannerRestrictions->MinScreenResolutionHeight; $BannerRestrictionsPreview->MaxScreenResolutionHeight = $AdCampaignBannerRestrictions->MaxScreenResolutionHeight; $BannerRestrictionsPreview->HttpLanguage = $AdCampaignBannerRestrictions->HttpLanguage; $BannerRestrictionsPreview->BrowserUserAgentGrep = $AdCampaignBannerRestrictions->BrowserUserAgentGrep; $BannerRestrictionsPreview->CookieGrep = $AdCampaignBannerRestrictions->CookieGrep; $BannerRestrictionsPreview->PmpEnable = $AdCampaignBannerRestrictions->PmpEnable; $BannerRestrictionsPreview->Secure = $AdCampaignBannerRestrictions->Secure; $BannerRestrictionsPreview->Optout = $AdCampaignBannerRestrictions->Optout; $BannerRestrictionsPreview->Vertical = $AdCampaignBannerRestrictions->Vertical; $BannerRestrictionsPreview->DateCreated = date("Y-m-d H:i:s"); $BannerRestrictionsPreview->DateUpdated = date("Y-m-d H:i:s"); $AdCampaignBannerRestrictionsPreviewID = $AdCampaignBannerRestrictionsPreviewFactory->saveAdCampaignBannerRestrictionsPreview($BannerRestrictionsPreview); if ($update_data['type'] == 'AdCampaignBannerRestrictionsID' && $update_data['id'] == $AdCampaignBannerRestrictions->AdCampaignBannerRestrictionsID) { $return_val = array('AdCampaignBannerRestrictionsPreviewID' => $AdCampaignBannerRestrictionsPreviewID, 'AdCampaignBannerPreviewID' => $AdCampaignBannerPreviewID, 'AdCampaignPreviewID' => $AdCampaignPreviewID); } } } /* * LINKED BANNER TO AD ZONE */ $params = array(); $params["AdCampaignBannerID"] = $banner_id; $LinkedBannerToAdZoneList = $LinkedBannerToAdZoneFactory->get($params); foreach ($LinkedBannerToAdZoneList as $LinkedBannerToAdZone) { $LinkedBannerToAdZonePreview = new \model\LinkedBannerToAdZonePreview(); $LinkedBannerToAdZonePreview->AdCampaignBannerPreviewID = $AdCampaignBannerPreviewID; $LinkedBannerToAdZonePreview->PublisherAdZoneID = $LinkedBannerToAdZone->PublisherAdZoneID; $LinkedBannerToAdZonePreview->Weight = $LinkedBannerToAdZone->Weight; $LinkedBannerToAdZonePreview->DateCreated = date("Y-m-d H:i:s"); $LinkedBannerToAdZonePreview->DateUpdated = date("Y-m-d H:i:s"); $LinkedBannerToAdZonePreviewFactory->saveLinkedBannerToAdZonePreview($LinkedBannerToAdZonePreview); } /* * DOMAIN EXCLUSIONS */ $params = array(); $params["AdCampaignBannerID"] = $banner_id; $AdCampaignBannerDomainExclusionList = $AdCampaignBannerDomainExclusionFactory->get($params); foreach ($AdCampaignBannerDomainExclusionList as $AdCampaignBannerDomainExclusion) { $BannerDomainExclusionPreview = new \model\AdCampaignBannerDomainExclusionPreview(); $BannerDomainExclusionPreview->AdCampaignBannerPreviewID = $AdCampaignBannerPreviewID; $BannerDomainExclusionPreview->ExclusionType = $AdCampaignBannerDomainExclusion->ExclusionType; $BannerDomainExclusionPreview->DomainName = $AdCampaignBannerDomainExclusion->DomainName; $BannerDomainExclusionPreview->DateCreated = date("Y-m-d H:i:s"); $BannerDomainExclusionPreview->DateUpdated = date("Y-m-d H:i:s"); $AdCampaignBannerDomainExclusionPreviewID = $AdCampaignBannerDomainExclusionPreviewFactory->saveAdCampaignBannerDomainExclusionPreview($BannerDomainExclusionPreview); if ($update_data['type'] == 'AdCampaignBannerDomainExclusionID' && $update_data['id'] == $AdCampaignBannerDomainExclusion->AdCampaignBannerDomainExclusionID) { $return_val = array('AdCampaignBannerDomainExclusionPreviewID' => $AdCampaignBannerDomainExclusionPreviewID, 'AdCampaignBannerPreviewID' => $AdCampaignBannerPreviewID, 'AdCampaignPreviewID' => $AdCampaignPreviewID); } } /* * DOMAIN EXCLUSIVE INCLUSIONS */ $params = array(); $params["AdCampaignBannerID"] = $banner_id; $AdCampaignBannerDomainExclusiveInclusionList = $AdCampaignBannerDomainExclusiveInclusionFactory->get($params); foreach ($AdCampaignBannerDomainExclusiveInclusionList as $AdCampaignBannerDomainExclusiveInclusion) { $BannerDomainExclusiveInclusionPreview = new \model\AdCampaignBannerDomainExclusiveInclusionPreview(); $BannerDomainExclusiveInclusionPreview->AdCampaignBannerPreviewID = $AdCampaignBannerPreviewID; $BannerDomainExclusiveInclusionPreview->InclusionType = $AdCampaignBannerDomainExclusiveInclusion->InclusionType; $BannerDomainExclusiveInclusionPreview->DomainName = $AdCampaignBannerDomainExclusiveInclusion->DomainName; $BannerDomainExclusiveInclusionPreview->DateCreated = date("Y-m-d H:i:s"); $BannerDomainExclusiveInclusionPreview->DateUpdated = date("Y-m-d H:i:s"); $AdCampaignBannerDomainExclusiveInclusionPreviewID = $AdCampaignBannerDomainExclusiveInclusionPreviewFactory->saveAdCampaignBannerDomainExclusiveInclusionPreview($BannerDomainExclusiveInclusionPreview); if ($update_data['type'] == 'AdCampaignBannerDomainExclusiveInclusionID' && $update_data['id'] == $AdCampaignBannerDomainExclusiveInclusion->AdCampaignBannerDomainExclusiveInclusionID) { $return_val = array('AdCampaignBannerDomainExclusiveInclusionPreviewID' => $AdCampaignBannerDomainExclusiveInclusionPreviewID, 'AdCampaignBannerPreviewID' => $AdCampaignBannerPreviewID, 'AdCampaignPreviewID' => $AdCampaignPreviewID); } } } if (!$auth->getIsAdmin() && $config['mail']['subscribe']['campaigns'] === true) { // if this ad campaign was not created/edited by the admin, then send out a notification email $message = '<b>NginAd Demand Customer Campaign Edited by ' . $auth->getUserName() . '.</b><br /><br />'; $message = $message . '<table border="0" width="10%">'; $message = $message . '<tr><td><b>AdCampaignID: </b></td><td>' . $AdCampaign->AdCampaignID . '</td></tr>'; $message = $message . '<tr><td><b>UserID: </b></td><td>' . $AdCampaign->UserID . '</td></tr>'; $message = $message . '<tr><td><b>Name: </b></td><td>' . $AdCampaign->Name . '</td></tr>'; $message = $message . '<tr><td><b>StartDate: </b></td><td>' . $AdCampaign->StartDate . '</td></tr>'; $message = $message . '<tr><td><b>EndDate: </b></td><td>' . $AdCampaign->EndDate . '</td></tr>'; $message = $message . '<tr><td><b>Customer: </b></td><td>' . $AdCampaign->Customer . '</td></tr>'; $message = $message . '<tr><td><b>CustomerID: </b></td><td>' . $AdCampaign->CustomerID . '</td></tr>'; $message = $message . '<tr><td><b>MaxImpressions: </b></td><td>' . $AdCampaign->MaxImpressions . '</td></tr>'; $message = $message . '<tr><td><b>MaxSpend: </b></td><td>' . $AdCampaign->MaxSpend . '</td></tr>'; $message = $message . '</table>'; $subject = "NginAd Demand Customer Campaign Edited by " . $auth->getUserName(); $text = new Mime\Part($message); $text->type = Mime\Mime::TYPE_HTML; $text->charset = 'utf-8'; $mimeMessage = new Mime\Message(); $mimeMessage->setParts(array($text)); $zf_message = new Message(); $zf_message->addTo($config['mail']['admin-email']['email'], $config['mail']['admin-email']['name'])->addFrom($config['mail']['reply-to']['email'], $config['mail']['reply-to']['name'])->setSubject($subject)->setBody($mimeMessage); $mail_transport->send($zf_message); } return $return_val; }