# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/ads/googleads_v2/proto/services/reach_plan_service.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.ads.google_ads.v2.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v2_dot_proto_dot_common_dot_criteria__pb2
from google.ads.google_ads.v2.proto.enums import reach_plan_ad_length_pb2 as google_dot_ads_dot_googleads__v2_dot_proto_dot_enums_dot_reach__plan__ad__length__pb2
from google.ads.google_ads.v2.proto.enums import reach_plan_age_range_pb2 as google_dot_ads_dot_googleads__v2_dot_proto_dot_enums_dot_reach__plan__age__range__pb2
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
from google.api import client_pb2 as google_dot_api_dot_client__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/ads/googleads_v2/proto/services/reach_plan_service.proto',
  package='google.ads.googleads.v2.services',
  syntax='proto3',
  serialized_options=_b('\n$com.google.ads.googleads.v2.servicesB\025ReachPlanServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v2/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V2.Services\312\002 Google\\Ads\\GoogleAds\\V2\\Services\352\002$Google::Ads::GoogleAds::V2::Services'),
  serialized_pb=_b('\n?google/ads/googleads_v2/proto/services/reach_plan_service.proto\x12 google.ads.googleads.v2.services\x1a\x33google/ads/googleads_v2/proto/common/criteria.proto\x1a>google/ads/googleads_v2/proto/enums/reach_plan_ad_length.proto\x1a>google/ads/googleads_v2/proto/enums/reach_plan_age_range.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/api/client.proto\"\x1f\n\x1dListPlannableLocationsRequest\"r\n\x1eListPlannableLocationsResponse\x12P\n\x13plannable_locations\x18\x01 \x03(\x0b\x32\x33.google.ads.googleads.v2.services.PlannableLocation\"\xa1\x01\n\x11PlannableLocation\x12(\n\x02id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x11parent_country_id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"[\n\x1cListPlannableProductsRequest\x12;\n\x15plannable_location_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"l\n\x1dListPlannableProductsResponse\x12K\n\x10product_metadata\x18\x01 \x03(\x0b\x32\x31.google.ads.googleads.v2.services.ProductMetadata\"\xa2\x01\n\x0fProductMetadata\x12<\n\x16plannable_product_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12Q\n\x13plannable_targeting\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v2.services.PlannableTargeting\"\xea\x01\n\x12PlannableTargeting\x12Z\n\nage_ranges\x18\x01 \x03(\x0e\x32\x46.google.ads.googleads.v2.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange\x12;\n\x07genders\x18\x02 \x03(\x0b\x32*.google.ads.googleads.v2.common.GenderInfo\x12;\n\x07\x64\x65vices\x18\x03 \x03(\x0b\x32*.google.ads.googleads.v2.common.DeviceInfo\"\x9f\x02\n\x1eGenerateProductMixIdeasRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12;\n\x15plannable_location_id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rcurrency_code\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\rbudget_micros\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x42\n\x0bpreferences\x18\x05 \x01(\x0b\x32-.google.ads.googleads.v2.services.Preferences\"\xc1\x02\n\x0bPreferences\x12\x30\n\x0cis_skippable\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x35\n\x11starts_with_sound\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12Y\n\tad_length\x18\x03 \x01(\x0e\x32\x46.google.ads.googleads.v2.enums.ReachPlanAdLengthEnum.ReachPlanAdLength\x12\x34\n\x10top_content_only\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x14has_guaranteed_price\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"r\n\x1fGenerateProductMixIdeasResponse\x12O\n\x12product_allocation\x18\x01 \x03(\x0b\x32\x33.google.ads.googleads.v2.services.ProductAllocation\"\x85\x01\n\x11ProductAllocation\x12<\n\x16plannable_product_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\rbudget_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\xbc\x03\n\x1cGenerateReachForecastRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12\x33\n\rcurrency_code\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12M\n\x11\x63\x61mpaign_duration\x18\x03 \x01(\x0b\x32\x32.google.ads.googleads.v2.services.CampaignDuration\x12\x39\n\x14\x63ookie_frequency_cap\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12<\n\x17min_effective_frequency\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12>\n\ttargeting\x18\x06 \x01(\x0b\x32+.google.ads.googleads.v2.services.Targeting\x12J\n\x10planned_products\x18\x07 \x03(\x0b\x32\x30.google.ads.googleads.v2.services.PlannedProduct\"\x9d\x02\n\tTargeting\x12;\n\x15plannable_location_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12Y\n\tage_range\x18\x02 \x01(\x0e\x32\x46.google.ads.googleads.v2.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange\x12;\n\x07genders\x18\x03 \x03(\x0b\x32*.google.ads.googleads.v2.common.GenderInfo\x12;\n\x07\x64\x65vices\x18\x04 \x03(\x0b\x32*.google.ads.googleads.v2.common.DeviceInfo\"I\n\x10\x43\x61mpaignDuration\x12\x35\n\x10\x64uration_in_days\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\"\x82\x01\n\x0ePlannedProduct\x12<\n\x16plannable_product_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\rbudget_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\xc1\x01\n\x1dGenerateReachForecastResponse\x12]\n\x1aon_target_audience_metrics\x18\x01 \x01(\x0b\x32\x39.google.ads.googleads.v2.services.OnTargetAudienceMetrics\x12\x41\n\x0breach_curve\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v2.services.ReachCurve\"V\n\nReachCurve\x12H\n\x0freach_forecasts\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v2.services.ReachForecast\"\xdc\x01\n\rReachForecast\x12\x30\n\x0b\x63ost_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12<\n\x08\x66orecast\x18\x02 \x01(\x0b\x32*.google.ads.googleads.v2.services.Forecast\x12[\n\x1e\x66orecasted_product_allocations\x18\x03 \x03(\x0b\x32\x33.google.ads.googleads.v2.services.ProductAllocation\"\xe6\x01\n\x08\x46orecast\x12\x34\n\x0fon_target_reach\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x0btotal_reach\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x15on_target_impressions\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x36\n\x11total_impressions\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\x90\x01\n\x17OnTargetAudienceMetrics\x12:\n\x15youtube_audience_size\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x39\n\x14\x63\x65nsus_audience_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value2\xf3\x06\n\x10ReachPlanService\x12\xc2\x01\n\x16ListPlannableLocations\x12?.google.ads.googleads.v2.services.ListPlannableLocationsRequest\x1a@.google.ads.googleads.v2.services.ListPlannableLocationsResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v2:listPlannableLocations:\x01*\x12\xbe\x01\n\x15ListPlannableProducts\x12>.google.ads.googleads.v2.services.ListPlannableProductsRequest\x1a?.google.ads.googleads.v2.services.ListPlannableProductsResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/v2:listPlannableProducts:\x01*\x12\xe0\x01\n\x17GenerateProductMixIdeas\x12@.google.ads.googleads.v2.services.GenerateProductMixIdeasRequest\x1a\x41.google.ads.googleads.v2.services.GenerateProductMixIdeasResponse\"@\x82\xd3\xe4\x93\x02:\"5/v2/customers/{customer_id=*}:generateProductMixIdeas:\x01*\x12\xd8\x01\n\x15GenerateReachForecast\x12>.google.ads.googleads.v2.services.GenerateReachForecastRequest\x1a?.google.ads.googleads.v2.services.GenerateReachForecastResponse\">\x82\xd3\xe4\x93\x02\x38\"3/v2/customers/{customer_id=*}:generateReachForecast:\x01*\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfc\x01\n$com.google.ads.googleads.v2.servicesB\x15ReachPlanServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v2/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V2.Services\xca\x02 Google\\Ads\\GoogleAds\\V2\\Services\xea\x02$Google::Ads::GoogleAds::V2::Servicesb\x06proto3')
  ,
  dependencies=[google_dot_ads_dot_googleads__v2_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v2_dot_proto_dot_enums_dot_reach__plan__ad__length__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v2_dot_proto_dot_enums_dot_reach__plan__age__range__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,])




