// Copyright 2017 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.api.ads.adwords.jaxws.v201702.cm;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
/**
*
* Use this service to manage ads. Available ad types are subclasses of the base {@link Ad} type and
* are shown in the {@link AdGroupAd#ad AdGroupAd.ad} documentation. Here are some of the commonly
* used ad types:
*
* <dl>
* <dt>{@linkplain ExpandedTextAd Expanded Text Ad}
* <dd>The primary ad type used on the search network. An expanded text ad contains two headlines,
* a single description line, a final url, and optional path fields.
* <dt>{@linkplain ImageAd Image Ad}
* <dd>A standard image ad.
* <dt>{@linkplain TemplateAd Template Ad} (<span class="deem">AdWords Display Ad Builder</span>)
* <dd>A flexible ad type that supports various <a
* href="/adwords/api/docs/appendix/templateads">Template Ad formats</a>.
* </dl>
*
*
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.2.9-b130926.1035
* Generated source version: 2.1
*
*/
@WebService(name = "AdGroupAdServiceInterface", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
@XmlSeeAlso({
ObjectFactory.class
})
public interface AdGroupAdServiceInterface {
/**
*
* Returns a list of AdGroupAds.
* AdGroupAds that had been removed are not returned by default.
*
* @param serviceSelector The selector specifying the {@link AdGroupAd}s to return.
* @return The page containing the AdGroupAds that meet the criteria specified by the selector.
* @throws ApiException when there is at least one error with the request.
*
*
* @param serviceSelector
* @return
* returns com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdPage
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
@RequestWrapper(localName = "get", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfaceget")
@ResponseWrapper(localName = "getResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfacegetResponse")
public AdGroupAdPage get(
@WebParam(name = "serviceSelector", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
Selector serviceSelector)
throws ApiException_Exception
;
/**
*
* Applies the list of mutate operations (ie. add, set, remove):
* <p>Add - Creates a new {@linkplain AdGroupAd ad group ad}. The
* {@code adGroupId} must
* reference an existing ad group. The child {@code Ad} must be sufficiently
* specified by constructing a concrete ad type (such as {@code TextAd})
* and setting its fields accordingly.</p>
* <p>Set - Updates an ad group ad. Except for {@code status},
* ad group ad fields are not mutable. Status updates are
* straightforward - the status of the ad group ad is updated as
* specified. If any other field has changed, it will be ignored. If
* you want to change any of the fields other than status, you must
* make a new ad and then remove the old one.</p>
* <p>Remove - Removes the link between the specified AdGroup and
* Ad.</p>
* @param operations The operations to apply.
* @return A list of AdGroupAds where each entry in the list is the result of
* applying the operation in the input list with the same index. For an
* add/set operation, the return AdGroupAd will be what is saved to the db.
* In the case of the remove operation, the return AdGroupAd will simply be
* an AdGroupAd containing an Ad with the id set to the Ad being removed from
* the AdGroup.
*
*
* @param operations
* @return
* returns com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdReturnValue
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
@RequestWrapper(localName = "mutate", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfacemutate")
@ResponseWrapper(localName = "mutateResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfacemutateResponse")
public AdGroupAdReturnValue mutate(
@WebParam(name = "operations", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
List<AdGroupAdOperation> operations)
throws ApiException_Exception
;
/**
*
* Adds labels to the AdGroupAd or removes labels from the AdGroupAd.
* <p>Add - Apply an existing label to an existing {@linkplain AdGroupAd ad group ad}. The
* {@code adGroupId} and {@code adId} must reference an existing
* {@linkplain AdGroupAd ad group ad}. The {@code labelId} must reference an existing
* {@linkplain Label label}.
* <p>Remove - Removes the link between the specified {@linkplain AdGroupAd ad group ad} and
* {@linkplain Label label}.
* @param operations The operations to apply.
* @return A list of AdGroupAdLabel where each entry in the list is the result of
* applying the operation in the input list with the same index. For an
* add operation, the returned AdGroupAdLabel contains the AdGroupId, AdId and the LabelId.
* In the case of a remove operation, the returned AdGroupAdLabel will only have AdGroupId and
* AdId.
* @throws ApiException when there are one or more errors with the request.
*
*
* @param operations
* @return
* returns com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdLabelReturnValue
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
@RequestWrapper(localName = "mutateLabel", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfacemutateLabel")
@ResponseWrapper(localName = "mutateLabelResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfacemutateLabelResponse")
public AdGroupAdLabelReturnValue mutateLabel(
@WebParam(name = "operations", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
List<AdGroupAdLabelOperation> operations)
throws ApiException_Exception
;
/**
*
* Returns a list of AdGroupAds based on the query.
*
* @param query The SQL-like AWQL query string.
* @return A list of AdGroupAds.
* @throws ApiException if problems occur while parsing the query or fetching AdGroupAds.
*
*
* @param query
* @return
* returns com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdPage
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
@RequestWrapper(localName = "query", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfacequery")
@ResponseWrapper(localName = "queryResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfacequeryResponse")
public AdGroupAdPage query(
@WebParam(name = "query", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
String query)
throws ApiException_Exception
;
/**
*
* Upgrades the url for a set of ads.
* @param operations The list of upgrades to apply.
* @return The list of Ads that were upgraded.
*
*
* @param operations
* @return
* returns java.util.List<com.google.api.ads.adwords.jaxws.v201702.cm.Ad>
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
@RequestWrapper(localName = "upgradeUrl", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfaceupgradeUrl")
@ResponseWrapper(localName = "upgradeUrlResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702", className = "com.google.api.ads.adwords.jaxws.v201702.cm.AdGroupAdServiceInterfaceupgradeUrlResponse")
public List<Ad> upgradeUrl(
@WebParam(name = "operations", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201702")
List<AdUrlUpgrade> operations)
throws ApiException_Exception
;
}