// 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.v201607.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 CampaignCriterion}. */ public enum CampaignCriterionField implements EntityField { // Fields constants definitions /** * Full address; <code>null</code> if unknonwn. */ Address(false), /** * */ 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), /** * ID of the base campaign from which this draft/trial campaign criterion was created. * This field is only returned on get requests. */ @Filterable BaseCampaignId(true), /** * The modifier for bids when the criterion matches. * <p> Valid modifier values range from {@code 0.1} to {@code 10.0}, with {@code 0.0} reserved for opting out of platform criterion. * <p>Specify {@code -1.0} to clear existing bid modifier. */ @Filterable BidModifier(true), /** * The campaign that the criterion is in. */ @Filterable CampaignId(true), /** * Country code of the carrier. * Can be {@code null} if not applicable, e.g., for Carrier "Wifi". */ CarrierCountryCode(false), /** * Name of the carrier. */ CarrierName(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), /** * Content label type */ @Filterable ContentLabelType(true), /** * */ @Filterable CriteriaType(true), /** * Day of the week the schedule applies to. */ DayOfWeek(false), /** * */ DeviceName(false), /** * */ DeviceType(false), /** * */ Dimensions(false), /** * Title of this mobile application. */ @Filterable DisplayName(true), /** * Display type of the location criterion. */ DisplayType(false), /** * Ending hour in 24 hour time; <code>24</code> signifies end of the day. */ EndHour(false), /** * Interval ends these minutes after the ending hour. * The value can be 0, 15, 30, and 45. */ EndMinute(false), /** * Feed to be used for targeting around locations. * This is required for distance targets. */ FeedId(false), /** * */ GenderType(false), /** * Latitude and longitude. */ GeoPoint(false), /** * ID of this criterion. */ @Filterable Id(true), /** * */ @Filterable IpAddress(true), /** * */ @Filterable IsNegative(true), /** * Match type of this keyword. */ @Filterable KeywordMatchType(true), /** * Text of this keyword (at most 80 characters and ten words). */ @Filterable KeywordText(true), /** * */ LanguageCode(false), /** * */ LanguageName(false), /** * Name of the location criterion. * <b> Note:</b> This field is filterable only in LocationCriterionService. */ @Filterable LocationName(true), /** * */ ManufacturerName(false), /** * Matching function to filter out locations targeted by the criteria. * This allows advertisers to target based on the semantics of the location. */ MatchingFunction(false), /** * 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), /** * */ OperatingSystemName(false), /** * The operator type. */ OperatorType(false), /** * The OS Major Version number. */ OsMajorVersion(false), /** * The OS Minor Version number. */ OsMinorVersion(false), /** * The webpage criterion parameter. */ Parameter(false), /** * Ordered list of parents of the location criterion. */ ParentLocations(false), /** * */ ParentType(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), /** * */ @Filterable PlatformName(true), /** * Radius distance units. */ RadiusDistanceUnits(false), /** * Radius expressed in distance units. */ RadiusInUnits(false), /** * Starting hour in 24 hour time. */ StartHour(false), /** * Interval starts these minutes after the starting hour. * The value can be 0, 15, 30, and 45. */ StartMinute(false), /** * The targeting status of the location criterion. */ TargetingStatus(false), /** * 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 CampaignCriterionField(boolean isFilterable) { this.isFilterable = isFilterable; } @Override public boolean isFilterable() { return this.isFilterable; } }