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}