// Copyright 2026 Google LLC
//
// 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.

syntax = "proto3";

package google.ads.admanager.v1;

option csharp_namespace = "Google.Ads.AdManager.V1";
option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager";
option java_multiple_files = true;
option java_outer_classname = "ForecastingEnumsProto";
option java_package = "com.google.ads.admanager.v1";
option php_namespace = "Google\\Ads\\AdManager\\V1";
option ruby_package = "Google::Ads::AdManager::V1";

// Wrapper message for
// [ForecastingGrpUnit][google.ads.admanager.v1.ForecastingGrpUnitEnum.ForecastingGrpUnit]
message ForecastingGrpUnitEnum {
  // Type of unit represented in a GRP demographic breakdown.
  enum ForecastingGrpUnit {
    // Default value. This value is unused.
    FORECASTING_GRP_UNIT_UNSPECIFIED = 0;

    // The type of unit represented in the GRP demographic breakdown is
    // impressions.
    IMPRESSIONS = 1;
  }
}

// Wrapper message for
// [ForecastingTargetingDimension][google.ads.admanager.v1.ForecastingTargetingDimensionEnum.ForecastingTargetingDimension]
message ForecastingTargetingDimensionEnum {
  // Targeting dimension of targeting breakdowns.
  enum ForecastingTargetingDimension {
    // Default value. This value is unused.
    FORECASTING_TARGETING_DIMENSION_UNSPECIFIED = 0;

    // The targeting dimension is ad size.
    AD_SIZE = 1;

    // The targeting dimension is ad unit.
    AD_UNIT = 2;

    // The targeting dimension is bandwidth group.
    BANDWIDTH_GROUP = 3;

    // The targeting dimension is browser.
    BROWSER = 4;

    // The targeting dimension is browser language.
    BROWSER_LANGUAGE = 5;

    // The targeting dimension is content.
    CONTENT = 6;

    // The targeting dimension is content label.
    CONTENT_LABEL = 7;

    // The targeting dimension is custom criteria.
    CUSTOM_CRITERIA = 8;

    // The targeting dimension is device capability.
    DEVICE_CAPABILITY = 9;

    // The targeting dimension is device category.
    DEVICE_CATEGORY = 10;

    // The targeting dimension is device manufacturer.
    DEVICE_MANUFACTURER = 11;

    // The targeting dimension is forecasted creative restriction.
    FORECASTED_CREATIVE_RESTRICTION = 12;

    // The targeting dimension is geography.
    GEOGRAPHY = 13;

    // The targeting dimension is mobile application.
    MOBILE_APPLICATION = 14;

    // The targeting dimension is mobile carrier.
    MOBILE_CARRIER = 15;

    // The targeting dimension is operating system.
    OPERATING_SYSTEM = 16;

    // The targeting dimension is placement.
    PLACEMENT = 17;

    // The targeting dimension is user domain.
    USER_DOMAIN = 18;

    // The targeting dimension is vertical.
    VERTICAL = 19;

    // The targeting dimension is video position.
    VIDEO_POSITION = 20;
  }
}

// Wrapper message for
// [ForecastingGrpGender][google.ads.admanager.v1.ForecastingGrpGenderEnum.ForecastingGrpGender]
message ForecastingGrpGenderEnum {
  // The demographic gender associated with a GRP demographic forecast.
  enum ForecastingGrpGender {
    // Default value. This value is unused.
    FORECASTING_GRP_GENDER_UNSPECIFIED = 0;

    // The demographic gender is female.
    GENDER_FEMALE = 1;

    // The demographic gender is male.
    GENDER_MALE = 2;

    // When gender is not available due to low impression levels, GRP privacy
    // thresholds are activated and prevent us from specifying gender.
    GENDER_UNKNOWN = 3;
  }
}

// Wrapper message for
// [ForecastingGrpAge][google.ads.admanager.v1.ForecastingGrpAgeEnum.ForecastingGrpAge]
message ForecastingGrpAgeEnum {
  // The age range associated with a GRP demographic forecast.
  enum ForecastingGrpAge {
    // Default value. This value is unused.
    FORECASTING_GRP_AGE_UNSPECIFIED = 0;

    // GRP age range from 0 to 17 years old.
    AGE_0_TO_17 = 1;

    // GRP age range from 18 to 24 years old.
    AGE_18_TO_24 = 2;

    // GRP age range from 18 to 49 years old.
    AGE_18_TO_49 = 3;

    // GRP age range from 21 years old and up.
    AGE_21_PLUS = 4;

    // GRP age range from 21 to 34 years old.
    AGE_21_TO_34 = 5;

    // GRP age range from 21 to 44 years old.
    AGE_21_TO_44 = 6;

    // GRP age range from 21 to 49 years old.
    AGE_21_TO_49 = 7;

    // GRP age range from 21 to 54 years old.
    AGE_21_TO_54 = 8;

    // GRP age range from 21 to 64 years old.
    AGE_21_TO_64 = 9;

    // GRP age range from 25 to 34 years old.
    AGE_25_TO_34 = 10;

    // GRP age range from 25 to 49 years old.
    AGE_25_TO_49 = 11;

    // GRP age range from 35 to 44 years old.
    AGE_35_TO_44 = 12;

    // GRP age range from 35 to 49 years old.
    AGE_35_TO_49 = 13;

    // GRP age range from 45 to 54 years old.
    AGE_45_TO_54 = 14;

    // GRP age range from 55 to 64 years old.
    AGE_55_TO_64 = 15;

    // GRP age range from 65 years old and up.
    AGE_65_PLUS = 16;

    // When the age range is not available due to low impression levels, GRP
    // privacy thresholds are activated and prevent us from specifying age.
    AGE_UNKNOWN = 17;
  }
}
