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");
 }
Esempio n. 2
0
 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");
 }
Esempio n. 4
0
 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");
 }
Esempio n. 5
0
 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;
         }
     }
 }
Esempio n. 6
0
 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");
 }
Esempio n. 8
0
 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");
         }
     }
 }