_LISTPLANNABLELOCATIONSREQUEST = _descriptor.Descriptor(
  name='ListPlannableLocationsRequest',
  full_name='google.ads.googleads.v2.services.ListPlannableLocationsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=369,
  serialized_end=400,
)


_LISTPLANNABLELOCATIONSRESPONSE = _descriptor.Descriptor(
  name='ListPlannableLocationsResponse',
  full_name='google.ads.googleads.v2.services.ListPlannableLocationsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='plannable_locations', full_name='google.ads.googleads.v2.services.ListPlannableLocationsResponse.plannable_locations', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=402,
  serialized_end=516,
)


_PLANNABLELOCATION = _descriptor.Descriptor(
  name='PlannableLocation',
  full_name='google.ads.googleads.v2.services.PlannableLocation',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='google.ads.googleads.v2.services.PlannableLocation.id', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='google.ads.googleads.v2.services.PlannableLocation.name', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='parent_country_id', full_name='google.ads.googleads.v2.services.PlannableLocation.parent_country_id', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=519,
  serialized_end=680,
)


_LISTPLANNABLEPRODUCTSREQUEST = _descriptor.Descriptor(
  name='ListPlannableProductsRequest',
  full_name='google.ads.googleads.v2.services.ListPlannableProductsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='plannable_location_id', full_name='google.ads.googleads.v2.services.ListPlannableProductsRequest.plannable_location_id', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=682,
  serialized_end=773,
)


_LISTPLANNABLEPRODUCTSRESPONSE = _descriptor.Descriptor(
  name='ListPlannableProductsResponse',
  full_name='google.ads.googleads.v2.services.ListPlannableProductsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='product_metadata', full_name='google.ads.googleads.v2.services.ListPlannableProductsResponse.product_metadata', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=775,
  serialized_end=883,
)


