// Copyright 2016 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.lib.selectorfields.v201609.cm;
import com.google.api.ads.adwords.lib.selectorfields.EntityField;
import com.google.api.ads.adwords.lib.selectorfields.Filterable;
/**
* A {@code Enum} to facilitate the selection of fields for {@code AdGroupCriterion}.
*/
public enum AdGroupCriterionField implements EntityField {
// Fields constants definitions
/**
* The ad group this criterion is in.
*/
@Filterable
AdGroupId(true),
/**
*
*/
AgeRangeType(false),
/**
* A string that uniquely identifies a mobile application to AdWords API.
* The format of this string is "<code>{platform}-{platform_native_id}</code>", where <code>platform</code> is "1" for iOS apps and "2" for Android apps, and where <code>platform_native_id</code> is the mobile application identifier native to the corresponding platform.
* For iOS, this native identifier is the 9 digit string that appears at the end of an App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is http://itunes.apple.com/us/app/flood-it!-2/id476943146).
* For Android, this native identifier is the application's package name (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link https://play.google.com/store/apps/details?id=com.labpixies.colordrips).
* A well formed app id for AdWords API would thus be "1-476943146" for iOS and "2-com.labpixies.colordrips" for Android.
*/
@Filterable
AppId(true),
/**
*
*/
AppPaymentModelType(false),
/**
* Approval status.
*/
@Filterable
ApprovalStatus(true),
/**
* ID of the base ad group from which this draft/trial ad group criterion was created.
* For base ad groups this is equal to the ad group ID.
* If the ad group was created in the draft or trial and has no corresponding base ad group, this field is null.
* This field is only returned on get requests.
*/
@Filterable
BaseAdGroupId(true),
/**
* ID of the base campaign from which this draft/trial ad group criterion was created.
* This field is only returned on get requests.
*/
@Filterable
BaseCampaignId(true),
/**
* Bid modifier of the criterion which is used when the criterion is not in an absolute bidding dimension.
*/
@Filterable
BidModifier(true),
/**
* Bid type indicates if it is a Target CPA campaign.
* If the Bid type is not specified it defaults to Target CPA.
*/
@Filterable
BidType(true),
/**
* Id of the bidding strategy to be associated with the campaign, ad group or ad group criteria.
* A bidding strategy is created using the BiddingStrategyService ADD operation and is assigned a BiddingStrategyId.
* The BiddingStrategyId can be shared across campaigns, ad groups and ad group criteria.
*/
@Filterable
BiddingStrategyId(true),
/**
* Name of the bidding strategy.
* This is applicable only for flexible bidding strategies.
*/
@Filterable
BiddingStrategyName(true),
/**
* Indicates where the bidding strategy is associated i.e.
* campaign, ad group or ad group criterion.
*/
@Filterable
BiddingStrategySource(true),
/**
* The type of the bidding strategy to be attached.
* <p>For details on portfolio vs.
* standard availability, see the <a href="https://developers.google.com/adwords/api/docs/guides/bidding">bidding guide</a>.
*/
@Filterable
BiddingStrategyType(true),
/**
* Dimension value with which this product partition is refining its parent.
* Undefined for the root partition.
*/
CaseValue(false),
/**
* The YouTube uploader channel id or the channel code of a YouTube content channel.
* <p>The uploader channel id can be obtained from the YouTube id-based URL.
* For example, in <code>https://www.youtube.com/channel/UCEN58iXQg82TXgsDCjWqIkg</code> the channel id is <code>UCEN58iXQg82TXgsDCjWqIkg</code> <p>For more information see: https://support.google.com/youtube/answer/6180214
*/
ChannelId(false),
/**
* The public name for a YouTube user channel.
*/
ChannelName(false),
/**
* Max CPC (cost per click) bid.
* At the ad group level, this represents the default bid applicable for <ul><li>keyword targeting on search network.</li> <li>keywords & placements for content targeting.</li></ul> At the ad group criteria level, this is the max cpc bid.
*/
@Filterable
CpcBid(true),
/**
* The level (ad group or criterion) at which the bid was set.
* This is applicable only at the criteria level.
*/
@Filterable
CpcBidSource(true),
/**
* Max CPM (cost per thousand impressions) bid.
*/
@Filterable
CpmBid(true),
/**
* The level (ad group or criterion) at which the bid was set.
* This is applicable only at the criteria level.
*/
@Filterable
CpmBidSource(true),
/**
* Keywordless criteria coverage - Computed percentage of website coverage based on the website target, negative website targets and negative keywords in the ad group and campaign.
*/
CriteriaCoverage(false),
/**
* Keywordless criteria samples - List of sample urls that matches with the website target.
*/
CriteriaSamples(false),
/**
*
*/
@Filterable
CriteriaType(true),
/**
*
*/
@Filterable
CriterionUse(true),
/**
* Destination URL override when Ad is triggered by this criterion.
* <p>Some sample valid URLs are: "http://www.website.com", "http://www.domain.com/somepath".
* <p>Set to the empty string ("") to clear the destination URL.
*/
@Filterable
DestinationUrl(true),
/**
* List of disapproval reasons.
*/
DisapprovalReasons(false),
/**
* Title of this mobile application.
*/
@Filterable
DisplayName(true),
/**
* The enhanced CPC bidding option for the campaign, which enables bids to be enhanced based on conversion optimizer data.
* For more information about enhanced CPC, see the <a href="//support.google.com/adwords/answer/2464964" >AdWords Help Center</a>.
*/
@Filterable
EnhancedCpcEnabled(true),
/**
* A list of final app URLs that will be used on mobile if the user has the specific app installed.
*/
@Filterable
FinalAppUrls(true),
/**
* A list of possible final mobile URLs after all cross domain redirects.
*/
@Filterable
FinalMobileUrls(true),
/**
* A list of possible final URLs after all cross domain redirects.
*/
@Filterable
FinalUrls(true),
/**
* First page Cpc for this criterion.
*/
@Filterable
FirstPageCpc(true),
/**
* An estimate of the cpc bid needed for your ad to regularly appear in the top position above the search results on google.com when a query matches the keywords exactly.
* Note that meeting this estimate is not a guarantee of ad position, which may depend on other factors.
*/
@Filterable
FirstPositionCpc(true),
/**
*
*/
GenderType(false),
/**
* ID of this criterion.
*/
@Filterable
Id(true),
/**
* Match type of this keyword.
*/
@Filterable
KeywordMatchType(true),
/**
* Text of this keyword (at most 80 characters and ten words).
*/
@Filterable
KeywordText(true),
/**
* Labels that are attached to the AdGroupCriterion.
* To associate an existing {@code Label} to an existing {@code AdGroupCriterion}, use {@code AdGroupCriterionService#mutateLabel} with ADD operator.
* To remove an associated {@code Label} from the {@code AdGroupCriterion}, use {@code AdGroupCriterionService#mutateLabel} with REMOVE operator.
* To filter on {@code Label}s, use one of {@code Predicate.Operator#CONTAINS_ALL}, {@code Predicate.Operator#CONTAINS_ANY}, {@code Predicate.Operator#CONTAINS_NONE} operators with a list of {@code Label} ids.
*/
@Filterable
Labels(true),
/**
* ID of this mobile app category.
* A complete list of the available mobile app categories is available <a href="/adwords/api/docs/appendix/mobileappcategories">here</a>.
*/
MobileAppCategoryId(false),
/**
* The webpage criterion parameter.
*/
Parameter(false),
/**
* ID of the parent product partition subdivision.
* Undefined for the root partition.
*/
ParentCriterionId(false),
/**
*
*/
ParentType(false),
/**
* Type of the product partition.
*/
PartitionType(false),
/**
* The category to target or exclude.
* Each subsequent element in the array describes a more specific sub-category.
* For example, <code>{"Pets & Animals", "Pets", "Dogs"}</code> represents the "Pets & Animals/Pets/Dogs" category.
* A complete list of available vertical categories is available <a href="/adwords/api/docs/appendix/verticals">here</a> This field is required and must not be empty.
*/
Path(false),
/**
* Url of the placement.
* <p>For example, "http://www.domain.com".
*/
@Filterable
PlacementUrl(true),
/**
* The keyword quality score ranges from 1 (lowest) to 10 (highest).
* For v201509 and later, this field may be returned as NULL if AdWords does not have enough information to determine an appropriate quality score value.
*/
@Filterable
QualityScore(true),
/**
* Current user-set state of criterion.
* UserStatus may not be set to {@code REMOVED} and is not supported for ProductPartition criterion.
* On add, defaults to {@code ENABLED} if unspecified.
*/
@Filterable
Status(true),
/**
* Serving status.
*/
@Filterable
SystemServingStatus(true),
/**
* An estimate of the cpc bid needed for your ad to appear above the first page of Google search results when a query matches the keywords exactly.
* Note that meeting this estimate is not a guarantee of ad position, which may depend on other factors.
*/
@Filterable
TopOfPageCpc(true),
/**
* URL template for constructing a tracking URL.
* <p>On update, empty string ("") indicates to clear the field.
*/
@Filterable
TrackingUrlTemplate(true),
/**
* A list of mappings to be used for substituting URL custom parameter tags in the trackingUrlTemplate, finalUrls, and/or finalMobileUrls.
*/
@Filterable
UrlCustomParameters(true),
/**
* Id of this user interest.
* This is a required field.
*/
UserInterestId(false),
/**
* Name of this user interest.
*/
UserInterestName(false),
/**
* Parent Id of this user interest.
*/
UserInterestParentId(false),
/**
* Determines whether a user list is eligible for targeting in the display network.
*/
@Filterable
UserListEligibleForDisplay(true),
/**
* Determines whether a user list is eligible for targeting in the google.com (search) network.
*/
@Filterable
UserListEligibleForSearch(true),
/**
* Id of this user list.
* This is a required field.
*/
UserListId(false),
/**
*
*/
@Filterable
UserListMembershipStatus(true),
/**
*
*/
UserListName(false),
/**
* Id of this vertical.
*/
VerticalId(false),
/**
* Id of the parent of this vertical.
*/
VerticalParentId(false),
/**
* YouTube video id as it appears on the YouTube watch page.
*/
VideoId(false),
/**
* Name of the video.
*/
VideoName(false),
;
private final boolean isFilterable;
private AdGroupCriterionField(boolean isFilterable) {
this.isFilterable = isFilterable;
}
@Override
public boolean isFilterable() {
return this.isFilterable;
}
}