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 <a href="https://support.google.com/dfp_premium/answer/1068325?hl=en&ref_topic=2480647#cust_params">DFP VAST 010 * documentation available online.</a> 011 */ 012@SuppressWarnings({"WeakerAccess", "unused"}) 013public class DFPVASTRequestParameters extends VASTRequestParameters { 014 015 /** 016 * Defines the 'ad_rule' request parameter 017 */ 018 public Integer adRule; 019 020 /** 021 * Defines the 'ciu_szs' request parameter. 022 */ 023 public String listOfSizes; 024 025 /** 026 * Defines the 'cmsid' request parameter. 027 */ 028 public String cmsid; 029 030 /** 031 * Defines the 'vid' request parameter. 032 */ 033 public String vid; 034 035 /** 036 * Defines the 'hl' request parameter. 037 */ 038 public String hl; 039 040 /** 041 * Defines the 'nofb' request parameter. 042 */ 043 public Integer nofb; 044 045 /** 046 * Defines the 'pp' request parameter. 047 */ 048 public String publisherProvider; 049 050 /** 051 * Defines the 'scp' request parameter. 052 */ 053 public String customParameters; 054 055 /** 056 * Defines the 'tfcd' request parameter. 057 */ 058 public Boolean coppa; 059 060 /** 061 * Defines the 'max_ad_duration' request parameter. 062 */ 063 public Integer maxDurationInSeconds; 064 065 /** 066 * Defines the 'min_ad_duration' request parameter. 067 */ 068 public Integer minDurationInSeconds; 069 070 /** 071 * Defines the 'sz' request parameter. 072 */ 073 public String size; 074 075 /** 076 * Defines the 'unviewed_position_start' request parameter. 077 */ 078 public Boolean isDelayedImpression; 079 080 /** 081 * Defines the 'ppid' request parameter. 082 */ 083 public String publisherId; 084 085 /** 086 * Defines the 'description_url' request parameter. 087 */ 088 public String descriptionUrl; 089 090 /** 091 * Defines the 'output' request parameter. 092 */ 093 public String outputFormat; 094 095 /** 096 * Defines the 'pod' request parameter. 097 */ 098 public Integer pod; 099 100 /** 101 * Defines the 'ppos' request parameter. 102 */ 103 public Integer ppos; 104 105 /** 106 * Defines the 'mridx' request parameter. 107 */ 108 public Integer mridx; 109 110 /** 111 * Defines the 'lip' request parameter. 112 */ 113 public Boolean lip; 114 115 /** 116 * Defines the 'pmnd' request parameter. 117 */ 118 public Long pmnd; 119 120 /** 121 * Defines the 'pmxd' request parameter. 122 */ 123 public Long pmxd; 124 125 /** 126 * Defines the 'pmad' request parameter. 127 */ 128 public Integer pmad; 129 130 131 @Override 132 public HashMap<String, String> getRequestParameters() { 133 HashMap<String, String> map = new HashMap<>(); 134 135 addParameterToRequestMap("ad_rule", adRule, map); 136 addParameterToRequestMap("ciu_szs", listOfSizes, map); 137 addParameterToRequestMap("cmsid", cmsid, map); 138 addParameterToRequestMap("vid", vid, map); 139 addParameterToRequestMap("hl", hl, map); 140 addParameterToRequestMap("nofb", nofb, map); 141 addParameterToRequestMap("pp", publisherProvider, map); 142 addParameterToRequestMap("scp", customParameters, map); 143 if (VASTVersion != null && outputFormat == null) { 144 map.put("output", "xml_vast" + VASTVersion); 145 } 146 addParameterToRequestMap("output", outputFormat, map); 147 148 addParameterToRequestMap("vpos", convertVideoTypeToParameterValue(videoType), map); 149 addParameterToRequestMap("tfcd", coppa, map); 150 addParameterToRequestMap("max_ad_duration", maxDurationInSeconds, map); 151 addParameterToRequestMap("min_ad_duration", minDurationInSeconds, map); 152 addParameterToRequestMap("sz", size, map); 153 addParameterToRequestMap("unviewed_position_start", isDelayedImpression, map); 154 addParameterToRequestMap("ppid", publisherId, map); 155 addParameterToRequestMap("description_url", descriptionUrl, map); 156 157 addParameterToRequestMap("pod", pod, map); 158 159 addParameterToRequestMap("ppos", ppos, map); 160 161 addParameterToRequestMap("mridx", mridx, map); 162 163 if (lip) { 164 map.put("lip", "true"); 165 } 166 167 addParameterToRequestMap("pmnd", pmnd, map); 168 169 addParameterToRequestMap("pmxd", pmxd, map); 170 171 addParameterToRequestMap("pmad", pmad, map); 172 173 return map; 174 } 175 176 static String convertVideoTypeToParameterValue(VideoType videoType) { 177 String result; 178 179 switch (videoType) { 180 case PreRoll: 181 result = "preroll"; 182 break; 183 case MidRoll: 184 result = "midroll"; 185 break; 186 case PostRoll: 187 result = "postroll"; 188 break; 189 default: 190 result = null; 191 break; 192 } 193 194 return result; 195 } 196 197 @Override 198 public AdNetwork getAdNetwork() { 199 return AdNetwork.DFP; 200 } 201}