public function parse_request(&$Logger, \buyrtb\parsers\openrtb\OpenRTBParser &$Parser, \model\openrtb\RtbBidRequestBanner &$RtbBidRequestBanner, &$ad_impression_banner) { // Parse Dimensions try { \buyrtb\parsers\openrtb\parselets\common\banner\ParseDimensions::execute($Logger, $Parser, $RtbBidRequestBanner, $ad_impression_banner); } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } // Banner ID \util\ParseHelper::parse_item($RtbBidRequestBanner, $ad_impression_banner, "id"); // Parse Above the Fold try { \buyrtb\parsers\openrtb\parselets\common\banner\ParseAboveTheFold::execute($Logger, $Parser, $RtbBidRequestBanner, $ad_impression_banner); } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } // Blocked Creative Types \util\ParseHelper::parse_item_list($RtbBidRequestBanner, $ad_impression_banner, "btype"); // Blocked Creative Attributes \util\ParseHelper::parse_item_list($RtbBidRequestBanner, $ad_impression_banner, "battr"); // Supported Mime Types \util\ParseHelper::parse_item_list($RtbBidRequestBanner, $ad_impression_banner, "mimes"); // Is In Top Most DOM Document ( not in IFRAME ) \util\ParseHelper::parse_item($RtbBidRequestBanner, $ad_impression_banner, "topframe"); // Expandable Ad Properties ( IAB Rising Stars ) \util\ParseHelper::parse_item_list($RtbBidRequestBanner, $ad_impression_banner, "expdir"); // Supported API Frameworks \util\ParseHelper::parse_item_list($RtbBidRequestBanner, $ad_impression_banner, "api"); }
public function parse_request(&$Logger, \buyrtbfidelity\parsers\openrtb\OpenRTBParser &$Parser, \model\openrtb\RtbBidRequestVideo &$RtbBidRequestVideo, &$ad_impression_video) { // get list of supported mime types for video content \util\ParseHelper::parse_list_with_exception($RtbBidRequestVideo, $ad_impression_video, $Parser->expeption_missing_min_bid_request_params . ": video mimes", "mimes"); \util\ParseHelper::parse_with_exception($RtbBidRequestVideo, $ad_impression_video, $Parser->expeption_missing_min_bid_request_params . ": video minduration", "minduration"); \util\ParseHelper::parse_with_exception($RtbBidRequestVideo, $ad_impression_video, $Parser->expeption_missing_min_bid_request_params . ": video maxduration", "maxduration"); // Protocol \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "protocol"); // Protocol List \util\ParseHelper::parse_item_list($RtbBidRequestVideo, $ad_impression_video, "protocols"); // Video Player Width \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "w"); // Video Player Height \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "h"); // Video Start Delay \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "startdelay"); // Video Linearity \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "linearity"); // Video Sequence Index \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "sequence"); // Blocked Creative Attributes \util\ParseHelper::parse_item_list($RtbBidRequestVideo, $ad_impression_video, "battr"); // Maximum Video extension beyond the max duration \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "maxextended"); // Minimum Video Bitrate \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "minbitrate"); // Maximum Video Bitrate \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "maxbitrate"); // Flag which allows letterboxing \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "boxingallowed"); // Allowed Playback Methods \util\ParseHelper::parse_item_list($RtbBidRequestVideo, $ad_impression_video, "playbackmethod"); // Allowed Delivery Methods \util\ParseHelper::parse_item_list($RtbBidRequestVideo, $ad_impression_video, "delivery"); // Video Position in Page \util\ParseHelper::parse_item($RtbBidRequestVideo, $ad_impression_video, "pos"); // If present, an array of companion RtbBidRequestBanner objects if (isset($ad_impression_video["companionad"]) && is_array($ad_impression_video["companionad"]) && count($ad_impression_video["companionad"])) { $DisplayParser = new \buyrtbfidelity\parsers\openrtb\DisplayParser(); foreach ($ad_impression_video["companionad"] as $companionad) { // this is a banner $RtbBidRequestBanner = new \model\openrtb\RtbBidRequestBanner(); $DisplayParser->parse_request($Logger, $this, $RtbBidRequestBanner, $companionad); $RtbBidRequestVideo->RtbBidRequestBannerList[] = $RtbBidRequestBanner; } } // A List of Supported API Frameworks \util\ParseHelper::parse_item_list($RtbBidRequestVideo, $ad_impression_video, "api"); // A List of Supported Companion Types \util\ParseHelper::parse_item_list($RtbBidRequestVideo, $ad_impression_video, "companiontype"); }
public static function execute(&$Logger, \buyrtb\parsers\openrtb\OpenRTBParser &$Parser, \model\openrtb\RtbBidRequest &$RtbBidRequest, \model\openrtb\RtbBidRequestDirectDeals &$RtbBidRequestDirectDeals, &$direct_deal) { // Deal ID \util\ParseHelper::parse_with_exception($RtbBidRequestDirectDeals, $direct_deal, $Parser->expeption_missing_min_bid_request_params . ": direct deal id", "id"); // Deal Bid Floor \util\ParseHelper::parse_item($RtbBidRequestDirectDeals, $direct_deal, "bidfloor"); // Deal Bid Floor Currency \util\ParseHelper::parse_item($RtbBidRequestDirectDeals, $direct_deal, "bidfloorcur"); // Deal Buyer Seats allowed to bid \util\ParseHelper::parse_item_list($RtbBidRequestDirectDeals, $direct_deal, "wseat"); // Deal Advertiser Domains allowed to bid \util\ParseHelper::parse_item_list($RtbBidRequestDirectDeals, $direct_deal, "wadomain"); // Deal Auction type ( second price or first price ) \util\ParseHelper::parse_item($RtbBidRequestDirectDeals, $direct_deal, "at"); }
public static function execute(&$Logger, \buyrtb\parsers\openrtb\OpenRTBParser &$Parser, \model\openrtb\native\request\RtbBidRequestNativeImage &$RtbBidRequestNativeImage, &$rtb_native_image) { // Image Type /* * 1 Icon image * 2 Logo image for the brand/app. * 3 Large image preview for the ad * 500+ Reserved for Exchange specific layouts. */ \util\ParseHelper::parse_item($RtbBidRequestNativeImage, $rtb_native_image, "type"); // Width of the image in pixels. \util\ParseHelper::parse_item($RtbBidRequestNativeImage, $rtb_native_image, "w"); // The minimum requested width of the image in pixels. \util\ParseHelper::parse_item($RtbBidRequestNativeImage, $rtb_native_image, "wmin"); // Height of the image in pixels. \util\ParseHelper::parse_item($RtbBidRequestNativeImage, $rtb_native_image, "h"); // The minimum requested height of the image in pixels. \util\ParseHelper::parse_item($RtbBidRequestNativeImage, $rtb_native_image, "hmin"); // get list of supported mime types for images \util\ParseHelper::parse_item_list($RtbBidRequestNativeImage, $rtb_native_image, "mimes"); }
public static function execute(&$Logger, \buyrtbfidelity\parsers\openrtb\OpenRTBParser &$Parser, \model\openrtb\RtbBidRequest &$RtbBidRequest, \model\openrtb\RtbBidRequestUser &$RtbBidRequestUser, &$rtb_user) { // User ID \util\ParseHelper::parse_item($RtbBidRequestUser, $rtb_user, "id"); // BuyerID, alternative to User ID \util\ParseHelper::parse_item($RtbBidRequestUser, $rtb_user, "buyeruid"); // Year of Birth \util\ParseHelper::parse_item($RtbBidRequestUser, $rtb_user, "yob"); // User Keywords Meta /* * Apparently Neal and Jim not sure on this one, * saying it could be a string or an array of strings */ if (isset($rtb_user["keywords"])) { if (is_array($rtb_user["keywords"])) { \util\ParseHelper::parse_item_list($RtbBidRequestUser, $rtb_user, "keywords"); } else { \util\ParseHelper::parse_item($RtbBidRequestUser, $rtb_user, "keywords"); } } // Custom Data \util\ParseHelper::parse_item($RtbBidRequestUser, $rtb_user, "customdata"); // geo object if (isset($rtb_user["geo"])) { $geo = $rtb_user["geo"]; $RtbBidRequestGeo = new \model\openrtb\RtbBidRequestGeo(); \buyrtbfidelity\parsers\openrtb\parselets\common\ParseGeo::execute($Logger, $Parser, $RtbBidRequest, $RtbBidRequestGeo, $geo); $RtbBidRequestUser->RtbBidRequestGeo = $RtbBidRequestGeo; } // user data objects if (isset($rtb_user["data"]) && is_array($rtb_user["data"])) { $user_data_list = $rtb_user["data"]; foreach ($user_data_list as $user_data) { $RtbBidRequestData = new \model\openrtb\RtbBidRequestData(); \buyrtbfidelity\parsers\openrtb\parselets\common\ParseData::execute($Logger, $Parser, $RtbBidRequest, $RtbBidRequestData, $user_data); $RtbBidRequestUser->RtbBidRequestDataList[] = $RtbBidRequestData; } } }
public function parse_request($config, $is_local, $rtb_ssp_friendly_name, $raw_post = null) { $this->config = $config; $this->raw_post = $raw_post; // prepare the logger $logger = \rtbbuyv22\RtbBuyV22Logger::get_instance(); // prepare the response object $this->RtbBidRequest = new \model\openrtb\RtbBidRequest(); $this->RtbBidRequest->is_local_request = $is_local; $this->RtbBidRequest->ssp_exchange_name = $rtb_ssp_friendly_name; // Initialize Data try { \buyrtb\parsers\openrtb\parselets\common\Init::execute($logger, $this, $this->RtbBidRequest); } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } // Parse Currency try { \buyrtb\parsers\openrtb\parselets\common\ParseCurrency::execute($logger, $this, $this->RtbBidRequest); } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } // Parse Second Price \util\ParseHelper::parse_item($this->RtbBidRequest, $this->json_post, "at"); // Parse Max Timeout on RTB Bid Response \util\ParseHelper::parse_item($this->RtbBidRequest, $this->json_post, "tmax"); // Parse Allowed Buyer Seat IDs \util\ParseHelper::parse_item_list($this->RtbBidRequest, $this->json_post, "wseat"); // Parse All Available impressions for this publisher boolean \util\ParseHelper::parse_item($this->RtbBidRequest, $this->json_post, "allimps"); // Parse Blocked Advertiser Categories \util\ParseHelper::parse_item_list($this->RtbBidRequest, $this->json_post, "bcat"); // Parse Blocked TLDs for this RTB request, Publisher Black Listed \util\ParseHelper::parse_item_list($this->RtbBidRequest, $this->json_post, "badv"); // Parse Site if (isset($this->json_post["site"])) { $ad_campaign_site = $this->json_post["site"]; $RtbBidRequestSite = new \model\openrtb\RtbBidRequestSite(); try { \buyrtb\parsers\openrtb\parselets\common\ParseWebsite::execute($logger, $this, $this->RtbBidRequest, $RtbBidRequestSite, $ad_campaign_site); $this->RtbBidRequest->RtbBidRequestSite = $RtbBidRequestSite; } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } } // Parse App if (isset($this->json_post["app"])) { $rtb_app = $this->json_post["app"]; $RtbBidRequestApp = new \model\openrtb\RtbBidRequestApp(); try { \buyrtb\parsers\openrtb\parselets\common\ParseApp::execute($logger, $this, $this->RtbBidRequest, $RtbBidRequestApp, $rtb_app); $this->RtbBidRequest->RtbBidRequestApp = $RtbBidRequestApp; } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } } // Parse User if (isset($this->json_post["user"])) { $rtb_user = $this->json_post["user"]; $RtbBidRequestUser = new \model\openrtb\RtbBidRequestUser(); try { \buyrtb\parsers\openrtb\parselets\common\ParseUser::execute($logger, $this, $this->RtbBidRequest, $RtbBidRequestUser, $rtb_user); $this->RtbBidRequest->RtbBidRequestUser = $RtbBidRequestUser; } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } } // Parse Device $RtbBidRequestDevice = new \model\openrtb\RtbBidRequestDevice(); if (isset($this->json_post["device"])) { $device = $this->json_post["device"]; try { \buyrtb\parsers\openrtb\parselets\common\device\ParseDevice::execute($logger, $this, $this->RtbBidRequest, $RtbBidRequestDevice, $device); $logger->log[] = "Is Mobile: " . $RtbBidRequestDevice->devicetype != 2; } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } } $this->RtbBidRequest->RtbBidRequestDevice = $RtbBidRequestDevice; // Parse Regs if (isset($this->json_post["regs"])) { $ad_regs = $this->json_post["regs"]; $RtbBidRequestRegulations = new \model\openrtb\RtbBidRequestRegulations(); try { \buyrtb\parsers\openrtb\parselets\common\ParseRegs::execute($logger, $this, $this->RtbBidRequest, $RtbBidRequestRegulations, $ad_regs); $this->RtbBidRequest->RtbBidRequestRegulations = $RtbBidRequestRegulations; } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } } // process all ad impressions if (!isset($this->json_post["imp"][0])) { throw new Exception($this->expeption_missing_min_bid_request_params . ": at least 1 imp object"); } $ad_impression_list = $this->json_post["imp"]; foreach ($ad_impression_list as $ad_impression) { $RtbBidRequestImp = new \model\openrtb\RtbBidRequestImp(); // Parse Imp ID try { \util\ParseHelper::parse_with_exception($RtbBidRequestImp, $ad_impression, $this->expeption_missing_min_bid_request_params . ": imp_id", "id"); } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } // Parse Imp Display Manager \util\ParseHelper::parse_item($RtbBidRequestImp, $ad_impression, "displaymanager"); // Parse Imp Display Manager Version \util\ParseHelper::parse_item($RtbBidRequestImp, $ad_impression, "displaymanagerver"); // Parse Imp Is Interstitial \util\ParseHelper::parse_item($RtbBidRequestImp, $ad_impression, "instl"); // Parse SSP tag id DOM parent of RTB Auction Ad Zone in Publisher web page \util\ParseHelper::parse_item($RtbBidRequestImp, $ad_impression, "tagid"); // Parse Imp Floor Price \util\ParseHelper::parse_item($RtbBidRequestImp, $ad_impression, "bidfloor"); // Parse Imp Floor Currency \util\ParseHelper::parse_item($RtbBidRequestImp, $ad_impression, "bidfloorcur"); // Parse Imp https:// SSL flag \util\ParseHelper::parse_item($RtbBidRequestImp, $ad_impression, "secure"); // Parse Imp IFRAME Buster list \util\ParseHelper::parse_item_list($RtbBidRequestImp, $ad_impression, "secure"); // Parse Private Markplace (PMP) if (isset($ad_impression["pmp"])) { $pmp = $ad_impression["pmp"]; $RtbBidRequestPmp = new \model\openrtb\RtbBidRequestPmp(); try { \buyrtb\parsers\openrtb\parselets\common\imp\ParsePrivateMarketPlace::execute($logger, $this, $this->RtbBidRequest, $RtbBidRequestPmp, $pmp); $RtbBidRequestImp->RtbBidRequestPmp = $RtbBidRequestPmp; } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious()); } } if (isset($ad_impression["banner"])) { // this is a banner $ad_impression_banner = $ad_impression["banner"]; $RtbBidRequestImp->media_type = "banner"; $RtbBidRequestImp->RtbBidRequestBanner = new \model\openrtb\RtbBidRequestBanner(); $DisplayParser = new \buyrtb\parsers\openrtb\DisplayParser(); $DisplayParser->parse_request($logger, $this, $RtbBidRequestImp->RtbBidRequestBanner, $ad_impression_banner); } elseif (isset($ad_impression["video"])) { // this is a video $ad_impression_video = $ad_impression["video"]; $RtbBidRequestImp->media_type = "video"; $RtbBidRequestImp->RtbBidRequestVideo = new \model\openrtb\RtbBidRequestVideo(); $VideoParser = new \buyrtb\parsers\openrtb\VideoParser(); $VideoParser->parse_request($logger, $this, $RtbBidRequestImp->RtbBidRequestVideo, $ad_impression_video); } elseif (!empty($ad_impression["native"]["request"])) { // this is a native ad $ad_impression_native_raw = json_decode($ad_impression["native"]["request"], true); if (empty($ad_impression_native_raw["native"])) { throw new Exception($this->expeption_missing_min_bid_request_params . ": decoded native object is missing in the imp"); } $ad_impression_native = $ad_impression_native_raw["native"]; $RtbBidRequestImp->media_type = "native"; $RtbBidRequestImp->RtbBidRequestNative = new \model\openrtb\native\request\RtbBidRequestNative(); $NativeParser = new \buyrtb\parsers\openrtb\NativeParser(); $NativeParser->parse_request($logger, $this, $RtbBidRequestImp->RtbBidRequestNative, $ad_impression_native); } else { throw new Exception($this->expeption_missing_min_bid_request_params . ": at least one banner or video object in the imp"); } $this->RtbBidRequest->RtbBidRequestImpList[] = $RtbBidRequestImp; } return $this->RtbBidRequest; }
public static function execute(&$Logger, \buyrtbsmaato\parsers\openrtb\OpenRTBParser &$Parser, \model\openrtb\RtbBidRequest &$RtbBidRequest, \model\openrtb\RtbBidRequestApp &$RtbBidRequestApp, &$rtb_app) { // ID \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "id"); // App Name \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "name"); // App Domain \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "domain"); // App Categories \util\ParseHelper::parse_item_list($RtbBidRequestApp, $rtb_app, "cat"); self::fix_iab_categories($RtbBidRequestApp, "cat"); // App Subsection Categories \util\ParseHelper::parse_item_list($RtbBidRequestApp, $rtb_app, "sectioncat"); self::fix_iab_categories($RtbBidRequestApp, "sectioncat"); // App Categories for the page/view the ad zone for this impression is fired off from \util\ParseHelper::parse_item_list($RtbBidRequestApp, $rtb_app, "pagecat"); self::fix_iab_categories($RtbBidRequestApp, "pagecat"); // Version of app \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "ver"); // App Bundle \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "bundle"); // Flag for Privacy Policy \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "privacypolicy"); // Is App Paid? \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "paid"); /* * Publisher Object */ if (isset($rtb_app["publisher"])) { $RtbBidRequestPublisher = new \model\openrtb\RtbBidRequestPublisher(); $default_site_publisher = $rtb_app["publisher"]; // Publisher ID \util\ParseHelper::parse_item($RtbBidRequestPublisher, $default_site_publisher, "id"); // Publisher Name \util\ParseHelper::parse_item($RtbBidRequestPublisher, $default_site_publisher, "name"); // Publisher Categories \util\ParseHelper::parse_item_list($RtbBidRequestPublisher, $default_site_publisher, "cat"); self::fix_iab_categories($RtbBidRequestPublisher, "cat"); // Publisher Domain \util\ParseHelper::parse_item($RtbBidRequestPublisher, $default_site_publisher, "domain"); $RtbBidRequestApp->RtbBidRequestPublisher = $RtbBidRequestPublisher; } /* * Site Content Object */ if (isset($rtb_app["content"])) { $RtbBidRequestContent = new \model\openrtb\RtbBidRequestContent(); $default_site_content = $rtb_app["content"]; // Site Content ID \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "id"); // Episode Number \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "episode"); // Title \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "title"); // Content Series \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "series"); // Content Season \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "season"); // Content Original URL \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "url"); // Content Categories \util\ParseHelper::parse_item_list($RtbBidRequestContent, $default_site_content, "cat"); self::fix_iab_categories($RtbBidRequestContent, "cat"); // Content Video Quality \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "videoquality"); // Content Video Quality \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "videoquality"); // Content Keywords Meta /* * Apparently Neal and Jim not sure on this one, * saying it could be a string or an array of strings */ if (isset($default_site_content["keywords"])) { if (is_array($default_site_content["keywords"])) { \util\ParseHelper::parse_item_list($RtbBidRequestContent, $default_site_content, "keywords"); } else { \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "keywords"); } } // Content Rating \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "contentrating"); // User Rating \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "userrating"); // Context of Content \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "context"); // Flag Indicating if Content is Live \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "livestream"); // Flag Indicating if Content Source is Direct or Indirect \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "sourcerelationship"); /* * Site Content Video Producer Object */ if (isset($default_site_content["producer"])) { $RtbBidRequestProducer = new \model\openrtb\RtbBidRequestProducer(); $default_site_content_producer = $default_site_content["producer"]; // Video Producer ID \util\ParseHelper::parse_item($RtbBidRequestProducer, $default_site_content_producer, "id"); // Video Producer Name \util\ParseHelper::parse_item($RtbBidRequestProducer, $default_site_content_producer, "name"); // Video Producer Categories \util\ParseHelper::parse_item_list($RtbBidRequestProducer, $default_site_content_producer, "cat"); self::fix_iab_categories($RtbBidRequestProducer, "cat"); // Video Producer Domain \util\ParseHelper::parse_item($RtbBidRequestProducer, $default_site_content_producer, "domain"); $RtbBidRequestContent->RtbBidRequestProducer = $RtbBidRequestProducer; } // Length of Content \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "len"); // QAG Media Rating of Content \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "qagmediarating"); // QAG Video Addendum Embeddable Flag \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "embeddable"); // Content Language \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "language"); $RtbBidRequestApp->RtbBidRequestContent = $RtbBidRequestContent; } // Website Keywords Meta /* * Apparently Neal and Jim not sure on this one, * saying it could be a string or an array of strings */ if (isset($rtb_app["keywords"])) { if (is_array($rtb_app["keywords"])) { \util\ParseHelper::parse_item_list($RtbBidRequestApp, $rtb_app, "keywords"); } else { \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "keywords"); } } // The URL for the App Store for this App \util\ParseHelper::parse_item($RtbBidRequestApp, $rtb_app, "storeurl"); }
public static function execute(&$Logger, \buyrtb\parsers\openrtb\OpenRTBParser &$Parser, \model\openrtb\RtbBidRequest &$RtbBidRequest, \model\openrtb\RtbBidRequestSite &$RtbBidRequestSite, &$ad_campaign_site) { // ID \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "id"); // Site Name \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "name"); // Site Domain \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "domain"); // Site Categories \util\ParseHelper::parse_item_list($RtbBidRequestSite, $ad_campaign_site, "cat"); self::fix_iab_categories($RtbBidRequestSite, "cat"); // Site Subsection Categories \util\ParseHelper::parse_item_list($RtbBidRequestSite, $ad_campaign_site, "sectioncat"); self::fix_iab_categories($RtbBidRequestSite, "sectioncat"); // Site Page Categories for the page the ad zone for this impression is fired off from \util\ParseHelper::parse_item_list($RtbBidRequestSite, $ad_campaign_site, "pagecat"); self::fix_iab_categories($RtbBidRequestSite, "pagecat"); // URL of the Page the ad zone for this impression is fired off from \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "page"); // Flag for Privacy Policy \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "privacypolicy"); // Referrer URL which caused navigation to the page the impression is displayed on \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "ref"); // SEO URL which caused the user to land on the page the impression is displayed on \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "search"); /* * Publisher Object */ if (isset($ad_campaign_site["publisher"])) { $RtbBidRequestPublisher = new \model\openrtb\RtbBidRequestPublisher(); $default_site_publisher = $ad_campaign_site["publisher"]; // Publisher ID \util\ParseHelper::parse_item($RtbBidRequestPublisher, $default_site_publisher, "id"); // Publisher Name \util\ParseHelper::parse_item($RtbBidRequestPublisher, $default_site_publisher, "name"); // Publisher Categories \util\ParseHelper::parse_item_list($RtbBidRequestPublisher, $default_site_publisher, "cat"); self::fix_iab_categories($RtbBidRequestPublisher, "cat"); // Publisher Domain \util\ParseHelper::parse_item($RtbBidRequestPublisher, $default_site_publisher, "domain"); $RtbBidRequestSite->RtbBidRequestPublisher = $RtbBidRequestPublisher; } /* * Site Content Object */ if (isset($ad_campaign_site["content"])) { $RtbBidRequestContent = new \model\openrtb\RtbBidRequestContent(); $default_site_content = $ad_campaign_site["content"]; // Site Content ID \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "id"); // Episode Number \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "episode"); // Title \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "title"); // Content Series \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "series"); // Content Season \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "season"); // Content Original URL \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "url"); // Content Categories \util\ParseHelper::parse_item_list($RtbBidRequestContent, $default_site_content, "cat"); self::fix_iab_categories($RtbBidRequestContent, "cat"); // Content Video Quality \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "videoquality"); // Content Video Quality \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "videoquality"); // Content Keywords Meta /* * Apparently Neal and Jim not sure on this one, * saying it could be a string or an array of strings */ if (isset($default_site_content["keywords"])) { if (is_array($default_site_content["keywords"])) { \util\ParseHelper::parse_item_list($RtbBidRequestContent, $default_site_content, "keywords"); } else { \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "keywords"); } } // Content Rating \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "contentrating"); // User Rating \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "userrating"); // Context of Content \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "context"); // Flag Indicating if Content is Live \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "livestream"); // Flag Indicating if Content Source is Direct or Indirect \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "sourcerelationship"); /* * Site Content Video Producer Object */ if (isset($default_site_content["producer"])) { $RtbBidRequestProducer = new \model\openrtb\RtbBidRequestProducer(); $default_site_content_producer = $default_site_content["producer"]; // Video Producer ID \util\ParseHelper::parse_item($RtbBidRequestProducer, $default_site_content_producer, "id"); // Video Producer Name \util\ParseHelper::parse_item($RtbBidRequestProducer, $default_site_content_producer, "name"); // Video Producer Categories \util\ParseHelper::parse_item_list($RtbBidRequestProducer, $default_site_content_producer, "cat"); self::fix_iab_categories($RtbBidRequestProducer, "cat"); // Video Producer Domain \util\ParseHelper::parse_item($RtbBidRequestProducer, $default_site_content_producer, "domain"); $RtbBidRequestContent->RtbBidRequestProducer = $RtbBidRequestProducer; } // Length of Content \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "len"); // QAG Media Rating of Content \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "qagmediarating"); // QAG Video Addendum Embeddable Flag \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "embeddable"); // Content Language \util\ParseHelper::parse_item($RtbBidRequestContent, $default_site_content, "language"); $RtbBidRequestSite->RtbBidRequestContent = $RtbBidRequestContent; } // Website Keywords Meta /* * Apparently Neal and Jim not sure on this one, * saying it could be a string or an array of strings */ if (isset($ad_campaign_site["keywords"])) { if (is_array($ad_campaign_site["keywords"])) { \util\ParseHelper::parse_item_list($RtbBidRequestSite, $ad_campaign_site, "keywords"); } else { \util\ParseHelper::parse_item($RtbBidRequestSite, $ad_campaign_site, "keywords"); } } }