_PRODUCTMETADATA = _descriptor.Descriptor(
  name='ProductMetadata',
  full_name='google.ads.googleads.v2.services.ProductMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='plannable_product_code', full_name='google.ads.googleads.v2.services.ProductMetadata.plannable_product_code', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='plannable_targeting', full_name='google.ads.googleads.v2.services.ProductMetadata.plannable_targeting', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=886,
  serialized_end=1048,
)


_PLANNABLETARGETING = _descriptor.Descriptor(
  name='PlannableTargeting',
  full_name='google.ads.googleads.v2.services.PlannableTargeting',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='age_ranges', full_name='google.ads.googleads.v2.services.PlannableTargeting.age_ranges', index=0,
      number=1, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='genders', full_name='google.ads.googleads.v2.services.PlannableTargeting.genders', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='devices', full_name='google.ads.googleads.v2.services.PlannableTargeting.devices', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1051,
  serialized_end=1285,
)


_GENERATEPRODUCTMIXIDEASREQUEST = _descriptor.Descriptor(
  name='GenerateProductMixIdeasRequest',
  full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='customer_id', full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasRequest.customer_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='plannable_location_id', full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasRequest.plannable_location_id', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='currency_code', full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasRequest.currency_code', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='budget_micros', full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasRequest.budget_micros', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='preferences', full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasRequest.preferences', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1288,
  serialized_end=1575,
)


_PREFERENCES = _descriptor.Descriptor(
  name='Preferences',
  full_name='google.ads.googleads.v2.services.Preferences',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='is_skippable', full_name='google.ads.googleads.v2.services.Preferences.is_skippable', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='starts_with_sound', full_name='google.ads.googleads.v2.services.Preferences.starts_with_sound', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='ad_length', full_name='google.ads.googleads.v2.services.Preferences.ad_length', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='top_content_only', full_name='google.ads.googleads.v2.services.Preferences.top_content_only', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='has_guaranteed_price', full_name='google.ads.googleads.v2.services.Preferences.has_guaranteed_price', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1578,
  serialized_end=1899,
)


_GENERATEPRODUCTMIXIDEASRESPONSE = _descriptor.Descriptor(
  name='GenerateProductMixIdeasResponse',
  full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='product_allocation', full_name='google.ads.googleads.v2.services.GenerateProductMixIdeasResponse.product_allocation', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1901,
  serialized_end=2015,
)


_PRODUCTALLOCATION = _descriptor.Descriptor(
  name='ProductAllocation',
  full_name='google.ads.googleads.v2.services.ProductAllocation',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='plannable_product_code', full_name='google.ads.googleads.v2.services.ProductAllocation.plannable_product_code', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='budget_micros', full_name='google.ads.googleads.v2.services.ProductAllocation.budget_micros', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2018,
  serialized_end=2151,
)


_GENERATEREACHFORECASTREQUEST = _descriptor.Descriptor(
  name='GenerateReachForecastRequest',
  full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='customer_id', full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest.customer_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='currency_code', full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest.currency_code', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='campaign_duration', full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest.campaign_duration', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cookie_frequency_cap', full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest.cookie_frequency_cap', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='min_effective_frequency', full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest.min_effective_frequency', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='targeting', full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest.targeting', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='planned_products', full_name='google.ads.googleads.v2.services.GenerateReachForecastRequest.planned_products', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2154,
  serialized_end=2598,
)


_TARGETING = _descriptor.Descriptor(
  name='Targeting',
  full_name='google.ads.googleads.v2.services.Targeting',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='plannable_location_id', full_name='google.ads.googleads.v2.services.Targeting.plannable_location_id', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='age_range', full_name='google.ads.googleads.v2.services.Targeting.age_range', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='genders', full_name='google.ads.googleads.v2.services.Targeting.genders', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='devices', full_name='google.ads.googleads.v2.services.Targeting.devices', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2601,
  serialized_end=2886,
)


_CAMPAIGNDURATION = _descriptor.Descriptor(
  name='CampaignDuration',
  full_name='google.ads.googleads.v2.services.CampaignDuration',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='duration_in_days', full_name='google.ads.googleads.v2.services.CampaignDuration.duration_in_days', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2888,
  serialized_end=2961,
)


_PLANNEDPRODUCT = _descriptor.Descriptor(
  name='PlannedProduct',
  full_name='google.ads.googleads.v2.services.PlannedProduct',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='plannable_product_code', full_name='google.ads.googleads.v2.services.PlannedProduct.plannable_product_code', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='budget_micros', full_name='google.ads.googleads.v2.services.PlannedProduct.budget_micros', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2964,
  serialized_end=3094,
)


_GENERATEREACHFORECASTRESPONSE = _descriptor.Descriptor(
  name='GenerateReachForecastResponse',
  full_name='google.ads.googleads.v2.services.GenerateReachForecastResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='on_target_audience_metrics', full_name='google.ads.googleads.v2.services.GenerateReachForecastResponse.on_target_audience_metrics', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='reach_curve', full_name='google.ads.googleads.v2.services.GenerateReachForecastResponse.reach_curve', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3097,
  serialized_end=3290,
)


