/// <summary>
        /// Returns a list of domain categories that can be used to create {@link WebPage} criterion.
        ///
        /// @param serviceSelector Selects the entities to return domain categories for.
        /// @return A list of domain categories.
        /// @throws ApiException when there is at least one error with the request.
        /// </summary>
        public async Task <DomainCategoryPage> GetDomainCategoryAsync(Selector serviceSelector)
        {
            var binding = new DataServiceSoapBinding("https://adwords.google.com/api/adwords/cm/v201609/DataService", _config.AccessToken, _config.Timeout, _config.EnableGzipCompression, _netUtil, _logger);
            var inData  = new SoapData <DataServiceRequestHeader, DataServiceGetDomainCategory>();

            inData.Header = new DataServiceRequestHeader();
            AssignHeaderValues(inData.Header);
            inData.Body = new DataServiceGetDomainCategory();
            inData.Body.ServiceSelector = serviceSelector;
            var outData = await binding.GetDomainCategoryAsync(inData).ConfigureAwait(false);

            return(outData.Body.Rval);
        }
        /// <summary>
        /// Returns a list of {@link CriterionBidLandscape}s for the criteria that match the query. In the
        /// result, the returned {@link LandscapePoint}s are grouped into {@link CriterionBidLandscape}s
        /// by their criteria, and numberResults of paging limits the total number of
        /// {@link LandscapePoint}s instead of number of {@link CriterionBidLandscape}s.
        ///
        /// @param query The SQL-like AWQL query string.
        /// @return A list of bid landscapes.
        /// @throws ApiException if problems occur while parsing the query or fetching bid landscapes.
        /// </summary>
        public async Task <CriterionBidLandscapePage> QueryCriterionBidLandscapeAsync(string query)
        {
            var binding = new DataServiceSoapBinding("https://adwords.google.com/api/adwords/cm/v201609/DataService", _config.AccessToken, _config.Timeout, _config.EnableGzipCompression, _netUtil, _logger);
            var inData  = new SoapData <DataServiceRequestHeader, DataServiceQueryCriterionBidLandscape>();

            inData.Header = new DataServiceRequestHeader();
            AssignHeaderValues(inData.Header);
            inData.Body       = new DataServiceQueryCriterionBidLandscape();
            inData.Body.Query = query;
            var outData = await binding.QueryCriterionBidLandscapeAsync(inData).ConfigureAwait(false);

            return(outData.Body.Rval);
        }