<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://marketing.ews.yahooapis.com/V5" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://marketing.ews.yahooapis.com/V5" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://marketing.ews.yahooapis.com/V5" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:annotation>
                <xsd:appinfo>
                    <tns:version>5.2.0</tns:version>
                </xsd:appinfo>
            </xsd:annotation>
            <xsd:element name="commandGroup">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="license">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="masterAccountID">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="quotaUsedForThisRequest">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="remainingQuota">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="timeTakenMillis">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="ApiFault" type="tns:ApiFault"/>
            <xsd:element name="getForecastByAdGroup">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="adGroupID" nillable="true" type="xsd:long"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="adGroupForecastRequestData" nillable="true" type="tns:AdGroupForecastRequestData"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getForecastByAdGroupResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:ForecastResponse"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getForecastForKeyword">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="keyword" nillable="true" type="xsd:string"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="adGroupID" nillable="true" type="xsd:long"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="keywordForecastRequestData" nillable="true" type="tns:KeywordForecastRequestData"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getForecastForKeywordBatch">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="batchKeywords" nillable="true" type="tns:ArrayOfForecastKeywordBatch"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="keywordForecastRequestData" nillable="true" type="tns:KeywordForecastRequestData"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getForecastForKeywordBatchResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:ForecastKeywordBatchResponse"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getForecastForKeywordResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:ForecastResponse"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getForecastForKeywords">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="forecastKeywords" nillable="true" type="tns:ArrayOfForecastKeyword"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="adGroupID" nillable="true" type="xsd:long"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="adGroupForecastRequestData" nillable="true" type="tns:AdGroupForecastRequestData"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getForecastForKeywordsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:ForecastKeywordResponse"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getHistoricalDataForKeywords">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="historicalKeywords" nillable="true" type="tns:ArrayOfHistoricalKeyword"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="historicalRequestData" nillable="true" type="tns:HistoricalRequestData"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getHistoricalDataForKeywordsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:HistoricalKeywordResponse"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="onBehalfOfPassword">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="onBehalfOfUsername">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:simpleType name="AdGroupForecastMatchType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="AdvancedMatch"/>
                    <xsd:enumeration value="SponsoredSearch"/>
                    <xsd:enumeration value="ContentMatch"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="DayOfTheWeek">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="Saturday"/>
                    <xsd:enumeration value="Thursday"/>
                    <xsd:enumeration value="Monday"/>
                    <xsd:enumeration value="Tuesday"/>
                    <xsd:enumeration value="Wednesday"/>
                    <xsd:enumeration value="Friday"/>
                    <xsd:enumeration value="Sunday"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="Gender">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="Female"/>
                    <xsd:enumeration value="Male"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="KeywordForecastMatchType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="AdvancedMatch"/>
                    <xsd:enumeration value="SponsoredSearch"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="TargetingPremiumType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="Absolute"/>
                    <xsd:enumeration value="Percentage"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="UnderAgeFilter">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="Disable"/>
                    <xsd:enumeration value="Enable"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:complexType name="AdGroupForecastRequestData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="accountID" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="carrier" nillable="true" type="tns:Carrier"/>
                    <xsd:element minOccurs="0" name="creatives" nillable="true" type="tns:ArrayOfForecastCreative"/>
                    <xsd:element name="matchType" type="tns:AdGroupForecastMatchType"/>
                    <xsd:element name="maxBid" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="targetingAttributes" nillable="true" type="tns:ArrayOfTargetingAttribute"/>
                    <xsd:element minOccurs="0" name="targetingProfile" nillable="true" type="tns:TargetingProfile"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="AgeRange">
                <xsd:sequence>
                    <xsd:element name="maxAge" type="xsd:int"/>
                    <xsd:element name="minAge" type="xsd:int"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="AgeTarget">
                <xsd:sequence>
                    <xsd:element name="ageRange" type="tns:AgeRange"/>
                    <xsd:element name="premium" type="tns:TargetingPremium"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ApiFault">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="code" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="message" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfAgeTarget">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="AgeTarget" nillable="true" type="tns:AgeTarget"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfDayPartingTarget">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="DayPartingTarget" nillable="true" type="tns:DayPartingTarget"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfError">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="Error" nillable="true" type="tns:Error"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfForecastCreative">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="ForecastCreative" nillable="true" type="tns:ForecastCreative"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfForecastKeyword">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="ForecastKeyword" nillable="true" type="tns:ForecastKeyword"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfForecastKeywordBatch">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="ForecastKeywordBatch" nillable="true" type="tns:ForecastKeywordBatch"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfForecastKeywordBatchResponseData">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="ForecastKeywordBatchResponseData" nillable="true" type="tns:ForecastKeywordBatchResponseData"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfForecastResponseData">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="ForecastResponseData" nillable="true" type="tns:ForecastResponseData"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfGenderTarget">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="GenderTarget" nillable="true" type="tns:GenderTarget"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfGeoTarget">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="GeoTarget" nillable="true" type="tns:GeoTarget"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfHistoricalKeyword">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="HistoricalKeyword" nillable="true" type="tns:HistoricalKeyword"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfHistoricalKeywordResponseData">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="HistoricalKeywordResponseData" nillable="true" type="tns:HistoricalKeywordResponseData"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfHistoricalResponseData">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="HistoricalResponseData" nillable="true" type="tns:HistoricalResponseData"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfTargetingAttribute">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="TargetingAttribute" nillable="true" type="tns:TargetingAttribute"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfWarning">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="Warning" nillable="true" type="tns:Warning"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="Carrier">
                <xsd:sequence>
                    <xsd:element name="id" type="xsd:long"/>
                    <xsd:element minOccurs="0" name="market" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="DayPart">
                <xsd:sequence>
                    <xsd:element name="dayOfTheWeek" type="tns:DayOfTheWeek"/>
                    <xsd:element name="endHourOfDay" type="xsd:int"/>
                    <xsd:element name="startHourOfDay" type="xsd:int"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="DayPartingTarget">
                <xsd:sequence>
                    <xsd:element name="dayPart" type="tns:DayPart"/>
                    <xsd:element minOccurs="0" name="premium" nillable="true" type="tns:TargetingPremium"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="DayPartingTargeting">
                <xsd:sequence>
                    <xsd:element name="dayPartingTargets" type="tns:ArrayOfDayPartingTarget"/>
                    <xsd:element minOccurs="0" name="timeZone" nillable="true" type="xsd:string"/>
                    <xsd:element name="userTimeZone" type="xsd:boolean"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="DemographicTargeting">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="ageTargets" nillable="true" type="tns:ArrayOfAgeTarget"/>
                    <xsd:element minOccurs="0" name="genderTargets" nillable="true" type="tns:ArrayOfGenderTarget"/>
                    <xsd:element minOccurs="0" name="underAgeFilter" nillable="true" type="tns:UnderAgeFilter"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="Error">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="code" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="message" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastClickData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="clicks" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="maxClicks" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="minClicks" type="xsd:double"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastCreative">
                <xsd:sequence>
                    <xsd:element name="description" type="xsd:string"/>
                    <xsd:element name="destinationUrl" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="displayUrl" nillable="true" type="xsd:string"/>
                    <xsd:element name="title" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastImpressionData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="impressions" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="maxImpressions" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="minImpressions" type="xsd:double"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastKeyword">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="customBid" nillable="true" type="xsd:double"/>
                    <xsd:element name="keyword" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastKeywordBatch">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="adGroupID" nillable="true" type="xsd:long"/>
                    <xsd:element name="keyword" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="matchType" nillable="true" type="tns:KeywordForecastMatchType"/>
                    <xsd:element minOccurs="0" name="maxBidOverride" nillable="true" type="xsd:double"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastKeywordBatchResponse">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="errors" nillable="true" type="tns:ArrayOfError"/>
                    <xsd:element minOccurs="0" name="forecastKeywordBatchResponseData" nillable="true" type="tns:ArrayOfForecastKeywordBatchResponseData"/>
                    <xsd:element minOccurs="0" name="operationSucceeded" nillable="true" type="xsd:boolean"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastKeywordBatchResponseData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="canonKeyword" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="errors" nillable="true" type="tns:ArrayOfError"/>
                    <xsd:element minOccurs="0" name="forecastLandscape" nillable="true" type="tns:ArrayOfForecastResponseData"/>
                    <xsd:element minOccurs="0" name="forecastResponseDetail" nillable="true" type="tns:ForecastResponseData"/>
                    <xsd:element minOccurs="0" name="keyword" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="matchType" nillable="true" type="tns:KeywordForecastMatchType"/>
                    <xsd:element minOccurs="0" name="operationSucceeded" nillable="true" type="xsd:boolean"/>
                    <xsd:element minOccurs="0" name="warnings" nillable="true" type="tns:ArrayOfWarning"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastKeywordResponse">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="customizedResponseByAdGroup" nillable="true" type="tns:ForecastResponseData"/>
                    <xsd:element minOccurs="0" name="defaultResponseByAdGroup" nillable="true" type="tns:ForecastResponseData"/>
                    <xsd:element minOccurs="0" name="errors" nillable="true" type="tns:ArrayOfError"/>
                    <xsd:element minOccurs="0" name="landscapeByAdGroup" nillable="true" type="tns:ArrayOfForecastResponseData"/>
                    <xsd:element minOccurs="0" name="operationSucceeded" nillable="true" type="xsd:boolean"/>
                    <xsd:element minOccurs="0" name="warnings" nillable="true" type="tns:ArrayOfWarning"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastResponse">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="errors" nillable="true" type="tns:ArrayOfError"/>
                    <xsd:element minOccurs="0" name="forecastLandscape" nillable="true" type="tns:ArrayOfForecastResponseData"/>
                    <xsd:element minOccurs="0" name="forecastResponseDetail" nillable="true" type="tns:ForecastResponseData"/>
                    <xsd:element minOccurs="0" name="operationSucceeded" nillable="true" type="xsd:boolean"/>
                    <xsd:element minOccurs="0" name="warnings" nillable="true" type="tns:ArrayOfWarning"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ForecastResponseData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="averagePosition" nillable="true" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="clicks" nillable="true" type="tns:ForecastClickData"/>
                    <xsd:element minOccurs="0" name="costPerClick" nillable="true" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="impressions" nillable="true" type="tns:ForecastImpressionData"/>
                    <xsd:element minOccurs="0" name="maxBid" nillable="true" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="missedClicks" nillable="true" type="xsd:double"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="GenderTarget">
                <xsd:sequence>
                    <xsd:element name="gender" type="tns:Gender"/>
                    <xsd:element name="premium" type="tns:TargetingPremium"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="GeoLocation">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="description" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="placeType" nillable="true" type="tns:TargetingType"/>
                    <xsd:element name="woeid" type="xsd:long"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="GeoTarget">
                <xsd:sequence>
                    <xsd:element name="geoLocation" type="tns:GeoLocation"/>
                    <xsd:element minOccurs="0" name="premium" nillable="true" type="tns:TargetingPremium"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="HistoricalKeyword">
                <xsd:sequence>
                    <xsd:element name="keyword" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="matchType" nillable="true" type="tns:KeywordForecastMatchType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="HistoricalKeywordResponse">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="errors" nillable="true" type="tns:ArrayOfError"/>
                    <xsd:element minOccurs="0" name="historicalKeywordResponseData" nillable="true" type="tns:ArrayOfHistoricalKeywordResponseData"/>
                    <xsd:element minOccurs="0" name="operationSucceeded" nillable="true" type="xsd:boolean"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="HistoricalKeywordResponseData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="historicalData" nillable="true" type="tns:ArrayOfHistoricalResponseData"/>
                    <xsd:element minOccurs="0" name="keyword" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="matchType" nillable="true" type="tns:KeywordForecastMatchType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="HistoricalRequestData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="accountID" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="carrier" nillable="true" type="tns:Carrier"/>
                    <xsd:element name="endDate" type="xsd:dateTime"/>
                    <xsd:element name="marketID" type="xsd:string"/>
                    <xsd:element name="matchType" type="tns:KeywordForecastMatchType"/>
                    <xsd:element name="startDate" type="xsd:dateTime"/>
                    <xsd:element minOccurs="0" name="targetingAttributes" nillable="true" type="tns:ArrayOfTargetingAttribute"/>
                    <xsd:element minOccurs="0" name="targetingProfile" nillable="true" type="tns:TargetingProfile"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="HistoricalResponseData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="avgSearches" nillable="true" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="competitiveRating" nillable="true" type="xsd:long"/>
                    <xsd:element minOccurs="0" name="errors" nillable="true" type="tns:ArrayOfError"/>
                    <xsd:element minOccurs="0" name="monthYear" nillable="true" type="xsd:dateTime"/>
                    <xsd:element minOccurs="0" name="operationSucceeded" nillable="true" type="xsd:boolean"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="KeywordForecastRequestData">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="accountID" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="carrier" nillable="true" type="tns:Carrier"/>
                    <xsd:element minOccurs="0" name="marketID" nillable="true" type="xsd:string"/>
                    <xsd:element name="matchType" type="tns:KeywordForecastMatchType"/>
                    <xsd:element name="maxBid" type="xsd:double"/>
                    <xsd:element minOccurs="0" name="targetingAttributes" nillable="true" type="tns:ArrayOfTargetingAttribute"/>
                    <xsd:element minOccurs="0" name="targetingProfile" nillable="true" type="tns:TargetingProfile"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="TargetingAttribute">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="premium" nillable="true" type="tns:TargetingPremium"/>
                    <xsd:element name="targetingAttributeDescriptor" type="tns:TargetingAttributeDescriptor"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="TargetingAttributeDescriptor">
                <xsd:sequence>
                    <xsd:element name="targetingAttributeID" type="xsd:string"/>
                    <xsd:element name="targetingType" type="tns:TargetingType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="TargetingPremium">
                <xsd:sequence>
                    <xsd:element name="type" type="tns:TargetingPremiumType"/>
                    <xsd:element name="value" type="xsd:double"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="TargetingProfile">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="dayPartingTargeting" nillable="true" type="tns:DayPartingTargeting"/>
                    <xsd:element minOccurs="0" name="demographicTargeting" nillable="true" type="tns:DemographicTargeting"/>
                    <xsd:element minOccurs="0" name="geoTargets" nillable="true" type="tns:ArrayOfGeoTarget"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="TargetingType">
                <xsd:sequence>
                    <xsd:element name="value" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="Warning">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="code" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="message" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:schema>
        <schema targetNamespace="http://schemas.xmlsoap.org/ws/2002/07/secext" xmlns="http://www.w3.org/2001/XMLSchema">
            <element name="Security" type="wsse:Security"/>
            <complexType name="Security">
                <sequence>
                    <element name="UsernameToken" type="wsse:UsernameToken"/>
                </sequence>
            </complexType>
            <complexType name="UsernameToken">
                <sequence>
                    <element name="Username" type="string"/>
                    <element name="Password" type="string"/>
                </sequence>
            </complexType>
        </schema>
    </wsdl:types>
    <wsdl:message name="ApiFault">
        <wsdl:part element="tns:ApiFault" name="ApiFault"/>
    </wsdl:message>
    <wsdl:message name="Security">
        <wsdl:part element="wsse:Security" name="Security"/>
    </wsdl:message>
    <wsdl:message name="commandGroup">
        <wsdl:part element="tns:commandGroup" name="commandGroup"/>
    </wsdl:message>
    <wsdl:message name="getForecastByAdGroupRequest">
        <wsdl:part element="tns:getForecastByAdGroup" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getForecastByAdGroupResponse">
        <wsdl:part element="tns:getForecastByAdGroupResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getForecastForKeywordBatchRequest">
        <wsdl:part element="tns:getForecastForKeywordBatch" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getForecastForKeywordBatchResponse">
        <wsdl:part element="tns:getForecastForKeywordBatchResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getForecastForKeywordRequest">
        <wsdl:part element="tns:getForecastForKeyword" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getForecastForKeywordResponse">
        <wsdl:part element="tns:getForecastForKeywordResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getForecastForKeywordsRequest">
        <wsdl:part element="tns:getForecastForKeywords" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getForecastForKeywordsResponse">
        <wsdl:part element="tns:getForecastForKeywordsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getHistoricalDataForKeywordsRequest">
        <wsdl:part element="tns:getHistoricalDataForKeywords" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getHistoricalDataForKeywordsResponse">
        <wsdl:part element="tns:getHistoricalDataForKeywordsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="license">
        <wsdl:part element="tns:license" name="license"/>
    </wsdl:message>
    <wsdl:message name="masterAccountID">
        <wsdl:part element="tns:masterAccountID" name="masterAccountID"/>
    </wsdl:message>
    <wsdl:message name="onBehalfOfPassword">
        <wsdl:part element="tns:onBehalfOfPassword" name="onBehalfOfPassword"/>
    </wsdl:message>
    <wsdl:message name="onBehalfOfUsername">
        <wsdl:part element="tns:onBehalfOfUsername" name="onBehalfOfUsername"/>
    </wsdl:message>
    <wsdl:message name="quotaUsedForThisRequest">
        <wsdl:part element="tns:quotaUsedForThisRequest" name="quotaUsedForThisRequest"/>
    </wsdl:message>
    <wsdl:message name="remainingQuota">
        <wsdl:part element="tns:remainingQuota" name="remainingQuota"/>
    </wsdl:message>
    <wsdl:message name="timeTakenMillis">
        <wsdl:part element="tns:timeTakenMillis" name="timeTakenMillis"/>
    </wsdl:message>
    <wsdl:portType name="ForecastService">
        <wsdl:operation name="getForecastByAdGroup">
            <wsdl:input message="tns:getForecastByAdGroupRequest" name="getForecastByAdGroupRequest"/>
            <wsdl:output message="tns:getForecastByAdGroupResponse" name="getForecastByAdGroupResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getForecastForKeyword">
            <wsdl:input message="tns:getForecastForKeywordRequest" name="getForecastForKeywordRequest"/>
            <wsdl:output message="tns:getForecastForKeywordResponse" name="getForecastForKeywordResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getForecastForKeywordBatch">
            <wsdl:input message="tns:getForecastForKeywordBatchRequest" name="getForecastForKeywordBatchRequest"/>
            <wsdl:output message="tns:getForecastForKeywordBatchResponse" name="getForecastForKeywordBatchResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getForecastForKeywords">
            <wsdl:input message="tns:getForecastForKeywordsRequest" name="getForecastForKeywordsRequest"/>
            <wsdl:output message="tns:getForecastForKeywordsResponse" name="getForecastForKeywordsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getHistoricalDataForKeywords">
            <wsdl:input message="tns:getHistoricalDataForKeywordsRequest" name="getHistoricalDataForKeywordsRequest"/>
            <wsdl:output message="tns:getHistoricalDataForKeywordsResponse" name="getHistoricalDataForKeywordsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ForecastServiceHttpBinding" type="tns:ForecastService">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="getForecastByAdGroup">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getForecastByAdGroupRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getForecastByAdGroupResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getForecastForKeyword">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getForecastForKeywordRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getForecastForKeywordResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getForecastForKeywordBatch">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getForecastForKeywordBatchRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getForecastForKeywordBatchResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getForecastForKeywords">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getForecastForKeywordsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getForecastForKeywordsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getHistoricalDataForKeywords">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getHistoricalDataForKeywordsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getHistoricalDataForKeywordsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ForecastServiceService">
        <wsdl:port binding="tns:ForecastServiceHttpBinding" name="ForecastService">
            <wsdlsoap:address location="https://USE_ADDRESS_RETURNED_BY_LOCATION_SERVICE/services/V5/ForecastService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