_REACHCURVE = _descriptor.Descriptor(
  name='ReachCurve',
  full_name='google.ads.googleads.v2.services.ReachCurve',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='reach_forecasts', full_name='google.ads.googleads.v2.services.ReachCurve.reach_forecasts', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3292,
  serialized_end=3378,
)


_REACHFORECAST = _descriptor.Descriptor(
  name='ReachForecast',
  full_name='google.ads.googleads.v2.services.ReachForecast',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cost_micros', full_name='google.ads.googleads.v2.services.ReachForecast.cost_micros', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='forecast', full_name='google.ads.googleads.v2.services.ReachForecast.forecast', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='forecasted_product_allocations', full_name='google.ads.googleads.v2.services.ReachForecast.forecasted_product_allocations', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3381,
  serialized_end=3601,
)


_FORECAST = _descriptor.Descriptor(
  name='Forecast',
  full_name='google.ads.googleads.v2.services.Forecast',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='on_target_reach', full_name='google.ads.googleads.v2.services.Forecast.on_target_reach', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='total_reach', full_name='google.ads.googleads.v2.services.Forecast.total_reach', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='on_target_impressions', full_name='google.ads.googleads.v2.services.Forecast.on_target_impressions', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='total_impressions', full_name='google.ads.googleads.v2.services.Forecast.total_impressions', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3604,
  serialized_end=3834,
)


_ONTARGETAUDIENCEMETRICS = _descriptor.Descriptor(
  name='OnTargetAudienceMetrics',
  full_name='google.ads.googleads.v2.services.OnTargetAudienceMetrics',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='youtube_audience_size', full_name='google.ads.googleads.v2.services.OnTargetAudienceMetrics.youtube_audience_size', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='census_audience_size', full_name='google.ads.googleads.v2.services.OnTargetAudienceMetrics.census_audience_size', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3837,
  serialized_end=3981,
)

