001package com.intentsoftware.addapptr.ad.vast; 002 003import com.intentsoftware.addapptr.AdNetwork; 004import com.intentsoftware.addapptr.VASTRequestParameters; 005 006import java.util.HashMap; 007 008/** 009 * Allows to define request parameters. For more details about parameters names, refer to the 010 * <a href="https://support.smartadserver.com/s/article/ka00Y000000Ys4QQAS/Video-RTB-parameters">Smart Ad Server VAST documentation available online.</a> 011 */ 012@SuppressWarnings({"WeakerAccess", "unused"}) 013public class SmartAdServerVASTRequestParameters extends VASTRequestParameters { 014 015 /** 016 * Defines the 'pgdomain' request parameter. 017 */ 018 public String pageDomain; 019 020 /** 021 * Defines the 'vph' request parameter. 022 */ 023 public Integer height; 024 025 /** 026 * Defines the 'vpw' request parameter. 027 */ 028 public Integer width; 029 030 /** 031 * Defines the 'vdmax' request parameter. 032 */ 033 public Integer maxDurationInSeconds; 034 035 /** 036 * Defines the 'vdmin' request parameter. 037 */ 038 public Integer minDurationInSeconds; 039 040 /** 041 * Defines the 'vaf' request parameter. 042 */ 043 public Boolean flashVideoAccepted; 044 045 /** 046 * Defines the 'vpmt' request parameter. 047 */ 048 public Integer playbackMethod; 049 050 /** 051 * Defines the 'vbrmin' request parameter. 052 */ 053 public Integer minBitRate; 054 055 /** 056 * Defines the 'vbrmax' request parameter. 057 */ 058 public Integer maxBitRate; 059 060 @Override 061 public HashMap<String, String> getRequestParameters() { 062 HashMap<String, String> map = new HashMap<>(); 063 064 addParameterToRequestMap("pgdomain", pageDomain, map); 065 if (VASTVersion != null) { 066 map.put("out", "vast" + VASTVersion); 067 } 068 069 addParameterToRequestMap("ab", convertVideoTypeToParameterValue(videoType), map); 070 addParameterToRequestMap("vdmax", maxDurationInSeconds, map); 071 addParameterToRequestMap("vdmin", minDurationInSeconds, map); 072 073 addParameterToRequestMap("vbrmin", minBitRate, map); 074 addParameterToRequestMap("vbrmax", maxBitRate, map); 075 076 addParameterToRequestMap("vph", height, map); 077 addParameterToRequestMap("vpw", width, map); 078 079 addParameterToRequestMap("vpmt", playbackMethod, map); 080 addParameterToRequestMap("vaf", flashVideoAccepted, map); 081 082 return map; 083 } 084 085 @Override 086 public AdNetwork getAdNetwork() { 087 return AdNetwork.SMARTAD; 088 } 089 090 static String convertVideoTypeToParameterValue(VideoType videoType) { 091 String result; 092 093 switch (videoType) { 094 case PreRoll: 095 result = "1"; 096 break; 097 case MidRoll: 098 result = "2"; 099 break; 100 case PostRoll: 101 result = "3"; 102 break; 103 default: 104 result = null; 105 break; 106 } 107 108 return result; 109 } 110}