_LISTPLANNABLELOCATIONSRESPONSE.fields_by_name['plannable_locations'].message_type = _PLANNABLELOCATION
_PLANNABLELOCATION.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_PLANNABLELOCATION.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_PLANNABLELOCATION.fields_by_name['parent_country_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_LISTPLANNABLEPRODUCTSREQUEST.fields_by_name['plannable_location_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_LISTPLANNABLEPRODUCTSRESPONSE.fields_by_name['product_metadata'].message_type = _PRODUCTMETADATA
_PRODUCTMETADATA.fields_by_name['plannable_product_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_PRODUCTMETADATA.fields_by_name['plannable_targeting'].message_type = _PLANNABLETARGETING
_PLANNABLETARGETING.fields_by_name['age_ranges'].enum_type = google_dot_ads_dot_googleads__v2_dot_proto_dot_enums_dot_reach__plan__age__range__pb2._REACHPLANAGERANGEENUM_REACHPLANAGERANGE
_PLANNABLETARGETING.fields_by_name['genders'].message_type = google_dot_ads_dot_googleads__v2_dot_proto_dot_common_dot_criteria__pb2._GENDERINFO
_PLANNABLETARGETING.fields_by_name['devices'].message_type = google_dot_ads_dot_googleads__v2_dot_proto_dot_common_dot_criteria__pb2._DEVICEINFO
_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['plannable_location_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['budget_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['preferences'].message_type = _PREFERENCES
_PREFERENCES.fields_by_name['is_skippable'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_PREFERENCES.fields_by_name['starts_with_sound'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_PREFERENCES.fields_by_name['ad_length'].enum_type = google_dot_ads_dot_googleads__v2_dot_proto_dot_enums_dot_reach__plan__ad__length__pb2._REACHPLANADLENGTHENUM_REACHPLANADLENGTH
_PREFERENCES.fields_by_name['top_content_only'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_PREFERENCES.fields_by_name['has_guaranteed_price'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_GENERATEPRODUCTMIXIDEASRESPONSE.fields_by_name['product_allocation'].message_type = _PRODUCTALLOCATION
_PRODUCTALLOCATION.fields_by_name['plannable_product_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_PRODUCTALLOCATION.fields_by_name['budget_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_GENERATEREACHFORECASTREQUEST.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_GENERATEREACHFORECASTREQUEST.fields_by_name['campaign_duration'].message_type = _CAMPAIGNDURATION
_GENERATEREACHFORECASTREQUEST.fields_by_name['cookie_frequency_cap'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE
_GENERATEREACHFORECASTREQUEST.fields_by_name['min_effective_frequency'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE
_GENERATEREACHFORECASTREQUEST.fields_by_name['targeting'].message_type = _TARGETING
_GENERATEREACHFORECASTREQUEST.fields_by_name['planned_products'].message_type = _PLANNEDPRODUCT
_TARGETING.fields_by_name['plannable_location_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_TARGETING.fields_by_name['age_range'].enum_type = google_dot_ads_dot_googleads__v2_dot_proto_dot_enums_dot_reach__plan__age__range__pb2._REACHPLANAGERANGEENUM_REACHPLANAGERANGE
_TARGETING.fields_by_name['genders'].message_type = google_dot_ads_dot_googleads__v2_dot_proto_dot_common_dot_criteria__pb2._GENDERINFO
_TARGETING.fields_by_name['devices'].message_type = google_dot_ads_dot_googleads__v2_dot_proto_dot_common_dot_criteria__pb2._DEVICEINFO
_CAMPAIGNDURATION.fields_by_name['duration_in_days'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE
_PLANNEDPRODUCT.fields_by_name['plannable_product_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_PLANNEDPRODUCT.fields_by_name['budget_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_GENERATEREACHFORECASTRESPONSE.fields_by_name['on_target_audience_metrics'].message_type = _ONTARGETAUDIENCEMETRICS
_GENERATEREACHFORECASTRESPONSE.fields_by_name['reach_curve'].message_type = _REACHCURVE
_REACHCURVE.fields_by_name['reach_forecasts'].message_type = _REACHFORECAST
_REACHFORECAST.fields_by_name['cost_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_REACHFORECAST.fields_by_name['forecast'].message_type = _FORECAST
_REACHFORECAST.fields_by_name['forecasted_product_allocations'].message_type = _PRODUCTALLOCATION
_FORECAST.fields_by_name['on_target_reach'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_FORECAST.fields_by_name['total_reach'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_FORECAST.fields_by_name['on_target_impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_FORECAST.fields_by_name['total_impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_ONTARGETAUDIENCEMETRICS.fields_by_name['youtube_audience_size'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_ONTARGETAUDIENCEMETRICS.fields_by_name['census_audience_size'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
DESCRIPTOR.message_types_by_name['ListPlannableLocationsRequest'] = _LISTPLANNABLELOCATIONSREQUEST
DESCRIPTOR.message_types_by_name['ListPlannableLocationsResponse'] = _LISTPLANNABLELOCATIONSRESPONSE
DESCRIPTOR.message_types_by_name['PlannableLocation'] = _PLANNABLELOCATION
DESCRIPTOR.message_types_by_name['ListPlannableProductsRequest'] = _LISTPLANNABLEPRODUCTSREQUEST
DESCRIPTOR.message_types_by_name['ListPlannableProductsResponse'] = _LISTPLANNABLEPRODUCTSRESPONSE
DESCRIPTOR.message_types_by_name['ProductMetadata'] = _PRODUCTMETADATA
DESCRIPTOR.message_types_by_name['PlannableTargeting'] = _PLANNABLETARGETING
DESCRIPTOR.message_types_by_name['GenerateProductMixIdeasRequest'] = _GENERATEPRODUCTMIXIDEASREQUEST
DESCRIPTOR.message_types_by_name['Preferences'] = _PREFERENCES
DESCRIPTOR.message_types_by_name['GenerateProductMixIdeasResponse'] = _GENERATEPRODUCTMIXIDEASRESPONSE
DESCRIPTOR.message_types_by_name['ProductAllocation'] = _PRODUCTALLOCATION
DESCRIPTOR.message_types_by_name['GenerateReachForecastRequest'] = _GENERATEREACHFORECASTREQUEST
DESCRIPTOR.message_types_by_name['Targeting'] = _TARGETING
DESCRIPTOR.message_types_by_name['CampaignDuration'] = _CAMPAIGNDURATION
DESCRIPTOR.message_types_by_name['PlannedProduct'] = _PLANNEDPRODUCT
DESCRIPTOR.message_types_by_name['GenerateReachForecastResponse'] = _GENERATEREACHFORECASTRESPONSE
DESCRIPTOR.message_types_by_name['ReachCurve'] = _REACHCURVE
DESCRIPTOR.message_types_by_name['ReachForecast'] = _REACHFORECAST
DESCRIPTOR.message_types_by_name['Forecast'] = _FORECAST
DESCRIPTOR.message_types_by_name['OnTargetAudienceMetrics'] = _ONTARGETAUDIENCEMETRICS
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ListPlannableLocationsRequest = _reflection.GeneratedProtocolMessageType('ListPlannableLocationsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTPLANNABLELOCATIONSREQUEST,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Request message for [ReachForecastService.ListPlannableLocations][]
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ListPlannableLocationsRequest)
  ))
_sym_db.RegisterMessage(ListPlannableLocationsRequest)

ListPlannableLocationsResponse = _reflection.GeneratedProtocolMessageType('ListPlannableLocationsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPLANNABLELOCATIONSRESPONSE,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """The list of plannable locations.
  
  
  Attributes:
      plannable_locations:
          The list of locations available for planning (Countries, DMAs,
          sub-countries). For locations like Countries, DMAs see https:/
          /developers.google.com/adwords/api/docs/appendix/geotargeting
          for more information.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ListPlannableLocationsResponse)
  ))
_sym_db.RegisterMessage(ListPlannableLocationsResponse)

PlannableLocation = _reflection.GeneratedProtocolMessageType('PlannableLocation', (_message.Message,), dict(
  DESCRIPTOR = _PLANNABLELOCATION,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """A plannable location: a country, a DMA, a metro region, a tv region, a
  province.
  
  
  Attributes:
      id:
          The location identifier.
      name:
          The unique location name in english.
      parent_country_id:
          The parent country code, not present if location is a country.
          If present will always be a criterion id: additional
          information, such as country name are returned both via
          ListPlannableLocations or directly by accessing
          GeoTargetConstantService with the criterion id.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.PlannableLocation)
  ))
_sym_db.RegisterMessage(PlannableLocation)

ListPlannableProductsRequest = _reflection.GeneratedProtocolMessageType('ListPlannableProductsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTPLANNABLEPRODUCTSREQUEST,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Request to list available products in a given location.
  
  
  Attributes:
      plannable_location_id:
          The ID of the selected location for planning. To list the
          available plannable location ids use ListPlannableLocations.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ListPlannableProductsRequest)
  ))
_sym_db.RegisterMessage(ListPlannableProductsRequest)

ListPlannableProductsResponse = _reflection.GeneratedProtocolMessageType('ListPlannableProductsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPLANNABLEPRODUCTSRESPONSE,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """A response with all available products.
  
  
  Attributes:
      product_metadata:
          The list of products available for planning and related
          targeting metadata.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ListPlannableProductsResponse)
  ))
_sym_db.RegisterMessage(ListPlannableProductsResponse)

ProductMetadata = _reflection.GeneratedProtocolMessageType('ProductMetadata', (_message.Message,), dict(
  DESCRIPTOR = _PRODUCTMETADATA,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """The metadata associated with an available plannable product.
  
  
  Attributes:
      plannable_product_code:
          The code associated with the ad product. E.g. Trueview, Bumper
          To list the available plannable product codes use
          ListPlannableProducts.
      plannable_targeting:
          The allowed plannable targeting for this product.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ProductMetadata)
  ))
_sym_db.RegisterMessage(ProductMetadata)

PlannableTargeting = _reflection.GeneratedProtocolMessageType('PlannableTargeting', (_message.Message,), dict(
  DESCRIPTOR = _PLANNABLETARGETING,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """The targeting for which traffic metrics will be reported.
  
  
  Attributes:
      age_ranges:
          Allowed plannable age ranges for the product for which metrics
          will be reported. Actual targeting is computed by mapping this
          age range onto standard Google common.AgeRangeInfo values.
      genders:
          Targetable genders for the ad product.
      devices:
          Targetable devices for the ad product.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.PlannableTargeting)
  ))
_sym_db.RegisterMessage(PlannableTargeting)

GenerateProductMixIdeasRequest = _reflection.GeneratedProtocolMessageType('GenerateProductMixIdeasRequest', (_message.Message,), dict(
  DESCRIPTOR = _GENERATEPRODUCTMIXIDEASREQUEST,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Request message for [ReachForecastService.GenerateProductMixIdeas][].
  
  
  Attributes:
      customer_id:
          The ID of the customer.
      plannable_location_id:
          Required. The ID of the location, this is one of the ids
          returned by ListPlannableLocations.
      currency_code:
          Required. Currency code. Three-character ISO 4217 currency
          code.
      budget_micros:
          Required. Total budget. Amount in micros. One million is
          equivalent to one unit.
      preferences:
          The preferences of the suggested product mix. An unset
          preference is interpreted as all possible values are allowed,
          unless explicitly specified.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.GenerateProductMixIdeasRequest)
  ))
_sym_db.RegisterMessage(GenerateProductMixIdeasRequest)

Preferences = _reflection.GeneratedProtocolMessageType('Preferences', (_message.Message,), dict(
  DESCRIPTOR = _PREFERENCES,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Set of preferences about the planned mix.
  
  
  Attributes:
      is_skippable:
          True if ad skippable. If not set, default is any value.
      starts_with_sound:
          True if ad start with sound. If not set, default is any value.
      ad_length:
          The length of the ad. If not set, default is any value.
      top_content_only:
          True if ad will only show on the top content. If not set,
          default is false.
      has_guaranteed_price:
          True if the price guaranteed. The cost of serving the ad is
          agreed upfront and not subject to an auction. If not set,
          default is any value.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.Preferences)
  ))
_sym_db.RegisterMessage(Preferences)

GenerateProductMixIdeasResponse = _reflection.GeneratedProtocolMessageType('GenerateProductMixIdeasResponse', (_message.Message,), dict(
  DESCRIPTOR = _GENERATEPRODUCTMIXIDEASRESPONSE,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """The suggested product mix.
  
  
  Attributes:
      product_allocation:
          A list of products (ad formats) and the associated budget
          allocation idea.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.GenerateProductMixIdeasResponse)
  ))
_sym_db.RegisterMessage(GenerateProductMixIdeasResponse)

ProductAllocation = _reflection.GeneratedProtocolMessageType('ProductAllocation', (_message.Message,), dict(
  DESCRIPTOR = _PRODUCTALLOCATION,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """An allocation of a part of the budget on a given product.
  
  
  Attributes:
      plannable_product_code:
          Selected product for planning. The product codes returned are
          within the set of the ones returned by ListPlannableProducts
          when using the same location id.
      budget_micros:
          The value to be allocated for the suggested product in
          requested currency. Amount in micros. One million is
          equivalent to one unit.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ProductAllocation)
  ))
_sym_db.RegisterMessage(ProductAllocation)

GenerateReachForecastRequest = _reflection.GeneratedProtocolMessageType('GenerateReachForecastRequest', (_message.Message,), dict(
  DESCRIPTOR = _GENERATEREACHFORECASTREQUEST,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Request message for
  [ReachPlanService.GenerateReachForecast][google.ads.googleads.v2.services.ReachPlanService.GenerateReachForecast].
  
  
  Attributes:
      customer_id:
          The ID of the customer.
      currency_code:
          Required. The currency code. Three-character ISO 4217 currency
          code.
      campaign_duration:
          Campaign duration.
      cookie_frequency_cap:
          Desired cookie frequency cap that will be applied to each
          planned product. This is equivalent to the frequency cap
          exposed in Google Ads when creating a campaign, it represents
          the maximum number of times an ad can be shown to the same
          user. If not specified no cap is applied.
      min_effective_frequency:
          Desired minimum effective frequency (the number of times a
          person was exposed to the ad) for the reported reach metrics
          [1-10]. This won't affect the targeting, but just the
          reporting. If not specified, a default of 1 is applied.
      targeting:
          The targeting to be applied to all products selected in the
          product mix.  This is planned targeting: execution details
          might vary based on the advertising product, please consult an
          implementation specialist.  If no targeting dimensions are
          specified, then campaigns will target everywhere and everyone.
          See specific metrics for details on how targeting affects
          them.  In some cases, targeting may be overridden using the
          PlannedProduct.advanced\_product\_targeting field.
      planned_products:
          The product to be planned.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.GenerateReachForecastRequest)
  ))
_sym_db.RegisterMessage(GenerateReachForecastRequest)

Targeting = _reflection.GeneratedProtocolMessageType('Targeting', (_message.Message,), dict(
  DESCRIPTOR = _TARGETING,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """The targeting for which traffic metrics will be reported.
  
  
  Attributes:
      plannable_location_id:
          Required. The ID of the selected location. Plannable locations
          ID can be obtained from ListPlannableLocations.
      age_range:
          Required Selected age range to be planned on.
      genders:
          Targetable genders for the ad product.
      devices:
          Targetable devices for the ad product.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.Targeting)
  ))
_sym_db.RegisterMessage(Targeting)

CampaignDuration = _reflection.GeneratedProtocolMessageType('CampaignDuration', (_message.Message,), dict(
  DESCRIPTOR = _CAMPAIGNDURATION,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """The duration of a planned campaign.
  
  
  Attributes:
      duration_in_days:
          The duration value in days.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.CampaignDuration)
  ))
_sym_db.RegisterMessage(CampaignDuration)

PlannedProduct = _reflection.GeneratedProtocolMessageType('PlannedProduct', (_message.Message,), dict(
  DESCRIPTOR = _PLANNEDPRODUCT,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """A product being planned for reach.
  
  
  Attributes:
      plannable_product_code:
          Required. Selected product for planning. Plannable products
          codes can be obtained from ListPlannableProducts.
      budget_micros:
          Required. Maximum budget allocation in micros for the selected
          product. The value is specified in the selected planning
          currency\_code. E.g. 1 000 000$ = 1 000 000 000 000 micros.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.PlannedProduct)
  ))
_sym_db.RegisterMessage(PlannedProduct)

GenerateReachForecastResponse = _reflection.GeneratedProtocolMessageType('GenerateReachForecastResponse', (_message.Message,), dict(
  DESCRIPTOR = _GENERATEREACHFORECASTRESPONSE,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Response message containing the generated reach curve.
  
  
  Attributes:
      on_target_audience_metrics:
          Reference on target audiences for this curve.
      reach_curve:
          The generated reach curve for the planned product mix.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.GenerateReachForecastResponse)
  ))
_sym_db.RegisterMessage(GenerateReachForecastResponse)

ReachCurve = _reflection.GeneratedProtocolMessageType('ReachCurve', (_message.Message,), dict(
  DESCRIPTOR = _REACHCURVE,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """The reach curve for the planned products.
  
  
  Attributes:
      reach_forecasts:
          All points on the reach curve.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ReachCurve)
  ))
_sym_db.RegisterMessage(ReachCurve)

ReachForecast = _reflection.GeneratedProtocolMessageType('ReachForecast', (_message.Message,), dict(
  DESCRIPTOR = _REACHFORECAST,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """A point on reach curve.
  
  
  Attributes:
      cost_micros:
          The cost in micros.
      forecast:
          Forecasted traffic metrics for this point.
      forecasted_product_allocations:
          The forecasted allocation. This differs from the input
          allocation if one or more product cannot fulfill the budget
          because of limited inventory.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.ReachForecast)
  ))
_sym_db.RegisterMessage(ReachForecast)

Forecast = _reflection.GeneratedProtocolMessageType('Forecast', (_message.Message,), dict(
  DESCRIPTOR = _FORECAST,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Forecasted traffic metrics for the planned products and targeting.
  
  
  Attributes:
      on_target_reach:
          Number of unique people reached at least
          GenerateReachForecastRequest.min\_effective\_frequency times
          that exactly matches the Targeting.
      total_reach:
          Total number of unique people reached at least
          GenerateReachForecastRequest.min\_effective\_frequency times.
          This includes people that may fall outside the specified
          Targeting.
      on_target_impressions:
          Number of ad impressions that exactly matches the Targeting.
      total_impressions:
          Total number of ad impressions. This includes impressions that
          may fall outside the specified Targeting, due to insufficent
          information on signed-in users.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.Forecast)
  ))
_sym_db.RegisterMessage(Forecast)

OnTargetAudienceMetrics = _reflection.GeneratedProtocolMessageType('OnTargetAudienceMetrics', (_message.Message,), dict(
  DESCRIPTOR = _ONTARGETAUDIENCEMETRICS,
  __module__ = 'google.ads.googleads_v2.proto.services.reach_plan_service_pb2'
  ,
  __doc__ = """Audience metrics for the planned products. These metrics consider the
  following targeting dimensions:
  
  -  Location
  -  PlannableAgeRange
  -  Gender
  
  
  Attributes:
      youtube_audience_size:
          Reference audience size matching the considered targeting for
          YouTube.
      census_audience_size:
          Reference audience size matching the considered targeting for
          Census.
  """,
  # @@protoc_insertion_point(class_scope:google.ads.googleads.v2.services.OnTargetAudienceMetrics)
  ))
_sym_db.RegisterMessage(OnTargetAudienceMetrics)


DESCRIPTOR._options = None

_REACHPLANSERVICE = _descriptor.ServiceDescriptor(
  name='ReachPlanService',
  full_name='google.ads.googleads.v2.services.ReachPlanService',
  file=DESCRIPTOR,
  index=0,
  serialized_options=_b('\312A\030googleads.googleapis.com'),
  serialized_start=3984,
  serialized_end=4867,
  methods=[
  _descriptor.MethodDescriptor(
    name='ListPlannableLocations',
    full_name='google.ads.googleads.v2.services.ReachPlanService.ListPlannableLocations',
    index=0,
    containing_service=None,
    input_type=_LISTPLANNABLELOCATIONSREQUEST,
    output_type=_LISTPLANNABLELOCATIONSRESPONSE,
    serialized_options=_b('\202\323\344\223\002\037\"\032/v2:listPlannableLocations:\001*'),
  ),
  _descriptor.MethodDescriptor(
    name='ListPlannableProducts',
    full_name='google.ads.googleads.v2.services.ReachPlanService.ListPlannableProducts',
    index=1,
    containing_service=None,
    input_type=_LISTPLANNABLEPRODUCTSREQUEST,
    output_type=_LISTPLANNABLEPRODUCTSRESPONSE,
    serialized_options=_b('\202\323\344\223\002\036\"\031/v2:listPlannableProducts:\001*'),
  ),
  _descriptor.MethodDescriptor(
    name='GenerateProductMixIdeas',
    full_name='google.ads.googleads.v2.services.ReachPlanService.GenerateProductMixIdeas',
    index=2,
    containing_service=None,
    input_type=_GENERATEPRODUCTMIXIDEASREQUEST,
    output_type=_GENERATEPRODUCTMIXIDEASRESPONSE,
    serialized_options=_b('\202\323\344\223\002:\"5/v2/customers/{customer_id=*}:generateProductMixIdeas:\001*'),
  ),
  _descriptor.MethodDescriptor(
    name='GenerateReachForecast',
    full_name='google.ads.googleads.v2.services.ReachPlanService.GenerateReachForecast',
    index=3,
    containing_service=None,
    input_type=_GENERATEREACHFORECASTREQUEST,
    output_type=_GENERATEREACHFORECASTRESPONSE,
    serialized_options=_b('\202\323\344\223\0028\"3/v2/customers/{customer_id=*}:generateReachForecast:\001*'),
  ),
])
_sym_db.RegisterServiceDescriptor(_REACHPLANSERVICE)

DESCRIPTOR.services_by_name['ReachPlanService'] = _REACHPLANSERVICE

# @@protoc_insertion_point(module_scope)
