aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGoogle APIs <noreply@google.com>2019-04-01 10:02:38 -0700
committerCopybara-Service <copybara-piper@google.com>2019-04-01 10:03:06 -0700
commit97b4ae850d71c598dda02b4e62aa2c81d442aa3e (patch)
tree4fba8c78d4f09db86de674fb988f6817bfb6d57f
parent396a61102a4ca1e08194a6a52026d2d17834bc66 (diff)
downloadgoogleapis-97b4ae850d71c598dda02b4e62aa2c81d442aa3e.tar.gz
Synchronize new proto/yaml changes.
PiperOrigin-RevId: 241345717
-rw-r--r--google/ads/googleads/v1/common/ad_asset.proto63
-rw-r--r--google/ads/googleads/v1/common/ad_type_infos.proto527
-rw-r--r--google/ads/googleads/v1/common/asset_types.proto76
-rw-r--r--google/ads/googleads/v1/common/bidding.proto232
-rw-r--r--google/ads/googleads/v1/common/click_location.proto50
-rw-r--r--google/ads/googleads/v1/common/criteria.proto571
-rw-r--r--google/ads/googleads/v1/common/criterion_category_availability.proto84
-rw-r--r--google/ads/googleads/v1/common/custom_parameter.proto42
-rw-r--r--google/ads/googleads/v1/common/dates.proto41
-rw-r--r--google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto40
-rw-r--r--google/ads/googleads/v1/common/extensions.proto286
-rw-r--r--google/ads/googleads/v1/common/feed_common.proto41
-rw-r--r--google/ads/googleads/v1/common/frequency_cap.proto63
-rw-r--r--google/ads/googleads/v1/common/keyword_plan_common.proto42
-rw-r--r--google/ads/googleads/v1/common/matching_function.proto128
-rw-r--r--google/ads/googleads/v1/common/metrics.proto435
-rw-r--r--google/ads/googleads/v1/common/policy.proto217
-rw-r--r--google/ads/googleads/v1/common/real_time_bidding_setting.proto39
-rw-r--r--google/ads/googleads/v1/common/segments.proto274
-rw-r--r--google/ads/googleads/v1/common/tag_snippet.proto52
-rw-r--r--google/ads/googleads/v1/common/targeting_setting.proto57
-rw-r--r--google/ads/googleads/v1/common/text_label.proto42
-rw-r--r--google/ads/googleads/v1/common/url_collection.proto47
-rw-r--r--google/ads/googleads/v1/common/user_lists.proto293
-rw-r--r--google/ads/googleads/v1/common/value.proto52
-rw-r--r--google/ads/googleads/v1/enums/access_reason.proto58
-rw-r--r--google/ads/googleads/v1/enums/account_budget_proposal_status.proto64
-rw-r--r--google/ads/googleads/v1/enums/account_budget_proposal_type.proto57
-rw-r--r--google/ads/googleads/v1/enums/account_budget_status.proto54
-rw-r--r--google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto57
-rw-r--r--google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto54
-rw-r--r--google/ads/googleads/v1/enums/ad_group_ad_status.proto56
-rw-r--r--google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto57
-rw-r--r--google/ads/googleads/v1/enums/ad_group_criterion_status.proto56
-rw-r--r--google/ads/googleads/v1/enums/ad_group_status.proto56
-rw-r--r--google/ads/googleads/v1/enums/ad_group_type.proto82
-rw-r--r--google/ads/googleads/v1/enums/ad_network_type.proto63
-rw-r--r--google/ads/googleads/v1/enums/ad_serving_optimization_status.proto65
-rw-r--r--google/ads/googleads/v1/enums/ad_strength.proto63
-rw-r--r--google/ads/googleads/v1/enums/ad_type.proto92
-rw-r--r--google/ads/googleads/v1/enums/advertising_channel_sub_type.proto78
-rw-r--r--google/ads/googleads/v1/enums/advertising_channel_type.proto65
-rw-r--r--google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto49
-rw-r--r--google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto78
-rw-r--r--google/ads/googleads/v1/enums/age_range_type.proto66
-rw-r--r--google/ads/googleads/v1/enums/app_campaign_app_store.proto51
-rw-r--r--google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto65
-rw-r--r--google/ads/googleads/v1/enums/app_payment_model_type.proto48
-rw-r--r--google/ads/googleads/v1/enums/app_placeholder_field.proto76
-rw-r--r--google/ads/googleads/v1/enums/app_store.proto51
-rw-r--r--google/ads/googleads/v1/enums/asset_type.proto54
-rw-r--r--google/ads/googleads/v1/enums/attribution_model.proto73
-rw-r--r--google/ads/googleads/v1/enums/bid_modifier_source.proto52
-rw-r--r--google/ads/googleads/v1/enums/bidding_source.proto56
-rw-r--r--google/ads/googleads/v1/enums/bidding_strategy_status.proto53
-rw-r--r--google/ads/googleads/v1/enums/bidding_strategy_type.proto105
-rw-r--r--google/ads/googleads/v1/enums/billing_setup_status.proto59
-rw-r--r--google/ads/googleads/v1/enums/brand_safety_suitability.proto74
-rw-r--r--google/ads/googleads/v1/enums/budget_delivery_method.proto54
-rw-r--r--google/ads/googleads/v1/enums/budget_period.proto54
-rw-r--r--google/ads/googleads/v1/enums/budget_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/budget_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/call_conversion_reporting_state.proto57
-rw-r--r--google/ads/googleads/v1/enums/call_placeholder_field.proto67
-rw-r--r--google/ads/googleads/v1/enums/callout_placeholder_field.proto48
-rw-r--r--google/ads/googleads/v1/enums/campaign_serving_status.proto62
-rw-r--r--google/ads/googleads/v1/enums/campaign_shared_set_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/campaign_status.proto54
-rw-r--r--google/ads/googleads/v1/enums/change_status_operation.proto55
-rw-r--r--google/ads/googleads/v1/enums/change_status_resource_type.proto77
-rw-r--r--google/ads/googleads/v1/enums/click_type.proto201
-rw-r--r--google/ads/googleads/v1/enums/content_label_type.proto90
-rw-r--r--google/ads/googleads/v1/enums/conversion_action_category.proto62
-rw-r--r--google/ads/googleads/v1/enums/conversion_action_counting_type.proto53
-rw-r--r--google/ads/googleads/v1/enums/conversion_action_status.proto55
-rw-r--r--google/ads/googleads/v1/enums/conversion_action_type.proto74
-rw-r--r--google/ads/googleads/v1/enums/conversion_adjustment_type.proto53
-rw-r--r--google/ads/googleads/v1/enums/conversion_attribution_event_type.proto49
-rw-r--r--google/ads/googleads/v1/enums/conversion_lag_bucket.proto118
-rw-r--r--google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto207
-rw-r--r--google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto59
-rw-r--r--google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto62
-rw-r--r--google/ads/googleads/v1/enums/criterion_system_serving_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/criterion_type.proto132
-rw-r--r--google/ads/googleads/v1/enums/custom_interest_member_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/custom_interest_status.proto52
-rw-r--r--google/ads/googleads/v1/enums/custom_interest_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/custom_placeholder_field.proto130
-rw-r--r--google/ads/googleads/v1/enums/customer_match_upload_key_type.proto54
-rw-r--r--google/ads/googleads/v1/enums/data_driven_model_status.proto63
-rw-r--r--google/ads/googleads/v1/enums/day_of_week.proto66
-rw-r--r--google/ads/googleads/v1/enums/device.proto57
-rw-r--r--google/ads/googleads/v1/enums/display_ad_format_setting.proto55
-rw-r--r--google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto52
-rw-r--r--google/ads/googleads/v1/enums/education_placeholder_field.proto112
-rw-r--r--google/ads/googleads/v1/enums/extension_setting_device.proto53
-rw-r--r--google/ads/googleads/v1/enums/extension_type.proto76
-rw-r--r--google/ads/googleads/v1/enums/external_conversion_source.proto131
-rw-r--r--google/ads/googleads/v1/enums/feed_attribute_type.proto84
-rw-r--r--google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto53
-rw-r--r--google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto100
-rw-r--r--google/ads/googleads/v1/enums/feed_item_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/feed_item_target_device.proto49
-rw-r--r--google/ads/googleads/v1/enums/feed_item_target_type.proto54
-rw-r--r--google/ads/googleads/v1/enums/feed_item_validation_status.proto54
-rw-r--r--google/ads/googleads/v1/enums/feed_link_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/feed_mapping_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/feed_origin.proto54
-rw-r--r--google/ads/googleads/v1/enums/feed_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/flight_placeholder_field.proto119
-rw-r--r--google/ads/googleads/v1/enums/frequency_cap_event_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/frequency_cap_level.proto55
-rw-r--r--google/ads/googleads/v1/enums/frequency_cap_time_unit.proto54
-rw-r--r--google/ads/googleads/v1/enums/gender_type.proto54
-rw-r--r--google/ads/googleads/v1/enums/geo_target_constant_status.proto53
-rw-r--r--google/ads/googleads/v1/enums/geo_targeting_restriction.proto50
-rw-r--r--google/ads/googleads/v1/enums/geo_targeting_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/google_ads_field_category.proto62
-rw-r--r--google/ads/googleads/v1/enums/google_ads_field_data_type.proto98
-rw-r--r--google/ads/googleads/v1/enums/hotel_date_selection_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/hotel_placeholder_field.proto125
-rw-r--r--google/ads/googleads/v1/enums/income_range_type.proto66
-rw-r--r--google/ads/googleads/v1/enums/interaction_event_type.proto63
-rw-r--r--google/ads/googleads/v1/enums/interaction_type.proto48
-rw-r--r--google/ads/googleads/v1/enums/job_placeholder_field.proto116
-rw-r--r--google/ads/googleads/v1/enums/keyword_match_type.proto54
-rw-r--r--google/ads/googleads/v1/enums/keyword_plan_competition_level.proto58
-rw-r--r--google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto57
-rw-r--r--google/ads/googleads/v1/enums/keyword_plan_network.proto51
-rw-r--r--google/ads/googleads/v1/enums/label_status.proto49
-rw-r--r--google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto60
-rw-r--r--google/ads/googleads/v1/enums/listing_custom_attribute_index.proto60
-rw-r--r--google/ads/googleads/v1/enums/listing_group_type.proto53
-rw-r--r--google/ads/googleads/v1/enums/local_placeholder_field.proto120
-rw-r--r--google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto63
-rw-r--r--google/ads/googleads/v1/enums/location_placeholder_field.proto69
-rw-r--r--google/ads/googleads/v1/enums/manager_link_status.proto60
-rw-r--r--google/ads/googleads/v1/enums/matching_function_context_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/matching_function_operator.proto66
-rw-r--r--google/ads/googleads/v1/enums/media_type.proto65
-rw-r--r--google/ads/googleads/v1/enums/merchant_center_link_status.proto54
-rw-r--r--google/ads/googleads/v1/enums/message_placeholder_field.proto62
-rw-r--r--google/ads/googleads/v1/enums/mime_type.proto83
-rw-r--r--google/ads/googleads/v1/enums/minute_of_hour.proto57
-rw-r--r--google/ads/googleads/v1/enums/mobile_device_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/month_of_year.proto81
-rw-r--r--google/ads/googleads/v1/enums/mutate_job_status.proto54
-rw-r--r--google/ads/googleads/v1/enums/negative_geo_target_type.proto54
-rw-r--r--google/ads/googleads/v1/enums/operating_system_version_operator_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto52
-rw-r--r--google/ads/googleads/v1/enums/parental_status_type.proto54
-rw-r--r--google/ads/googleads/v1/enums/payment_mode.proto51
-rw-r--r--google/ads/googleads/v1/enums/placeholder_type.proto122
-rw-r--r--google/ads/googleads/v1/enums/placement_type.proto60
-rw-r--r--google/ads/googleads/v1/enums/policy_approval_status.proto62
-rw-r--r--google/ads/googleads/v1/enums/policy_review_status.proto57
-rw-r--r--google/ads/googleads/v1/enums/policy_topic_entry_type.proto63
-rw-r--r--google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto63
-rw-r--r--google/ads/googleads/v1/enums/positive_geo_target_type.proto57
-rw-r--r--google/ads/googleads/v1/enums/preferred_content_type.proto48
-rw-r--r--google/ads/googleads/v1/enums/price_extension_price_qualifier.proto54
-rw-r--r--google/ads/googleads/v1/enums/price_extension_price_unit.proto63
-rw-r--r--google/ads/googleads/v1/enums/price_extension_type.proto72
-rw-r--r--google/ads/googleads/v1/enums/price_placeholder_field.proto241
-rw-r--r--google/ads/googleads/v1/enums/product_bidding_category_level.proto58
-rw-r--r--google/ads/googleads/v1/enums/product_bidding_category_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/product_channel.proto51
-rw-r--r--google/ads/googleads/v1/enums/product_channel_exclusivity.proto53
-rw-r--r--google/ads/googleads/v1/enums/product_condition.proto54
-rw-r--r--google/ads/googleads/v1/enums/product_type_level.proto60
-rw-r--r--google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto49
-rw-r--r--google/ads/googleads/v1/enums/promotion_extension_occasion.proto158
-rw-r--r--google/ads/googleads/v1/enums/promotion_placeholder_field.proto96
-rw-r--r--google/ads/googleads/v1/enums/proximity_radius_units.proto51
-rw-r--r--google/ads/googleads/v1/enums/quality_score_bucket.proto54
-rw-r--r--google/ads/googleads/v1/enums/real_estate_placeholder_field.proto116
-rw-r--r--google/ads/googleads/v1/enums/recommendation_type.proto84
-rw-r--r--google/ads/googleads/v1/enums/search_term_match_type.proto60
-rw-r--r--google/ads/googleads/v1/enums/search_term_targeting_status.proto59
-rw-r--r--google/ads/googleads/v1/enums/served_asset_field_type.proto62
-rw-r--r--google/ads/googleads/v1/enums/shared_set_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/shared_set_type.proto51
-rw-r--r--google/ads/googleads/v1/enums/sitelink_placeholder_field.proto70
-rw-r--r--google/ads/googleads/v1/enums/slot.proto66
-rw-r--r--google/ads/googleads/v1/enums/spending_limit_type.proto49
-rw-r--r--google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto57
-rw-r--r--google/ads/googleads/v1/enums/system_managed_entity_source.proto48
-rw-r--r--google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto58
-rw-r--r--google/ads/googleads/v1/enums/target_impression_share_location.proto56
-rw-r--r--google/ads/googleads/v1/enums/targeting_dimension.proto75
-rw-r--r--google/ads/googleads/v1/enums/time_type.proto52
-rw-r--r--google/ads/googleads/v1/enums/tracking_code_page_format.proto51
-rw-r--r--google/ads/googleads/v1/enums/tracking_code_type.proto56
-rw-r--r--google/ads/googleads/v1/enums/travel_placeholder_field.proto129
-rw-r--r--google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto60
-rw-r--r--google/ads/googleads/v1/enums/user_list_access_status.proto51
-rw-r--r--google/ads/googleads/v1/enums/user_list_closing_reason.proto49
-rw-r--r--google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto49
-rw-r--r--google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto52
-rw-r--r--google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto55
-rw-r--r--google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto52
-rw-r--r--google/ads/googleads/v1/enums/user_list_membership_status.proto53
-rw-r--r--google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto61
-rw-r--r--google/ads/googleads/v1/enums/user_list_prepopulation_status.proto52
-rw-r--r--google/ads/googleads/v1/enums/user_list_rule_type.proto49
-rw-r--r--google/ads/googleads/v1/enums/user_list_size_range.proto93
-rw-r--r--google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto67
-rw-r--r--google/ads/googleads/v1/enums/user_list_type.proto64
-rw-r--r--google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto51
-rw-r--r--google/ads/googleads/v1/enums/vanity_pharma_text.proto88
-rw-r--r--google/ads/googleads/v1/enums/webpage_condition_operand.proto60
-rw-r--r--google/ads/googleads/v1/enums/webpage_condition_operator.proto52
-rw-r--r--google/ads/googleads/v1/errors/account_budget_proposal_error.proto115
-rw-r--r--google/ads/googleads/v1/errors/ad_customizer_error.proto60
-rw-r--r--google/ads/googleads/v1/errors/ad_error.proto445
-rw-r--r--google/ads/googleads/v1/errors/ad_group_ad_error.proto71
-rw-r--r--google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto52
-rw-r--r--google/ads/googleads/v1/errors/ad_group_criterion_error.proto166
-rw-r--r--google/ads/googleads/v1/errors/ad_group_error.proto84
-rw-r--r--google/ads/googleads/v1/errors/ad_group_feed_error.proto68
-rw-r--r--google/ads/googleads/v1/errors/ad_parameter_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/ad_sharing_error.proto55
-rw-r--r--google/ads/googleads/v1/errors/adx_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/asset_error.proto58
-rw-r--r--google/ads/googleads/v1/errors/authentication_error.proto104
-rw-r--r--google/ads/googleads/v1/errors/authorization_error.proto79
-rw-r--r--google/ads/googleads/v1/errors/bidding_error.proto116
-rw-r--r--google/ads/googleads/v1/errors/bidding_strategy_error.proto58
-rw-r--r--google/ads/googleads/v1/errors/billing_setup_error.proto102
-rw-r--r--google/ads/googleads/v1/errors/campaign_budget_error.proto95
-rw-r--r--google/ads/googleads/v1/errors/campaign_criterion_error.proto82
-rw-r--r--google/ads/googleads/v1/errors/campaign_error.proto168
-rw-r--r--google/ads/googleads/v1/errors/campaign_feed_error.proto64
-rw-r--r--google/ads/googleads/v1/errors/campaign_shared_set_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/change_status_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/collection_size_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/context_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/conversion_action_error.proto76
-rw-r--r--google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto80
-rw-r--r--google/ads/googleads/v1/errors/conversion_upload_error.proto131
-rw-r--r--google/ads/googleads/v1/errors/country_code_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/criterion_error.proto367
-rw-r--r--google/ads/googleads/v1/errors/custom_interest_error.proto67
-rw-r--r--google/ads/googleads/v1/errors/customer_client_link_error.proto66
-rw-r--r--google/ads/googleads/v1/errors/customer_error.proto52
-rw-r--r--google/ads/googleads/v1/errors/customer_feed_error.proto67
-rw-r--r--google/ads/googleads/v1/errors/customer_manager_link_error.proto72
-rw-r--r--google/ads/googleads/v1/errors/database_error.proto49
-rw-r--r--google/ads/googleads/v1/errors/date_error.proto75
-rw-r--r--google/ads/googleads/v1/errors/date_range_error.proto60
-rw-r--r--google/ads/googleads/v1/errors/distinct_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/enum_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/errors.proto502
-rw-r--r--google/ads/googleads/v1/errors/extension_feed_item_error.proto188
-rw-r--r--google/ads/googleads/v1/errors/extension_setting_error.proto257
-rw-r--r--google/ads/googleads/v1/errors/feed_attribute_reference_error.proto54
-rw-r--r--google/ads/googleads/v1/errors/feed_error.proto103
-rw-r--r--google/ads/googleads/v1/errors/feed_item_error.proto72
-rw-r--r--google/ads/googleads/v1/errors/feed_item_target_error.proto65
-rw-r--r--google/ads/googleads/v1/errors/feed_item_validation_error.proto329
-rw-r--r--google/ads/googleads/v1/errors/feed_mapping_error.proto98
-rw-r--r--google/ads/googleads/v1/errors/field_error.proto66
-rw-r--r--google/ads/googleads/v1/errors/field_mask_error.proto59
-rw-r--r--google/ads/googleads/v1/errors/function_error.proto94
-rw-r--r--google/ads/googleads/v1/errors/function_parsing_error.proto78
-rw-r--r--google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto57
-rw-r--r--google/ads/googleads/v1/errors/header_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/id_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/image_error.proto157
-rw-r--r--google/ads/googleads/v1/errors/internal_error.proto56
-rw-r--r--google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto54
-rw-r--r--google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto63
-rw-r--r--google/ads/googleads/v1/errors/keyword_plan_error.proto92
-rw-r--r--google/ads/googleads/v1/errors/keyword_plan_idea_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto66
-rw-r--r--google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto47
-rw-r--r--google/ads/googleads/v1/errors/label_error.proto74
-rw-r--r--google/ads/googleads/v1/errors/language_code_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/list_operation_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/media_bundle_error.proto111
-rw-r--r--google/ads/googleads/v1/errors/media_file_error.proto114
-rw-r--r--google/ads/googleads/v1/errors/media_upload_error.proto31
-rw-r--r--google/ads/googleads/v1/errors/multiplier_error.proto82
-rw-r--r--google/ads/googleads/v1/errors/mutate_error.proto64
-rw-r--r--google/ads/googleads/v1/errors/mutate_job_error.proto61
-rw-r--r--google/ads/googleads/v1/errors/new_resource_creation_error.proto55
-rw-r--r--google/ads/googleads/v1/errors/not_empty_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/null_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/operation_access_denied_error.proto75
-rw-r--r--google/ads/googleads/v1/errors/operator_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/partial_failure_error.proto49
-rw-r--r--google/ads/googleads/v1/errors/policy_finding_error.proto52
-rw-r--r--google/ads/googleads/v1/errors/policy_validation_parameter_error.proto55
-rw-r--r--google/ads/googleads/v1/errors/policy_violation_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/query_error.proto209
-rw-r--r--google/ads/googleads/v1/errors/quota_error.proto54
-rw-r--r--google/ads/googleads/v1/errors/range_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/recommendation_error.proto91
-rw-r--r--google/ads/googleads/v1/errors/region_code_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/request_error.proto102
-rw-r--r--google/ads/googleads/v1/errors/resource_access_denied_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto89
-rw-r--r--google/ads/googleads/v1/errors/setting_error.proto106
-rw-r--r--google/ads/googleads/v1/errors/shared_criterion_error.proto48
-rw-r--r--google/ads/googleads/v1/errors/shared_set_error.proto57
-rw-r--r--google/ads/googleads/v1/errors/string_format_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/string_length_error.proto51
-rw-r--r--google/ads/googleads/v1/errors/url_field_error.proto213
-rw-r--r--google/ads/googleads/v1/errors/user_list_error.proto130
-rw-r--r--google/ads/googleads/v1/errors/youtube_video_registration_error.proto31
-rw-r--r--google/ads/googleads/v1/resources/account_budget.proto233
-rw-r--r--google/ads/googleads/v1/resources/account_budget_proposal.proto141
-rw-r--r--google/ads/googleads/v1/resources/ad.proto143
-rw-r--r--google/ads/googleads/v1/resources/ad_group.proto139
-rw-r--r--google/ads/googleads/v1/resources/ad_group_ad.proto75
-rw-r--r--google/ads/googleads/v1/resources/ad_group_ad_label.proto46
-rw-r--r--google/ads/googleads/v1/resources/ad_group_audience_view.proto43
-rw-r--r--google/ads/googleads/v1/resources/ad_group_bid_modifier.proto87
-rw-r--r--google/ads/googleads/v1/resources/ad_group_criterion.proto240
-rw-r--r--google/ads/googleads/v1/resources/ad_group_criterion_label.proto47
-rw-r--r--google/ads/googleads/v1/resources/ad_group_extension_setting.proto63
-rw-r--r--google/ads/googleads/v1/resources/ad_group_feed.proto63
-rw-r--r--google/ads/googleads/v1/resources/ad_group_label.proto46
-rw-r--r--google/ads/googleads/v1/resources/ad_parameter.proto68
-rw-r--r--google/ads/googleads/v1/resources/ad_schedule_view.proto41
-rw-r--r--google/ads/googleads/v1/resources/age_range_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/asset.proto65
-rw-r--r--google/ads/googleads/v1/resources/bidding_strategy.proto109
-rw-r--r--google/ads/googleads/v1/resources/billing_setup.proto124
-rw-r--r--google/ads/googleads/v1/resources/campaign.proto347
-rw-r--r--google/ads/googleads/v1/resources/campaign_audience_view.proto45
-rw-r--r--google/ads/googleads/v1/resources/campaign_bid_modifier.proto59
-rw-r--r--google/ads/googleads/v1/resources/campaign_budget.proto146
-rw-r--r--google/ads/googleads/v1/resources/campaign_criterion.proto142
-rw-r--r--google/ads/googleads/v1/resources/campaign_extension_setting.proto63
-rw-r--r--google/ads/googleads/v1/resources/campaign_feed.proto63
-rw-r--r--google/ads/googleads/v1/resources/campaign_label.proto46
-rw-r--r--google/ads/googleads/v1/resources/campaign_shared_set.proto57
-rw-r--r--google/ads/googleads/v1/resources/carrier_constant.proto51
-rw-r--r--google/ads/googleads/v1/resources/change_status.proto84
-rw-r--r--google/ads/googleads/v1/resources/click_view.proto58
-rw-r--r--google/ads/googleads/v1/resources/conversion_action.proto133
-rw-r--r--google/ads/googleads/v1/resources/custom_interest.proto79
-rw-r--r--google/ads/googleads/v1/resources/customer.proto120
-rw-r--r--google/ads/googleads/v1/resources/customer_client.proto56
-rw-r--r--google/ads/googleads/v1/resources/customer_client_link.proto56
-rw-r--r--google/ads/googleads/v1/resources/customer_extension_setting.proto55
-rw-r--r--google/ads/googleads/v1/resources/customer_feed.proto60
-rw-r--r--google/ads/googleads/v1/resources/customer_label.proto52
-rw-r--r--google/ads/googleads/v1/resources/customer_manager_link.proto51
-rw-r--r--google/ads/googleads/v1/resources/customer_negative_criterion.proto72
-rw-r--r--google/ads/googleads/v1/resources/detail_placement_view.proto62
-rw-r--r--google/ads/googleads/v1/resources/display_keyword_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/domain_category.proto76
-rw-r--r--google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto62
-rw-r--r--google/ads/googleads/v1/resources/extension_feed_item.proto90
-rw-r--r--google/ads/googleads/v1/resources/feed.proto180
-rw-r--r--google/ads/googleads/v1/resources/feed_item.proto197
-rw-r--r--google/ads/googleads/v1/resources/feed_item_target.proto74
-rw-r--r--google/ads/googleads/v1/resources/feed_mapping.proto170
-rw-r--r--google/ads/googleads/v1/resources/feed_placeholder_view.proto44
-rw-r--r--google/ads/googleads/v1/resources/gender_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/geo_target_constant.proto61
-rw-r--r--google/ads/googleads/v1/resources/geographic_view.proto54
-rw-r--r--google/ads/googleads/v1/resources/google_ads_field.proto107
-rw-r--r--google/ads/googleads/v1/resources/group_placement_view.proto57
-rw-r--r--google/ads/googleads/v1/resources/hotel_group_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/hotel_performance_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/keyword_plan.proto71
-rw-r--r--google/ads/googleads/v1/resources/keyword_plan_ad_group.proto59
-rw-r--r--google/ads/googleads/v1/resources/keyword_plan_campaign.proto83
-rw-r--r--google/ads/googleads/v1/resources/keyword_plan_keyword.proto59
-rw-r--r--google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto56
-rw-r--r--google/ads/googleads/v1/resources/keyword_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/label.proto56
-rw-r--r--google/ads/googleads/v1/resources/language_constant.proto54
-rw-r--r--google/ads/googleads/v1/resources/location_view.proto41
-rw-r--r--google/ads/googleads/v1/resources/managed_placement_view.proto41
-rw-r--r--google/ads/googleads/v1/resources/media_file.proto114
-rw-r--r--google/ads/googleads/v1/resources/merchant_center_link.proto54
-rw-r--r--google/ads/googleads/v1/resources/mobile_app_category_constant.proto47
-rw-r--r--google/ads/googleads/v1/resources/mobile_device_constant.proto57
-rw-r--r--google/ads/googleads/v1/resources/mutate_job.proto80
-rw-r--r--google/ads/googleads/v1/resources/operating_system_version_constant.proto63
-rw-r--r--google/ads/googleads/v1/resources/parental_status_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/payments_account.proto60
-rw-r--r--google/ads/googleads/v1/resources/product_bidding_category_constant.proto68
-rw-r--r--google/ads/googleads/v1/resources/product_group_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/recommendation.proto264
-rw-r--r--google/ads/googleads/v1/resources/remarketing_action.proto56
-rw-r--r--google/ads/googleads/v1/resources/search_term_view.proto54
-rw-r--r--google/ads/googleads/v1/resources/shared_criterion.proto77
-rw-r--r--google/ads/googleads/v1/resources/shared_set.proto67
-rw-r--r--google/ads/googleads/v1/resources/shopping_performance_view.proto44
-rw-r--r--google/ads/googleads/v1/resources/topic_constant.proto59
-rw-r--r--google/ads/googleads/v1/resources/topic_view.proto40
-rw-r--r--google/ads/googleads/v1/resources/user_interest.proto61
-rw-r--r--google/ads/googleads/v1/resources/user_list.proto157
-rw-r--r--google/ads/googleads/v1/resources/video.proto53
-rw-r--r--google/ads/googleads/v1/services/account_budget_proposal_service.proto126
-rw-r--r--google/ads/googleads/v1/services/account_budget_service.proto51
-rw-r--r--google/ads/googleads/v1/services/ad_group_ad_label_service.proto113
-rw-r--r--google/ads/googleads/v1/services/ad_group_ad_service.proto121
-rw-r--r--google/ads/googleads/v1/services/ad_group_audience_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto121
-rw-r--r--google/ads/googleads/v1/services/ad_group_criterion_label_service.proto115
-rw-r--r--google/ads/googleads/v1/services/ad_group_criterion_service.proto130
-rw-r--r--google/ads/googleads/v1/services/ad_group_extension_setting_service.proto124
-rw-r--r--google/ads/googleads/v1/services/ad_group_feed_service.proto119
-rw-r--r--google/ads/googleads/v1/services/ad_group_label_service.proto112
-rw-r--r--google/ads/googleads/v1/services/ad_group_service.proto117
-rw-r--r--google/ads/googleads/v1/services/ad_parameter_service.proto120
-rw-r--r--google/ads/googleads/v1/services/ad_schedule_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/age_range_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/asset_service.proto86
-rw-r--r--google/ads/googleads/v1/services/bidding_strategy_service.proto120
-rw-r--r--google/ads/googleads/v1/services/billing_setup_service.proto104
-rw-r--r--google/ads/googleads/v1/services/campaign_audience_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/campaign_bid_modifier_service.proto121
-rw-r--r--google/ads/googleads/v1/services/campaign_budget_service.proto119
-rw-r--r--google/ads/googleads/v1/services/campaign_criterion_service.proto118
-rw-r--r--google/ads/googleads/v1/services/campaign_extension_setting_service.proto124
-rw-r--r--google/ads/googleads/v1/services/campaign_feed_service.proto119
-rw-r--r--google/ads/googleads/v1/services/campaign_label_service.proto112
-rw-r--r--google/ads/googleads/v1/services/campaign_service.proto118
-rw-r--r--google/ads/googleads/v1/services/campaign_shared_set_service.proto112
-rw-r--r--google/ads/googleads/v1/services/carrier_constant_service.proto48
-rw-r--r--google/ads/googleads/v1/services/change_status_service.proto48
-rw-r--r--google/ads/googleads/v1/services/click_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/conversion_action_service.proto120
-rw-r--r--google/ads/googleads/v1/services/conversion_adjustment_upload_service.proto158
-rw-r--r--google/ads/googleads/v1/services/conversion_upload_service.proto208
-rw-r--r--google/ads/googleads/v1/services/custom_interest_service.proto100
-rw-r--r--google/ads/googleads/v1/services/customer_client_link_service.proto92
-rw-r--r--google/ads/googleads/v1/services/customer_client_service.proto48
-rw-r--r--google/ads/googleads/v1/services/customer_extension_setting_service.proto124
-rw-r--r--google/ads/googleads/v1/services/customer_feed_service.proto119
-rw-r--r--google/ads/googleads/v1/services/customer_label_service.proto112
-rw-r--r--google/ads/googleads/v1/services/customer_manager_link_service.proto92
-rw-r--r--google/ads/googleads/v1/services/customer_negative_criterion_service.proto112
-rw-r--r--google/ads/googleads/v1/services/customer_service.proto136
-rw-r--r--google/ads/googleads/v1/services/detail_placement_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/display_keyword_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/domain_category_service.proto49
-rw-r--r--google/ads/googleads/v1/services/dynamic_search_ads_search_term_view_service.proto49
-rw-r--r--google/ads/googleads/v1/services/extension_feed_item_service.proto108
-rw-r--r--google/ads/googleads/v1/services/feed_item_service.proto119
-rw-r--r--google/ads/googleads/v1/services/feed_item_target_service.proto94
-rw-r--r--google/ads/googleads/v1/services/feed_mapping_service.proto111
-rw-r--r--google/ads/googleads/v1/services/feed_placeholder_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/feed_service.proto119
-rw-r--r--google/ads/googleads/v1/services/gender_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/geo_target_constant_service.proto119
-rw-r--r--google/ads/googleads/v1/services/geographic_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/google_ads_field_service.proto86
-rw-r--r--google/ads/googleads/v1/services/google_ads_service.proto739
-rw-r--r--google/ads/googleads/v1/services/group_placement_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/hotel_group_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/hotel_performance_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/keyword_plan_ad_group_service.proto121
-rw-r--r--google/ads/googleads/v1/services/keyword_plan_campaign_service.proto122
-rw-r--r--google/ads/googleads/v1/services/keyword_plan_idea_service.proto114
-rw-r--r--google/ads/googleads/v1/services/keyword_plan_keyword_service.proto121
-rw-r--r--google/ads/googleads/v1/services/keyword_plan_negative_keyword_service.proto126
-rw-r--r--google/ads/googleads/v1/services/keyword_plan_service.proto237
-rw-r--r--google/ads/googleads/v1/services/keyword_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/label_service.proto115
-rw-r--r--google/ads/googleads/v1/services/language_constant_service.proto48
-rw-r--r--google/ads/googleads/v1/services/location_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/managed_placement_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/media_file_service.proto104
-rw-r--r--google/ads/googleads/v1/services/merchant_center_link_service.proto118
-rw-r--r--google/ads/googleads/v1/services/mobile_app_category_constant_service.proto47
-rw-r--r--google/ads/googleads/v1/services/mobile_device_constant_service.proto48
-rw-r--r--google/ads/googleads/v1/services/mutate_job_service.proto183
-rw-r--r--google/ads/googleads/v1/services/operating_system_version_constant_service.proto49
-rw-r--r--google/ads/googleads/v1/services/parental_status_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/payments_account_service.proto57
-rw-r--r--google/ads/googleads/v1/services/product_bidding_category_constant_service.proto49
-rw-r--r--google/ads/googleads/v1/services/product_group_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/recommendation_service.proto215
-rw-r--r--google/ads/googleads/v1/services/remarketing_action_service.proto113
-rw-r--r--google/ads/googleads/v1/services/search_term_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/shared_criterion_service.proto111
-rw-r--r--google/ads/googleads/v1/services/shared_set_service.proto118
-rw-r--r--google/ads/googleads/v1/services/shopping_performance_view_service.proto49
-rw-r--r--google/ads/googleads/v1/services/topic_constant_service.proto48
-rw-r--r--google/ads/googleads/v1/services/topic_view_service.proto48
-rw-r--r--google/ads/googleads/v1/services/user_interest_service.proto48
-rw-r--r--google/ads/googleads/v1/services/user_list_service.proto118
-rw-r--r--google/ads/googleads/v1/services/video_service.proto48
492 files changed, 41579 insertions, 0 deletions
diff --git a/google/ads/googleads/v1/common/ad_asset.proto b/google/ads/googleads/v1/common/ad_asset.proto
new file mode 100644
index 000000000..7e43ff9c4
--- /dev/null
+++ b/google/ads/googleads/v1/common/ad_asset.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/served_asset_field_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "AdAssetProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing assets used inside an ad.
+
+// A text asset used inside an ad.
+message AdTextAsset {
+ // Asset text.
+ google.protobuf.StringValue text = 1;
+
+ // The pinned field of the asset. This restricts the asset to only serve
+ // within this field. Multiple assets can be pinned to the same field. An
+ // asset that is unpinned or pinned to a different field will not serve in a
+ // field where some other asset has been pinned.
+ google.ads.googleads.v1.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 2;
+}
+
+// An image asset used inside an ad.
+message AdImageAsset {
+ // The Asset resource name of this image.
+ google.protobuf.StringValue asset = 1;
+}
+
+// A video asset used inside an ad.
+message AdVideoAsset {
+ // The Asset resource name of this video.
+ google.protobuf.StringValue asset = 1;
+}
+
+// A media bundle asset used inside an ad.
+message AdMediaBundleAsset {
+ // The Asset resource name of this media bundle.
+ google.protobuf.StringValue asset = 1;
+}
diff --git a/google/ads/googleads/v1/common/ad_type_infos.proto b/google/ads/googleads/v1/common/ad_type_infos.proto
new file mode 100644
index 000000000..7a944e8d4
--- /dev/null
+++ b/google/ads/googleads/v1/common/ad_type_infos.proto
@@ -0,0 +1,527 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/common/ad_asset.proto";
+import "google/ads/googleads/v1/enums/call_conversion_reporting_state.proto";
+import "google/ads/googleads/v1/enums/display_ad_format_setting.proto";
+import "google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto";
+import "google/ads/googleads/v1/enums/mime_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "AdTypeInfosProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file containing info messages for specific ad types.
+
+// A text ad.
+message TextAdInfo {
+ // The headline of the ad.
+ google.protobuf.StringValue headline = 1;
+
+ // The first line of the ad's description.
+ google.protobuf.StringValue description1 = 2;
+
+ // The second line of the ad's description.
+ google.protobuf.StringValue description2 = 3;
+}
+
+// An expanded text ad.
+message ExpandedTextAdInfo {
+ // The first part of the ad's headline.
+ google.protobuf.StringValue headline_part1 = 1;
+
+ // The second part of the ad's headline.
+ google.protobuf.StringValue headline_part2 = 2;
+
+ // The third part of the ad's headline.
+ google.protobuf.StringValue headline_part3 = 6;
+
+ // The description of the ad.
+ google.protobuf.StringValue description = 3;
+
+ // The second description of the ad.
+ google.protobuf.StringValue description2 = 7;
+
+ // The text that can appear alongside the ad's displayed URL.
+ google.protobuf.StringValue path1 = 4;
+
+ // Additional text that can appear alongside the ad's displayed URL.
+ google.protobuf.StringValue path2 = 5;
+}
+
+// A call-only ad.
+message CallOnlyAdInfo {
+ // The country code in the ad.
+ google.protobuf.StringValue country_code = 1;
+
+ // The phone number in the ad.
+ google.protobuf.StringValue phone_number = 2;
+
+ // The business name in the ad.
+ google.protobuf.StringValue business_name = 3;
+
+ // First headline in the ad.
+ google.protobuf.StringValue headline1 = 11;
+
+ // Second headline in the ad.
+ google.protobuf.StringValue headline2 = 12;
+
+ // The first line of the ad's description.
+ google.protobuf.StringValue description1 = 4;
+
+ // The second line of the ad's description.
+ google.protobuf.StringValue description2 = 5;
+
+ // Whether to enable call tracking for the creative. Enabling call
+ // tracking also enables call conversions.
+ google.protobuf.BoolValue call_tracked = 6;
+
+ // Whether to disable call conversion for the creative.
+ // If set to `true`, disables call conversions even when `call_tracked` is
+ // `true`.
+ // If `call_tracked` is `false`, this field is ignored.
+ google.protobuf.BoolValue disable_call_conversion = 7;
+
+ // The URL to be used for phone number verification.
+ google.protobuf.StringValue phone_number_verification_url = 8;
+
+ // The conversion action to attribute a call conversion to. If not set a
+ // default conversion action is used. This field only has effect if
+ // call_tracked is set to true. Otherwise this field is ignored.
+ google.protobuf.StringValue conversion_action = 9;
+
+ // The call conversion behavior of this call only ad. It can use its own call
+ // conversion setting, inherit the account level setting, or be disabled.
+ google.ads.googleads.v1.enums.CallConversionReportingStateEnum.CallConversionReportingState conversion_reporting_state = 10;
+}
+
+// An expanded dynamic search ad.
+message ExpandedDynamicSearchAdInfo {
+ // The description of the ad.
+ google.protobuf.StringValue description = 1;
+}
+
+// A hotel ad.
+message HotelAdInfo {
+
+}
+
+// A Smart Shopping ad.
+message ShoppingSmartAdInfo {
+
+}
+
+// A standard Shopping ad.
+message ShoppingProductAdInfo {
+
+}
+
+// A Gmail ad.
+message GmailAdInfo {
+ // The Gmail teaser.
+ GmailTeaser teaser = 1;
+
+ // The MediaFile resource name of the header image. Valid image types are GIF,
+ // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must
+ // be between 3:1 and 5:1 (+-1%).
+ google.protobuf.StringValue header_image = 2;
+
+ // The MediaFile resource name of the marketing image. Valid image types are
+ // GIF, JPEG and PNG. The image must either be landscape with a minimum size
+ // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a
+ // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%)
+ google.protobuf.StringValue marketing_image = 3;
+
+ // Headline of the marketing image.
+ google.protobuf.StringValue marketing_image_headline = 4;
+
+ // Description of the marketing image.
+ google.protobuf.StringValue marketing_image_description = 5;
+
+ // Display-call-to-action of the marketing image.
+ DisplayCallToAction marketing_image_display_call_to_action = 6;
+
+ // Product images. Up to 15 images are supported.
+ repeated ProductImage product_images = 7;
+
+ // Product videos. Up to 7 videos are supported. At least one product video
+ // or a marketing image must be specified.
+ repeated ProductVideo product_videos = 8;
+}
+
+// Gmail teaser data. The teaser is a small header that acts as an invitation
+// to view the rest of the ad (the body).
+message GmailTeaser {
+ // Headline of the teaser.
+ google.protobuf.StringValue headline = 1;
+
+ // Description of the teaser.
+ google.protobuf.StringValue description = 2;
+
+ // Business name of the advertiser.
+ google.protobuf.StringValue business_name = 3;
+
+ // The MediaFile resource name of the logo image. Valid image types are GIF,
+ // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must
+ // be 1:1 (+-1%).
+ google.protobuf.StringValue logo_image = 4;
+}
+
+// Data for display call to action. The call to action is a piece of the ad
+// that prompts the user to do something. Like clicking a link or making a phone
+// call.
+message DisplayCallToAction {
+ // Text for the display-call-to-action.
+ google.protobuf.StringValue text = 1;
+
+ // Text color for the display-call-to-action in hexadecimal, e.g. #ffffff for
+ // white.
+ google.protobuf.StringValue text_color = 2;
+
+ // Identifies the url collection in the ad.url_collections field. If not set
+ // the url defaults to final_url.
+ google.protobuf.StringValue url_collection_id = 3;
+}
+
+// Product image specific data.
+message ProductImage {
+ // The MediaFile resource name of the product image. Valid image types are
+ // GIF, JPEG and PNG. The minimum size is 300x300 pixels and the aspect ratio
+ // must be 1:1 (+-1%).
+ google.protobuf.StringValue product_image = 1;
+
+ // Description of the product.
+ google.protobuf.StringValue description = 2;
+
+ // Display-call-to-action of the product image.
+ DisplayCallToAction display_call_to_action = 3;
+}
+
+// Product video specific data.
+message ProductVideo {
+ // The MediaFile resource name of a video which must be hosted on YouTube.
+ google.protobuf.StringValue product_video = 1;
+}
+
+// An image ad.
+message ImageAdInfo {
+ // Width in pixels of the full size image.
+ google.protobuf.Int64Value pixel_width = 4;
+
+ // Height in pixels of the full size image.
+ google.protobuf.Int64Value pixel_height = 5;
+
+ // URL of the full size image.
+ google.protobuf.StringValue image_url = 6;
+
+ // Width in pixels of the preview size image.
+ google.protobuf.Int64Value preview_pixel_width = 7;
+
+ // Height in pixels of the preview size image.
+ google.protobuf.Int64Value preview_pixel_height = 8;
+
+ // URL of the preview size image.
+ google.protobuf.StringValue preview_image_url = 9;
+
+ // The mime type of the image.
+ google.ads.googleads.v1.enums.MimeTypeEnum.MimeType mime_type = 10;
+
+ // The name of the image. If the image was created from a MediaFile, this is
+ // the MediaFile's name. If the image was created from bytes, this is empty.
+ google.protobuf.StringValue name = 11;
+
+ // The image to create the ImageAd from. This can be specified in one of
+ // two ways.
+ // 1. An existing MediaFile resource.
+ // 2. The raw image data as bytes.
+ oneof image {
+ // The MediaFile resource to use for the image.
+ google.protobuf.StringValue media_file = 1;
+
+ // Raw image data as bytes.
+ google.protobuf.BytesValue data = 2;
+
+ // An ad ID to copy the image from.
+ google.protobuf.Int64Value ad_id_to_copy_image_from = 3;
+ }
+}
+
+// Representation of video bumper in-stream ad format (very short in-stream
+// non-skippable video ad).
+message VideoBumperInStreamAdInfo {
+
+}
+
+// Representation of video non-skippable in-stream ad format (15 second
+// in-stream non-skippable video ad).
+message VideoNonSkippableInStreamAdInfo {
+
+}
+
+// Representation of video TrueView in-stream ad format (ad shown during video
+// playback, often at beginning, which displays a skip button a few seconds into
+// the video).
+message VideoTrueViewInStreamAdInfo {
+ // Label on the CTA (call-to-action) button taking the user to the video ad's
+ // final URL.
+ // Required for TrueView for action campaigns, optional otherwise.
+ google.protobuf.StringValue action_button_label = 1;
+
+ // Additional text displayed with the CTA (call-to-action) button to give
+ // context and encourage clicking on the button.
+ google.protobuf.StringValue action_headline = 2;
+}
+
+// Representation of video out-stream ad format (ad shown alongside a feed
+// with automatic playback, without sound).
+message VideoOutstreamAdInfo {
+ // The headline of the ad.
+ google.protobuf.StringValue headline = 1;
+
+ // The description line.
+ google.protobuf.StringValue description = 2;
+}
+
+// A video ad.
+message VideoAdInfo {
+ // The MediaFile resource to use for the video.
+ google.protobuf.StringValue media_file = 1;
+
+ // Format-specific schema for the different video formats.
+ oneof format {
+ // Video TrueView in-stream ad format.
+ VideoTrueViewInStreamAdInfo in_stream = 2;
+
+ // Video bumper in-stream ad format.
+ VideoBumperInStreamAdInfo bumper = 3;
+
+ // Video out-stream ad format.
+ VideoOutstreamAdInfo out_stream = 4;
+
+ // Video non-skippable in-stream ad format.
+ VideoNonSkippableInStreamAdInfo non_skippable = 5;
+ }
+}
+
+// A responsive search ad.
+//
+// Responsive search ads let you create an ad that adapts to show more text, and
+// more relevant messages, to your customers. Enter multiple headlines and
+// descriptions when creating a responsive search ad, and over time, Google Ads
+// will automatically test different combinations and learn which combinations
+// perform best. By adapting your ad's content to more closely match potential
+// customers' search terms, responsive search ads may improve your campaign's
+// performance.
+//
+// More information at https://support.google.com/google-ads/answer/7684791
+message ResponsiveSearchAdInfo {
+ // List of text assets for headlines. When the ad serves the headlines will
+ // be selected from this list.
+ repeated AdTextAsset headlines = 1;
+
+ // List of text assets for descriptions. When the ad serves the descriptions
+ // will be selected from this list.
+ repeated AdTextAsset descriptions = 2;
+
+ // First part of text that may appear appended to the url displayed in the ad.
+ google.protobuf.StringValue path1 = 3;
+
+ // Second part of text that may appear appended to the url displayed in the
+ // ad. This field can only be set when path1 is also set.
+ google.protobuf.StringValue path2 = 4;
+}
+
+// A legacy responsive display ad. Ads of this type are labeled 'Responsive ads'
+// in the Google Ads UI.
+message LegacyResponsiveDisplayAdInfo {
+ // The short version of the ad's headline.
+ google.protobuf.StringValue short_headline = 1;
+
+ // The long version of the ad's headline.
+ google.protobuf.StringValue long_headline = 2;
+
+ // The description of the ad.
+ google.protobuf.StringValue description = 3;
+
+ // The business name in the ad.
+ google.protobuf.StringValue business_name = 4;
+
+ // Advertiser's consent to allow flexible color. When true, the ad may be
+ // served with different color if necessary. When false, the ad will be served
+ // with the specified colors or a neutral color.
+ // The default value is true.
+ // Must be true if main_color and accent_color are not set.
+ google.protobuf.BoolValue allow_flexible_color = 5;
+
+ // The accent color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue accent_color = 6;
+
+ // The main color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue main_color = 7;
+
+ // The call-to-action text for the ad.
+ google.protobuf.StringValue call_to_action_text = 8;
+
+ // The MediaFile resource name of the logo image used in the ad.
+ google.protobuf.StringValue logo_image = 9;
+
+ // The MediaFile resource name of the square logo image used in the ad.
+ google.protobuf.StringValue square_logo_image = 10;
+
+ // The MediaFile resource name of the marketing image used in the ad.
+ google.protobuf.StringValue marketing_image = 11;
+
+ // The MediaFile resource name of the square marketing image used in the ad.
+ google.protobuf.StringValue square_marketing_image = 12;
+
+ // Specifies which format the ad will be served in. Default is ALL_FORMATS.
+ google.ads.googleads.v1.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 13;
+
+ // Prefix before price. E.g. 'as low as'.
+ google.protobuf.StringValue price_prefix = 14;
+
+ // Promotion text used for dyanmic formats of responsive ads. For example
+ // 'Free two-day shipping'.
+ google.protobuf.StringValue promo_text = 15;
+}
+
+// An app ad.
+message AppAdInfo {
+ // An optional text asset that, if specified, must always be displayed when
+ // the ad is served.
+ AdTextAsset mandatory_ad_text = 1;
+
+ // List of text assets for headlines. When the ad serves the headlines will
+ // be selected from this list.
+ repeated AdTextAsset headlines = 2;
+
+ // List of text assets for descriptions. When the ad serves the descriptions
+ // will be selected from this list.
+ repeated AdTextAsset descriptions = 3;
+
+ // List of image assets that may be displayed with the ad.
+ repeated AdImageAsset images = 4;
+
+ // List of YouTube video assets that may be displayed with the ad.
+ repeated AdVideoAsset youtube_videos = 5;
+
+ // List of media bundle assets that may be used with the ad.
+ repeated AdMediaBundleAsset html5_media_bundles = 6;
+}
+
+// A legacy app install ad that only can be used by a few select customers.
+message LegacyAppInstallAdInfo {
+ // The id of the mobile app.
+ google.protobuf.StringValue app_id = 1;
+
+ // The app store the mobile app is available in.
+ google.ads.googleads.v1.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore app_store = 2;
+
+ // The headline of the ad.
+ google.protobuf.StringValue headline = 3;
+
+ // The first description line of the ad.
+ google.protobuf.StringValue description1 = 4;
+
+ // The second description line of the ad.
+ google.protobuf.StringValue description2 = 5;
+}
+
+// A responsive display ad.
+message ResponsiveDisplayAdInfo {
+ // Marketing images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must
+ // be 1.91:1 (+-1%). At least one marketing_image is required. Combined with
+ // square_marketing_images the maximum is 15.
+ repeated AdImageAsset marketing_images = 1;
+
+ // Square marketing images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must
+ // be 1:1 (+-1%). At least one square marketing_image is required. Combined
+ // with marketing_images the maximum is 15.
+ repeated AdImageAsset square_marketing_images = 2;
+
+ // Logo images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must
+ // be 4:1 (+-1%). Combined with square_logo_images the maximum is 5.
+ repeated AdImageAsset logo_images = 3;
+
+ // Square logo images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must
+ // be 1:1 (+-1%). Combined with square_logo_images the maximum is 5.
+ repeated AdImageAsset square_logo_images = 4;
+
+ // Short format headlines for the ad. The maximum length is 30 characters.
+ // At least 1 and max 5 headlines can be specified.
+ repeated AdTextAsset headlines = 5;
+
+ // A required long format headline. The maximum length is 90 characters.
+ AdTextAsset long_headline = 6;
+
+ // Descriptive texts for the ad. The maximum length is 90 characters. At
+ // least 1 and max 5 headlines can be specified.
+ repeated AdTextAsset descriptions = 7;
+
+ // Optional YouTube vidoes for the ad. A maximum of 5 videos can be specified.
+ repeated AdVideoAsset youtube_videos = 8;
+
+ // The advertiser/brand name. Maximum display width is 25.
+ google.protobuf.StringValue business_name = 9;
+
+ // The main color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue main_color = 10;
+
+ // The accent color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue accent_color = 11;
+
+ // Advertiser's consent to allow flexible color. When true, the ad may be
+ // served with different color if necessary. When false, the ad will be served
+ // with the specified colors or a neutral color.
+ // The default value is true.
+ // Must be true if main_color and accent_color are not set.
+ google.protobuf.BoolValue allow_flexible_color = 12;
+
+ // The call-to-action text for the ad. Maximum display width is 30.
+ google.protobuf.StringValue call_to_action_text = 13;
+
+ // Prefix before price. E.g. 'as low as'.
+ google.protobuf.StringValue price_prefix = 14;
+
+ // Promotion text used for dyanmic formats of responsive ads. For example
+ // 'Free two-day shipping'.
+ google.protobuf.StringValue promo_text = 15;
+
+ // Specifies which format the ad will be served in. Default is ALL_FORMATS.
+ google.ads.googleads.v1.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 16;
+}
diff --git a/google/ads/googleads/v1/common/asset_types.proto b/google/ads/googleads/v1/common/asset_types.proto
new file mode 100644
index 000000000..ab13a3587
--- /dev/null
+++ b/google/ads/googleads/v1/common/asset_types.proto
@@ -0,0 +1,76 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/mime_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "AssetTypesProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file containing info messages for specific asset types.
+
+// A YouTube asset.
+message YoutubeVideoAsset {
+ // YouTube video id. This is the 11 character string value used in the
+ // YouTube video URL.
+ google.protobuf.StringValue youtube_video_id = 1;
+}
+
+// A MediaBundle asset.
+message MediaBundleAsset {
+ // Media bundle (ZIP file) asset data. The format of the uploaded ZIP file
+ // depends on the ad field where it will be used. For more information on the
+ // format, see the documentation of the ad field where you plan on using the
+ // MediaBundleAsset. This field is mutate only.
+ google.protobuf.BytesValue data = 1;
+}
+
+// An Image asset.
+message ImageAsset {
+ // The raw bytes data of an image. This field is mutate only.
+ google.protobuf.BytesValue data = 1;
+
+ // File size of the image asset in bytes.
+ google.protobuf.Int64Value file_size = 2;
+
+ // MIME type of the image asset.
+ google.ads.googleads.v1.enums.MimeTypeEnum.MimeType mime_type = 3;
+
+ // Metadata for this image at its original size.
+ ImageDimension full_size = 4;
+}
+
+// Metadata for an image at a certain size, either original or resized.
+message ImageDimension {
+ // Height of the image.
+ google.protobuf.Int64Value height_pixels = 1;
+
+ // Width of the image.
+ google.protobuf.Int64Value width_pixels = 2;
+
+ // A URL that returns the image with this height and width.
+ google.protobuf.StringValue url = 3;
+}
diff --git a/google/ads/googleads/v1/common/bidding.proto b/google/ads/googleads/v1/common/bidding.proto
new file mode 100644
index 000000000..a971119f2
--- /dev/null
+++ b/google/ads/googleads/v1/common/bidding.proto
@@ -0,0 +1,232 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto";
+import "google/ads/googleads/v1/enums/target_impression_share_location.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing bidding schemes.
+
+// Commission is an automatic bidding strategy in which the advertiser pays a
+// certain portion of the conversion value.
+message Commission {
+ // Commission rate defines the portion of the conversion value that the
+ // advertiser will be billed. A commission rate of x should be passed into
+ // this field as (x * 1,000,000). For example, 106,000 represents a commission
+ // rate of 0.106 (10.6%).
+ google.protobuf.Int64Value commission_rate_micros = 1;
+}
+
+// An automated bidding strategy that raises bids for clicks
+// that seem more likely to lead to a conversion and lowers
+// them for clicks where they seem less likely.
+message EnhancedCpc {
+
+}
+
+// Manual click-based bidding where user pays per click.
+message ManualCpc {
+ // Whether bids are to be enhanced based on conversion optimizer data.
+ google.protobuf.BoolValue enhanced_cpc_enabled = 1;
+}
+
+// Manual impression-based bidding where user pays per thousand impressions.
+message ManualCpm {
+
+}
+
+// View based bidding where user pays per video view.
+message ManualCpv {
+
+}
+
+// An automated bidding strategy that sets bids to help get the most conversions
+// for your campaign while spending your budget.
+message MaximizeConversions {
+
+}
+
+// An automated bidding strategy which tries to maximize conversion value
+// given a daily budget.
+message MaximizeConversionValue {
+ // The target return on ad spend (ROAS) option. If set, the bid strategy will
+ // maximize revenue while averaging the target return on ad spend. If the
+ // target ROAS is high, the bid strategy may not be able to spend the full
+ // budget. If the target ROAS is not set, the bid strategy will aim to
+ // achieve the highest possible ROAS for the budget.
+ google.protobuf.DoubleValue target_roas = 1;
+}
+
+// An automated bidding strategy which sets CPC bids to target impressions on
+// page one, or page one promoted slots on google.com.
+message PageOnePromoted {
+ // The strategy goal of where impressions are desired to be shown on
+ // search result pages.
+ google.ads.googleads.v1.enums.PageOnePromotedStrategyGoalEnum.PageOnePromotedStrategyGoal strategy_goal = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+
+ // Bid multiplier to be applied to the relevant bid estimate (depending on
+ // the `strategy_goal`) in determining a keyword's new CPC bid.
+ google.protobuf.DoubleValue bid_modifier = 3;
+
+ // Whether the strategy should always follow bid estimate changes, or only
+ // increase.
+ // If false, always sets a keyword's new bid to the current bid estimate.
+ // If true, only updates a keyword's bid if the current bid estimate is
+ // greater than the current bid.
+ google.protobuf.BoolValue only_raise_cpc_bids = 4;
+
+ // Whether the strategy is allowed to raise bids when the throttling
+ // rate of the budget it is serving out of rises above a threshold.
+ google.protobuf.BoolValue raise_cpc_bid_when_budget_constrained = 5;
+
+ // Whether the strategy is allowed to raise bids on keywords with
+ // lower-range quality scores.
+ google.protobuf.BoolValue raise_cpc_bid_when_quality_score_is_low = 6;
+}
+
+// An automated bid strategy that sets bids to help get as many conversions as
+// possible at the target cost-per-acquisition (CPA) you set.
+message TargetCpa {
+ // Average CPA target.
+ // This target should be greater than or equal to minimum billable unit based
+ // on the currency for the account.
+ google.protobuf.Int64Value target_cpa_micros = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+
+ // Minimum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_floor_micros = 3;
+}
+
+// Target CPM (cost per thousand impressions) is an automated bidding strategy
+// that sets bids to optimize performance given the target CPM you set.
+message TargetCpm {
+
+}
+
+// An automated bidding strategy that sets bids so that a certain percentage of
+// search ads are shown at the top of the first page (or other targeted
+// location).
+// Next Id = 4
+message TargetImpressionShare {
+ // The targeted location on the search results page.
+ google.ads.googleads.v1.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1;
+
+ // The desired fraction of ads to be shown in the targeted location in micros.
+ // E.g. 1% equals 10,000.
+ google.protobuf.Int64Value location_fraction_micros = 2;
+
+ // The highest CPC bid the automated bidding system is permitted to specify.
+ // This is a required field entered by the advertiser that sets the ceiling
+ // and specified in local micros.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 3;
+}
+
+// An automated bidding strategy that sets bids based on the target fraction of
+// auctions where the advertiser should outrank a specific competitor.
+message TargetOutrankShare {
+ // The target fraction of auctions where the advertiser should outrank the
+ // competitor.
+ // The advertiser outranks the competitor in an auction if either the
+ // advertiser appears above the competitor in the search results, or appears
+ // in the search results when the competitor does not.
+ // Value must be between 1 and 1000000, inclusive.
+ google.protobuf.Int32Value target_outrank_share_micros = 1;
+
+ // Competitor's visible domain URL.
+ google.protobuf.StringValue competitor_domain = 2;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 3;
+
+ // Whether the strategy should always follow bid estimate changes,
+ // or only increase.
+ // If false, always set a keyword's new bid to the current bid estimate.
+ // If true, only updates a keyword's bid if the current bid estimate is
+ // greater than the current bid.
+ google.protobuf.BoolValue only_raise_cpc_bids = 4;
+
+ // Whether the strategy is allowed to raise bids on keywords with
+ // lower-range quality scores.
+ google.protobuf.BoolValue raise_cpc_bid_when_quality_score_is_low = 5;
+}
+
+// An automated bidding strategy that helps you maximize revenue while
+// averaging a specific target return on ad spend (ROAS).
+message TargetRoas {
+ // Required. The desired revenue (based on conversion data) per unit of spend.
+ // Value must be between 0.01 and 1000.0, inclusive.
+ google.protobuf.DoubleValue target_roas = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+
+ // Minimum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_floor_micros = 3;
+}
+
+// An automated bid strategy that sets your bids to help get as many clicks
+// as possible within your budget.
+message TargetSpend {
+ // The spend target under which to maximize clicks.
+ // A TargetSpend bidder will attempt to spend the smaller of this value
+ // or the natural throttling spend amount.
+ // If not specified, the budget is used as the spend target.
+ google.protobuf.Int64Value target_spend_micros = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+}
+
+// A bidding strategy where bids are a fraction of the advertised price for
+// some good or service.
+message PercentCpc {
+ // Maximum bid limit that can be set by the bid strategy. This is
+ // an optional field entered by the advertiser and specified in local micros.
+ // Note: A zero value is interpreted in the same way as having bid_ceiling
+ // undefined.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 1;
+
+ // Adjusts the bid for each auction upward or downward, depending on the
+ // likelihood of a conversion. Individual bids may exceed
+ // cpc_bid_ceiling_micros, but the average bid amount for a campaign should
+ // not.
+ google.protobuf.BoolValue enhanced_cpc_enabled = 2;
+}
diff --git a/google/ads/googleads/v1/common/click_location.proto b/google/ads/googleads/v1/common/click_location.proto
new file mode 100644
index 000000000..94eb32729
--- /dev/null
+++ b/google/ads/googleads/v1/common/click_location.proto
@@ -0,0 +1,50 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ClickLocationProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing a ClickLocation.
+
+// Location criteria associated with a click.
+message ClickLocation {
+ // The city location criterion associated with the impression.
+ google.protobuf.StringValue city = 1;
+
+ // The country location criterion associated with the impression.
+ google.protobuf.StringValue country = 2;
+
+ // The metro location criterion associated with the impression.
+ google.protobuf.StringValue metro = 3;
+
+ // The most specific location criterion associated with the impression.
+ google.protobuf.StringValue most_specific = 4;
+
+ // The region location criterion associated with the impression.
+ google.protobuf.StringValue region = 5;
+}
diff --git a/google/ads/googleads/v1/common/criteria.proto b/google/ads/googleads/v1/common/criteria.proto
new file mode 100644
index 000000000..5406c09ce
--- /dev/null
+++ b/google/ads/googleads/v1/common/criteria.proto
@@ -0,0 +1,571 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/age_range_type.proto";
+import "google/ads/googleads/v1/enums/app_payment_model_type.proto";
+import "google/ads/googleads/v1/enums/content_label_type.proto";
+import "google/ads/googleads/v1/enums/day_of_week.proto";
+import "google/ads/googleads/v1/enums/device.proto";
+import "google/ads/googleads/v1/enums/gender_type.proto";
+import "google/ads/googleads/v1/enums/hotel_date_selection_type.proto";
+import "google/ads/googleads/v1/enums/income_range_type.proto";
+import "google/ads/googleads/v1/enums/interaction_type.proto";
+import "google/ads/googleads/v1/enums/keyword_match_type.proto";
+import "google/ads/googleads/v1/enums/listing_custom_attribute_index.proto";
+import "google/ads/googleads/v1/enums/listing_group_type.proto";
+import "google/ads/googleads/v1/enums/minute_of_hour.proto";
+import "google/ads/googleads/v1/enums/parental_status_type.proto";
+import "google/ads/googleads/v1/enums/preferred_content_type.proto";
+import "google/ads/googleads/v1/enums/product_bidding_category_level.proto";
+import "google/ads/googleads/v1/enums/product_channel.proto";
+import "google/ads/googleads/v1/enums/product_channel_exclusivity.proto";
+import "google/ads/googleads/v1/enums/product_condition.proto";
+import "google/ads/googleads/v1/enums/product_type_level.proto";
+import "google/ads/googleads/v1/enums/proximity_radius_units.proto";
+import "google/ads/googleads/v1/enums/webpage_condition_operand.proto";
+import "google/ads/googleads/v1/enums/webpage_condition_operator.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "CriteriaProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing criteria types.
+
+// A keyword criterion.
+message KeywordInfo {
+ // The text of the keyword (at most 80 characters and 10 words).
+ google.protobuf.StringValue text = 1;
+
+ // The match type of the keyword.
+ google.ads.googleads.v1.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2;
+}
+
+// A placement criterion. This can be used to modify bids for sites when
+// targeting the content network.
+message PlacementInfo {
+ // URL of the placement.
+ //
+ // For example, "http://www.domain.com".
+ google.protobuf.StringValue url = 1;
+}
+
+// A mobile app category criterion.
+message MobileAppCategoryInfo {
+ // The mobile app category constant resource name.
+ google.protobuf.StringValue mobile_app_category_constant = 1;
+}
+
+// A mobile application criterion.
+message MobileApplicationInfo {
+ // A string that uniquely identifies a mobile application to Google Ads API.
+ // The format of this string is "{platform}-{platform_native_id}", where
+ // platform is "1" for iOS apps and "2" for Android apps, and where
+ // platform_native_id 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 Google Ads API would thus be "1-476943146" for iOS
+ // and "2-com.labpixies.colordrips" for Android.
+ // This field is required and must be set in CREATE operations.
+ google.protobuf.StringValue app_id = 2;
+}
+
+// A location criterion.
+message LocationInfo {
+ // The geo target constant resource name.
+ google.protobuf.StringValue geo_target_constant = 1;
+}
+
+// A device criterion.
+message DeviceInfo {
+ // Type of the device.
+ google.ads.googleads.v1.enums.DeviceEnum.Device type = 1;
+}
+
+// A preferred content criterion.
+message PreferredContentInfo {
+ // Type of the preferred content.
+ google.ads.googleads.v1.enums.PreferredContentTypeEnum.PreferredContentType type = 2;
+}
+
+// A listing group criterion.
+message ListingGroupInfo {
+ // Type of the listing group.
+ google.ads.googleads.v1.enums.ListingGroupTypeEnum.ListingGroupType type = 1;
+
+ // Dimension value with which this listing group is refining its parent.
+ // Undefined for the root group.
+ ListingDimensionInfo case_value = 2;
+
+ // Resource name of ad group criterion which is the parent listing group
+ // subdivision. Null for the root group.
+ google.protobuf.StringValue parent_ad_group_criterion = 3;
+}
+
+// A listing scope criterion.
+message ListingScopeInfo {
+ // Scope of the campaign criterion.
+ repeated ListingDimensionInfo dimensions = 2;
+}
+
+// Listing dimensions for listing group criterion.
+message ListingDimensionInfo {
+ // Dimension of one of the types below is always present.
+ oneof dimension {
+ // Brand of the listing.
+ ListingBrandInfo listing_brand = 1;
+
+ // Advertiser-specific hotel ID.
+ HotelIdInfo hotel_id = 2;
+
+ // Class of the hotel as a number of stars 1 to 5.
+ HotelClassInfo hotel_class = 3;
+
+ // Country or Region the hotel is located in.
+ HotelCountryRegionInfo hotel_country_region = 4;
+
+ // State the hotel is located in.
+ HotelStateInfo hotel_state = 5;
+
+ // City the hotel is located in.
+ HotelCityInfo hotel_city = 6;
+
+ // Listing custom attribute.
+ ListingCustomAttributeInfo listing_custom_attribute = 7;
+
+ // Bidding category of a product offer.
+ ProductBiddingCategoryInfo product_bidding_category = 13;
+
+ // Locality of a product offer.
+ ProductChannelInfo product_channel = 8;
+
+ // Availability of a product offer.
+ ProductChannelExclusivityInfo product_channel_exclusivity = 9;
+
+ // Condition of a product offer.
+ ProductConditionInfo product_condition = 10;
+
+ // Item id of a product offer.
+ ProductItemIdInfo product_item_id = 11;
+
+ // Type of a product offer.
+ ProductTypeInfo product_type = 12;
+
+ // Unknown dimension. Set when no other listing dimension is set.
+ UnknownListingDimensionInfo unknown_listing_dimension = 14;
+ }
+}
+
+// Brand of the listing.
+message ListingBrandInfo {
+ // String value of the listing brand.
+ google.protobuf.StringValue value = 1;
+}
+
+// Advertiser-specific hotel ID.
+message HotelIdInfo {
+ // String value of the hotel ID.
+ google.protobuf.StringValue value = 1;
+}
+
+// Class of the hotel as a number of stars 1 to 5.
+message HotelClassInfo {
+ // Long value of the hotel class.
+ google.protobuf.Int64Value value = 1;
+}
+
+// Country or Region the hotel is located in.
+message HotelCountryRegionInfo {
+ // The Geo Target Constant resource name.
+ google.protobuf.StringValue country_region_criterion = 1;
+}
+
+// State the hotel is located in.
+message HotelStateInfo {
+ // The Geo Target Constant resource name.
+ google.protobuf.StringValue state_criterion = 1;
+}
+
+// City the hotel is located in.
+message HotelCityInfo {
+ // The Geo Target Constant resource name.
+ google.protobuf.StringValue city_criterion = 1;
+}
+
+// Listing custom attribute.
+message ListingCustomAttributeInfo {
+ // String value of the listing custom attribute.
+ google.protobuf.StringValue value = 1;
+
+ // Indicates the index of the custom attribute.
+ google.ads.googleads.v1.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex index = 2;
+}
+
+// Bidding category of a product offer.
+message ProductBiddingCategoryInfo {
+ // ID of the product bidding category.
+ //
+ // This ID is equivalent to the google_product_category ID as described in
+ // this article: https://support.google.com/merchants/answer/6324436.
+ google.protobuf.Int64Value id = 1;
+
+ // Two-letter upper-case country code of the product bidding category. It must
+ // match the campaign.shopping_setting.sales_country field.
+ google.protobuf.StringValue country_code = 2;
+
+ // Level of the product bidding category.
+ google.ads.googleads.v1.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 3;
+}
+
+// Locality of a product offer.
+message ProductChannelInfo {
+ // Value of the locality.
+ google.ads.googleads.v1.enums.ProductChannelEnum.ProductChannel channel = 1;
+}
+
+// Availability of a product offer.
+message ProductChannelExclusivityInfo {
+ // Value of the availability.
+ google.ads.googleads.v1.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity channel_exclusivity = 1;
+}
+
+// Condition of a product offer.
+message ProductConditionInfo {
+ // Value of the condition.
+ google.ads.googleads.v1.enums.ProductConditionEnum.ProductCondition condition = 1;
+}
+
+// Item id of a product offer.
+message ProductItemIdInfo {
+ // Value of the id.
+ google.protobuf.StringValue value = 1;
+}
+
+// Type of a product offer.
+message ProductTypeInfo {
+ // Value of the type.
+ google.protobuf.StringValue value = 1;
+
+ // Level of the type.
+ google.ads.googleads.v1.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2;
+}
+
+// Unknown listing dimension.
+message UnknownListingDimensionInfo {
+
+}
+
+// Criterion for hotel date selection (default dates vs. user selected).
+message HotelDateSelectionTypeInfo {
+ // Type of the hotel date selection
+ google.ads.googleads.v1.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType type = 1;
+}
+
+// Criterion for number of days prior to the stay the booking is being made.
+message HotelAdvanceBookingWindowInfo {
+ // Low end of the number of days prior to the stay.
+ google.protobuf.Int64Value min_days = 1;
+
+ // High end of the number of days prior to the stay.
+ google.protobuf.Int64Value max_days = 2;
+}
+
+// Criterion for length of hotel stay in nights.
+message HotelLengthOfStayInfo {
+ // Low end of the number of nights in the stay.
+ google.protobuf.Int64Value min_nights = 1;
+
+ // High end of the number of nights in the stay.
+ google.protobuf.Int64Value max_nights = 2;
+}
+
+// Criterion for day of the week the booking is for.
+message HotelCheckInDayInfo {
+ // The day of the week.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1;
+}
+
+// Criterion for Interaction Type.
+message InteractionTypeInfo {
+ // The interaction type.
+ google.ads.googleads.v1.enums.InteractionTypeEnum.InteractionType type = 1;
+}
+
+// Represents an AdSchedule criterion.
+//
+// AdSchedule is specified as the day of the week and a time interval
+// within which ads will be shown.
+//
+// No more than six AdSchedules can be added for the same day.
+message AdScheduleInfo {
+ // Minutes after the start hour at which this schedule starts.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.ads.googleads.v1.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 1;
+
+ // Minutes after the end hour at which this schedule ends. The schedule is
+ // exclusive of the end minute.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.ads.googleads.v1.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2;
+
+ // Starting hour in 24 hour time.
+ // This field must be between 0 and 23, inclusive.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.protobuf.Int32Value start_hour = 3;
+
+ // Ending hour in 24 hour time; 24 signifies end of the day.
+ // This field must be between 0 and 24, inclusive.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.protobuf.Int32Value end_hour = 4;
+
+ // Day of the week the schedule applies to.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5;
+}
+
+// An age range criterion.
+message AgeRangeInfo {
+ // Type of the age range.
+ google.ads.googleads.v1.enums.AgeRangeTypeEnum.AgeRangeType type = 1;
+}
+
+// A gender criterion.
+message GenderInfo {
+ // Type of the gender.
+ google.ads.googleads.v1.enums.GenderTypeEnum.GenderType type = 1;
+}
+
+// An income range criterion.
+message IncomeRangeInfo {
+ // Type of the income range.
+ google.ads.googleads.v1.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1;
+}
+
+// A parental status criterion.
+message ParentalStatusInfo {
+ // Type of the parental status.
+ google.ads.googleads.v1.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1;
+}
+
+// A YouTube Video criterion.
+message YouTubeVideoInfo {
+ // YouTube video id as it appears on the YouTube watch page.
+ google.protobuf.StringValue video_id = 1;
+}
+
+// A YouTube Channel criterion.
+message YouTubeChannelInfo {
+ // The YouTube uploader channel id or the channel code of a YouTube channel.
+ google.protobuf.StringValue channel_id = 1;
+}
+
+// A User List criterion. Represents a user list that is defined by the
+// advertiser to be targeted.
+message UserListInfo {
+ // The User List resource name.
+ google.protobuf.StringValue user_list = 1;
+}
+
+// A Proximity criterion. The geo point and radius determine what geographical
+// area is included. The address is a description of the geo point that does
+// not affect ad serving.
+//
+// There are two ways to create a proximity. First, by setting an address
+// and radius. The geo point will be automatically computed. Second, by
+// setting a geo point and radius. The address is an optional label that won't
+// be validated.
+message ProximityInfo {
+ // Latitude and longitude.
+ GeoPointInfo geo_point = 1;
+
+ // The radius of the proximity.
+ google.protobuf.DoubleValue radius = 2;
+
+ // The unit of measurement of the radius. Default is KILOMETERS.
+ google.ads.googleads.v1.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3;
+
+ // Full address.
+ AddressInfo address = 4;
+}
+
+// Geo point for proximity criterion.
+message GeoPointInfo {
+ // Micro degrees for the longitude.
+ google.protobuf.Int32Value longitude_in_micro_degrees = 1;
+
+ // Micro degrees for the latitude.
+ google.protobuf.Int32Value latitude_in_micro_degrees = 2;
+}
+
+// Address for proximity criterion.
+message AddressInfo {
+ // Postal code.
+ google.protobuf.StringValue postal_code = 1;
+
+ // Province or state code.
+ google.protobuf.StringValue province_code = 2;
+
+ // Country code.
+ google.protobuf.StringValue country_code = 3;
+
+ // Province or state name.
+ google.protobuf.StringValue province_name = 4;
+
+ // Street address line 1.
+ google.protobuf.StringValue street_address = 5;
+
+ // Street address line 2. This field is write-only. It is only used for
+ // calculating the longitude and latitude of an address when geo_point is
+ // empty.
+ google.protobuf.StringValue street_address2 = 6;
+
+ // Name of the city.
+ google.protobuf.StringValue city_name = 7;
+}
+
+// A topic criterion. Use topics to target or exclude placements in the
+// Google Display Network based on the category into which the placement falls
+// (for example, "Pets & Animals/Pets/Dogs").
+message TopicInfo {
+ // The Topic Constant resource name.
+ google.protobuf.StringValue topic_constant = 1;
+
+ // The category to target or exclude. Each subsequent element in the array
+ // describes a more specific sub-category. For example,
+ // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs"
+ // category.
+ repeated google.protobuf.StringValue path = 2;
+}
+
+// A language criterion.
+message LanguageInfo {
+ // The language constant resource name.
+ google.protobuf.StringValue language_constant = 1;
+}
+
+// An IpBlock criterion used for IP exclusions. We allow:
+// - IPv4 and IPv6 addresses
+// - individual addresses (192.168.0.1)
+// - masks for individual addresses (192.168.0.1/32)
+// - masks for Class C networks (192.168.0.1/24)
+message IpBlockInfo {
+ // The IP address of this IP block.
+ google.protobuf.StringValue ip_address = 1;
+}
+
+// Content Label for category exclusion.
+message ContentLabelInfo {
+ // Content label type, required for CREATE operations.
+ google.ads.googleads.v1.enums.ContentLabelTypeEnum.ContentLabelType type = 1;
+}
+
+// Represents a Carrier Criterion.
+message CarrierInfo {
+ // The Carrier constant resource name.
+ google.protobuf.StringValue carrier_constant = 1;
+}
+
+// Represents a particular interest-based topic to be targeted.
+message UserInterestInfo {
+ // The UserInterest resource name.
+ google.protobuf.StringValue user_interest_category = 1;
+}
+
+// Represents a criterion for targeting webpages of an advertiser's website.
+message WebpageInfo {
+ // The name of the criterion that is defined by this parameter. The name value
+ // will be used for identifying, sorting and filtering criteria with this type
+ // of parameters.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.protobuf.StringValue criterion_name = 1;
+
+ // Conditions, or logical expressions, for webpage targeting. The list of
+ // webpage targeting conditions are and-ed together when evaluated
+ // for targeting.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ repeated WebpageConditionInfo conditions = 2;
+}
+
+// Logical expression for targeting webpages of an advertiser's website.
+message WebpageConditionInfo {
+ // Operand of webpage targeting condition.
+ google.ads.googleads.v1.enums.WebpageConditionOperandEnum.WebpageConditionOperand operand = 1;
+
+ // Operator of webpage targeting condition.
+ google.ads.googleads.v1.enums.WebpageConditionOperatorEnum.WebpageConditionOperator operator = 2;
+
+ // Argument of webpage targeting condition.
+ google.protobuf.StringValue argument = 3;
+}
+
+// Represents an operating system version to be targeted.
+message OperatingSystemVersionInfo {
+ // The operating system version constant resource name.
+ google.protobuf.StringValue operating_system_version_constant = 1;
+}
+
+// An app payment model criterion.
+message AppPaymentModelInfo {
+ // Type of the app payment model.
+ google.ads.googleads.v1.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1;
+}
+
+// A mobile device criterion.
+message MobileDeviceInfo {
+ // The mobile device constant resource name.
+ google.protobuf.StringValue mobile_device_constant = 1;
+}
+
+// A custom affinity criterion.
+// A criterion of this type is only targetable.
+message CustomAffinityInfo {
+ // The CustomInterest resource name.
+ google.protobuf.StringValue custom_affinity = 1;
+}
+
+// A custom intent criterion.
+// A criterion of this type is only targetable.
+message CustomIntentInfo {
+ // The CustomInterest resource name.
+ google.protobuf.StringValue custom_intent = 1;
+}
diff --git a/google/ads/googleads/v1/common/criterion_category_availability.proto b/google/ads/googleads/v1/common/criterion_category_availability.proto
new file mode 100644
index 000000000..01d353dac
--- /dev/null
+++ b/google/ads/googleads/v1/common/criterion_category_availability.proto
@@ -0,0 +1,84 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/advertising_channel_sub_type.proto";
+import "google/ads/googleads/v1/enums/advertising_channel_type.proto";
+import "google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto";
+import "google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "CriterionCategoryAvailabilityProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing criterion category availability information.
+
+// Information of category availability, per advertising channel.
+message CriterionCategoryAvailability {
+ // Channel types and subtypes that are available to the category.
+ CriterionCategoryChannelAvailability channel = 1;
+
+ // Locales that are available to the category for the channel.
+ repeated CriterionCategoryLocaleAvailability locale = 2;
+}
+
+// Information of advertising channel type and subtypes a category is available
+// in.
+message CriterionCategoryChannelAvailability {
+ // Format of the channel availability. Can be ALL_CHANNELS (the rest of the
+ // fields will not be set), CHANNEL_TYPE (only advertising_channel_type type
+ // will be set, the category is available to all sub types under it) or
+ // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type,
+ // advertising_channel_sub_type, and include_default_channel_sub_type will all
+ // be set).
+ google.ads.googleads.v1.enums.CriterionCategoryChannelAvailabilityModeEnum.CriterionCategoryChannelAvailabilityMode availability_mode = 1;
+
+ // Channel type the category is available to.
+ google.ads.googleads.v1.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 2;
+
+ // Channel subtypes under the channel type the category is available to.
+ repeated google.ads.googleads.v1.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 3;
+
+ // Whether default channel sub type is included. For example,
+ // advertising_channel_type being DISPLAY and include_default_channel_sub_type
+ // being false means that the default display campaign where channel sub type
+ // is not set is not included in this availability configuration.
+ google.protobuf.BoolValue include_default_channel_sub_type = 4;
+}
+
+// Information about which locales a category is available in.
+message CriterionCategoryLocaleAvailability {
+ // Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and
+ // language will be empty), COUNTRY (only country will be set), LANGUAGE (only
+ // language wil be set), COUNTRY_AND_LANGUAGE (both country and language will
+ // be set).
+ google.ads.googleads.v1.enums.CriterionCategoryLocaleAvailabilityModeEnum.CriterionCategoryLocaleAvailabilityMode availability_mode = 1;
+
+ // Code of the country.
+ google.protobuf.StringValue country_code = 2;
+
+ // Code of the language.
+ google.protobuf.StringValue language_code = 3;
+}
diff --git a/google/ads/googleads/v1/common/custom_parameter.proto b/google/ads/googleads/v1/common/custom_parameter.proto
new file mode 100644
index 000000000..a8b932615
--- /dev/null
+++ b/google/ads/googleads/v1/common/custom_parameter.proto
@@ -0,0 +1,42 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "CustomParameterProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing CustomParameter and operation
+
+// A mapping that can be used by custom parameter tags in a
+// `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
+message CustomParameter {
+ // The key matching the parameter tag name.
+ google.protobuf.StringValue key = 1;
+
+ // The value to be substituted.
+ google.protobuf.StringValue value = 2;
+}
diff --git a/google/ads/googleads/v1/common/dates.proto b/google/ads/googleads/v1/common/dates.proto
new file mode 100644
index 000000000..3cccdfc5f
--- /dev/null
+++ b/google/ads/googleads/v1/common/dates.proto
@@ -0,0 +1,41 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "DatesProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing date range message.
+
+// A date range.
+message DateRange {
+ // The start date, in yyyy-mm-dd format.
+ google.protobuf.StringValue start_date = 1;
+
+ // The end date, in yyyy-mm-dd format.
+ google.protobuf.StringValue end_date = 2;
+}
diff --git a/google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto b/google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto
new file mode 100644
index 000000000..9b935ed14
--- /dev/null
+++ b/google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ExplorerAutoOptimizerSettingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing ExplorerAutoOptimizerSetting
+
+// Settings for the
+// <a href="https://support.google.com/google-ads/answer/190596">
+// Display Campaign Optimizer</a>, initially termed "Explorer".
+message ExplorerAutoOptimizerSetting {
+ // Indicates whether the optimizer is turned on.
+ google.protobuf.BoolValue opt_in = 1;
+}
diff --git a/google/ads/googleads/v1/common/extensions.proto b/google/ads/googleads/v1/common/extensions.proto
new file mode 100644
index 000000000..4c593599c
--- /dev/null
+++ b/google/ads/googleads/v1/common/extensions.proto
@@ -0,0 +1,286 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/common/custom_parameter.proto";
+import "google/ads/googleads/v1/common/feed_common.proto";
+import "google/ads/googleads/v1/enums/app_store.proto";
+import "google/ads/googleads/v1/enums/call_conversion_reporting_state.proto";
+import "google/ads/googleads/v1/enums/price_extension_price_qualifier.proto";
+import "google/ads/googleads/v1/enums/price_extension_price_unit.proto";
+import "google/ads/googleads/v1/enums/price_extension_type.proto";
+import "google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto";
+import "google/ads/googleads/v1/enums/promotion_extension_occasion.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing extension types.
+
+// Represents an App extension.
+message AppFeedItem {
+ // The visible text displayed when the link is rendered in an ad.
+ // The length of this string should be between 1 and 25, inclusive.
+ google.protobuf.StringValue link_text = 1;
+
+ // The store-specific ID for the target application.
+ // This string must not be empty.
+ google.protobuf.StringValue app_id = 2;
+
+ // The application store that the target application belongs to.
+ google.ads.googleads.v1.enums.AppStoreEnum.AppStore app_store = 3;
+
+ // A list of possible final URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_urls = 4;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 5;
+
+ // URL template for constructing a tracking URL. Default value is "{lpurl}".
+ google.protobuf.StringValue tracking_url_template = 6;
+
+ // A list of mappings to be used for substituting URL custom parameter tags in
+ // the tracking_url_template, final_urls, and/or final_mobile_urls.
+ repeated CustomParameter url_custom_parameters = 7;
+
+ // URL template for appending params to landing page URLs served with parallel
+ // tracking.
+ google.protobuf.StringValue final_url_suffix = 8;
+}
+
+// Represents a Call extension.
+message CallFeedItem {
+ // The advertiser's phone number to append to the ad.
+ // This string must not be empty.
+ google.protobuf.StringValue phone_number = 1;
+
+ // Uppercase two-letter country code of the advertiser's phone number.
+ // This string must not be empty.
+ google.protobuf.StringValue country_code = 2;
+
+ // Indicates whether call tracking is enabled. By default, call tracking is
+ // not enabled.
+ google.protobuf.BoolValue call_tracking_enabled = 3;
+
+ // The conversion action to attribute a call conversion to. If not set a
+ // default conversion action is used. This field only has effect if
+ // call_tracking_enabled is set to true. Otherwise this field is ignored.
+ google.protobuf.StringValue call_conversion_action = 4;
+
+ // If true, disable call conversion tracking. call_conversion_action should
+ // not be set if this is true. Optional.
+ google.protobuf.BoolValue call_conversion_tracking_disabled = 5;
+
+ // Enum value that indicates whether this call extension uses its own call
+ // conversion setting (or just have call conversion disabled), or following
+ // the account level setting.
+ google.ads.googleads.v1.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 6;
+}
+
+// Represents a callout extension.
+message CalloutFeedItem {
+ // The callout text.
+ // The length of this string should be between 1 and 25, inclusive.
+ google.protobuf.StringValue callout_text = 1;
+}
+
+// An extension that users can click on to send a text message to the
+// advertiser.
+message TextMessageFeedItem {
+ // The business name to prepend to the message text.
+ // This field is required.
+ google.protobuf.StringValue business_name = 1;
+
+ // Uppercase two-letter country code of the advertiser's phone number.
+ // This field is required.
+ google.protobuf.StringValue country_code = 2;
+
+ // The advertiser's phone number the message will be sent to. Required.
+ google.protobuf.StringValue phone_number = 3;
+
+ // The text to show in the ad.
+ // This field is required.
+ google.protobuf.StringValue text = 4;
+
+ // The message text populated in the messaging app.
+ google.protobuf.StringValue extension_text = 5;
+}
+
+// Represents a Price extension.
+message PriceFeedItem {
+ // Price extension type of this extension.
+ google.ads.googleads.v1.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1;
+
+ // Price qualifier for all offers of this price extension.
+ google.ads.googleads.v1.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2;
+
+ // Tracking URL template for all offers of this price extension.
+ google.protobuf.StringValue tracking_url_template = 3;
+
+ // The code of the language used for this price extension.
+ google.protobuf.StringValue language_code = 4;
+
+ // The price offerings in this price extension.
+ repeated PriceOffer price_offerings = 5;
+
+ // URL template for appending params to landing page URLs served with parallel
+ // tracking.
+ google.protobuf.StringValue final_url_suffix = 6;
+}
+
+// Represents one price offer in a price extension.
+message PriceOffer {
+ // Header text of this offer.
+ google.protobuf.StringValue header = 1;
+
+ // Description text of this offer.
+ google.protobuf.StringValue description = 2;
+
+ // Price value of this offer.
+ Money price = 3;
+
+ // Price unit for this offer.
+ google.ads.googleads.v1.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4;
+
+ // A list of possible final URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_urls = 5;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 6;
+}
+
+// Represents a Promotion extension.
+message PromotionFeedItem {
+ // A freeform description of what the promotion is targeting.
+ // This field is required.
+ google.protobuf.StringValue promotion_target = 1;
+
+ // Enum that modifies the qualification of the discount.
+ google.ads.googleads.v1.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2;
+
+ // Start date of when the promotion is eligible to be redeemed.
+ // This field is currently mutate only.
+ google.protobuf.StringValue promotion_start_date = 7;
+
+ // End date of when the promotion is eligible to be redeemed.
+ // This field is currently mutate only.
+ google.protobuf.StringValue promotion_end_date = 8;
+
+ // The occasion the promotion was intended for.
+ // If an occasion is set, the redemption window will need to fall within
+ // the date range associated with the occasion.
+ google.ads.googleads.v1.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9;
+
+ // A list of possible final URLs after all cross domain redirects.
+ // This field is required.
+ repeated google.protobuf.StringValue final_urls = 10;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 11;
+
+ // URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 12;
+
+ // A list of mappings to be used for substituting URL custom parameter tags in
+ // the tracking_url_template, final_urls, and/or final_mobile_urls.
+ repeated CustomParameter url_custom_parameters = 13;
+
+ // URL template for appending params to landing page URLs served with parallel
+ // tracking.
+ google.protobuf.StringValue final_url_suffix = 14;
+
+ // The language of the promotion.
+ // Represented as BCP 47 language tag.
+ google.protobuf.StringValue language_code = 15;
+
+ // Discount type, can be percentage off or amount off.
+ oneof discount_type {
+ // Percentage off discount in the promotion in micros.
+ // One million is equivalent to one percent.
+ // Either this or money_off_amount is required.
+ google.protobuf.Int64Value percent_off = 3;
+
+ // Money amount off for discount in the promotion.
+ // Either this or percent_off is required.
+ Money money_amount_off = 4;
+ }
+
+ // Promotion trigger. Can be by promotion code or promo by eligible order
+ // amount.
+ oneof promotion_trigger {
+ // A code the user should use in order to be eligible for the promotion.
+ google.protobuf.StringValue promotion_code = 5;
+
+ // The amount the total order needs to be for the user to be eligible for
+ // the promotion.
+ Money orders_over_amount = 6;
+ }
+}
+
+// Represents a structured snippet extension.
+message StructuredSnippetFeedItem {
+ // The header of the snippet.
+ // This string must not be empty.
+ google.protobuf.StringValue header = 1;
+
+ // The values in the snippet.
+ // The maximum size of this collection is 10.
+ repeated google.protobuf.StringValue values = 2;
+}
+
+// Represents a sitelink extension.
+message SitelinkFeedItem {
+ // URL display text for the sitelink.
+ // The length of this string should be between 1 and 25, inclusive.
+ google.protobuf.StringValue link_text = 1;
+
+ // First line of the description for the sitelink.
+ // If this value is set, line2 must also be set.
+ // The length of this string should be between 0 and 35, inclusive.
+ google.protobuf.StringValue line1 = 2;
+
+ // Second line of the description for the sitelink.
+ // If this value is set, line1 must also be set.
+ // The length of this string should be between 0 and 35, inclusive.
+ google.protobuf.StringValue line2 = 3;
+
+ // A list of possible final URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_urls = 4;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 5;
+
+ // URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 6;
+
+ // A list of mappings to be used for substituting URL custom parameter tags in
+ // the tracking_url_template, final_urls, and/or final_mobile_urls.
+ repeated CustomParameter url_custom_parameters = 7;
+
+ // Final URL suffix to be appended to landing page URLs served with
+ // parallel tracking.
+ google.protobuf.StringValue final_url_suffix = 8;
+}
diff --git a/google/ads/googleads/v1/common/feed_common.proto b/google/ads/googleads/v1/common/feed_common.proto
new file mode 100644
index 000000000..e889a6061
--- /dev/null
+++ b/google/ads/googleads/v1/common/feed_common.proto
@@ -0,0 +1,41 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "FeedCommonProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing common feed proto messages.
+
+// Represents a price in a particular currency.
+message Money {
+ // Three-character ISO 4217 currency code.
+ google.protobuf.StringValue currency_code = 1;
+
+ // Amount in micros. One million is equivalent to one unit.
+ google.protobuf.Int64Value amount_micros = 2;
+}
diff --git a/google/ads/googleads/v1/common/frequency_cap.proto b/google/ads/googleads/v1/common/frequency_cap.proto
new file mode 100644
index 000000000..66b762c54
--- /dev/null
+++ b/google/ads/googleads/v1/common/frequency_cap.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/frequency_cap_event_type.proto";
+import "google/ads/googleads/v1/enums/frequency_cap_level.proto";
+import "google/ads/googleads/v1/enums/frequency_cap_time_unit.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "FrequencyCapProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing frequency caps.
+
+// A rule specifying the maximum number of times an ad (or some set of ads) can
+// be shown to a user over a particular time period.
+message FrequencyCapEntry {
+ // The key of a particular frequency cap. There can be no more
+ // than one frequency cap with the same key.
+ FrequencyCapKey key = 1;
+
+ // Maximum number of events allowed during the time range by this cap.
+ google.protobuf.Int32Value cap = 2;
+}
+
+// A group of fields used as keys for a frequency cap.
+// There can be no more than one frequency cap with the same key.
+message FrequencyCapKey {
+ // The level on which the cap is to be applied (e.g. ad group ad, ad group).
+ // The cap is applied to all the entities of this level.
+ google.ads.googleads.v1.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1;
+
+ // The type of event that the cap applies to (e.g. impression).
+ google.ads.googleads.v1.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3;
+
+ // Unit of time the cap is defined at (e.g. day, week).
+ google.ads.googleads.v1.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2;
+
+ // Number of time units the cap lasts.
+ google.protobuf.Int32Value time_length = 4;
+}
diff --git a/google/ads/googleads/v1/common/keyword_plan_common.proto b/google/ads/googleads/v1/common/keyword_plan_common.proto
new file mode 100644
index 000000000..6c0f6bff4
--- /dev/null
+++ b/google/ads/googleads/v1/common/keyword_plan_common.proto
@@ -0,0 +1,42 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/keyword_plan_competition_level.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanCommonProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing Keyword Planner messages.
+
+// Historical metrics.
+message KeywordPlanHistoricalMetrics {
+ // Average monthly searches for the past 12 months.
+ google.protobuf.Int64Value avg_monthly_searches = 1;
+
+ // The competition level for the query.
+ google.ads.googleads.v1.enums.KeywordPlanCompetitionLevelEnum.KeywordPlanCompetitionLevel competition = 2;
+}
diff --git a/google/ads/googleads/v1/common/matching_function.proto b/google/ads/googleads/v1/common/matching_function.proto
new file mode 100644
index 000000000..f72898752
--- /dev/null
+++ b/google/ads/googleads/v1/common/matching_function.proto
@@ -0,0 +1,128 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/matching_function_context_type.proto";
+import "google/ads/googleads/v1/enums/matching_function_operator.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "MatchingFunctionProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing a matching function.
+
+// Matching function associated with a
+// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used
+// to filter the set of feed items selected.
+message MatchingFunction {
+ // String representation of the Function.
+ //
+ // Examples:
+ // 1) IDENTITY(true) or IDENTITY(false). All or none feed items serve.
+ // 2) EQUALS(CONTEXT.DEVICE,"Mobile")
+ // 3) IN(FEED_ITEM_ID,{1000001,1000002,1000003})
+ // 4) CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"})
+ // 5) AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile"))
+ // See
+ //
+ // https:
+ // //developers.google.com/adwords/api/docs/guides/feed-matching-functions
+ //
+ // Note that because multiple strings may represent the same underlying
+ // function (whitespace and single versus double quotation marks, for
+ // example), the value returned may not be identical to the string sent in a
+ // mutate request.
+ google.protobuf.StringValue function_string = 1;
+
+ // Operator for a function.
+ google.ads.googleads.v1.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator operator = 4;
+
+ // The operands on the left hand side of the equation. This is also the
+ // operand to be used for single operand expressions such as NOT.
+ repeated Operand left_operands = 2;
+
+ // The operands on the right hand side of the equation.
+ repeated Operand right_operands = 3;
+}
+
+// An operand in a matching function.
+message Operand {
+ // A constant operand in a matching function.
+ message ConstantOperand {
+ // Constant operand values. Required.
+ oneof constant_operand_value {
+ // String value of the operand if it is a string type.
+ google.protobuf.StringValue string_value = 1;
+
+ // Int64 value of the operand if it is a int64 type.
+ google.protobuf.Int64Value long_value = 2;
+
+ // Boolean value of the operand if it is a boolean type.
+ google.protobuf.BoolValue boolean_value = 3;
+
+ // Double value of the operand if it is a double type.
+ google.protobuf.DoubleValue double_value = 4;
+ }
+ }
+
+ // A feed attribute operand in a matching function.
+ // Used to represent a feed attribute in feed.
+ message FeedAttributeOperand {
+ // The associated feed. Required.
+ google.protobuf.Int64Value feed_id = 1;
+
+ // Id of the referenced feed attribute. Required.
+ google.protobuf.Int64Value feed_attribute_id = 2;
+ }
+
+ // A function operand in a matching function.
+ // Used to represent nested functions.
+ message FunctionOperand {
+ // The matching function held in this operand.
+ MatchingFunction matching_function = 1;
+ }
+
+ // An operand in a function referring to a value in the request context.
+ message RequestContextOperand {
+ // Type of value to be referred in the request context.
+ google.ads.googleads.v1.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType context_type = 1;
+ }
+
+ // Different operands that can be used in a matching function. Required.
+ oneof function_argument_operand {
+ // A constant operand in a matching function.
+ ConstantOperand constant_operand = 1;
+
+ // This operand specifies a feed attribute in feed.
+ FeedAttributeOperand feed_attribute_operand = 2;
+
+ // A function operand in a matching function.
+ // Used to represent nested functions.
+ FunctionOperand function_operand = 3;
+
+ // An operand in a function referring to a value in the request context.
+ RequestContextOperand request_context_operand = 4;
+ }
+}
diff --git a/google/ads/googleads/v1/common/metrics.proto b/google/ads/googleads/v1/common/metrics.proto
new file mode 100644
index 000000000..f2ad47ed2
--- /dev/null
+++ b/google/ads/googleads/v1/common/metrics.proto
@@ -0,0 +1,435 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/interaction_event_type.proto";
+import "google/ads/googleads/v1/enums/quality_score_bucket.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "MetricsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing metrics.
+
+// Metrics data.
+message Metrics {
+ // The percent of your ad impressions that are shown as the very first ad
+ // above the organic search results.
+ google.protobuf.DoubleValue absolute_top_impression_percentage = 95;
+
+ // Average cost of viewable impressions (`active_view_impressions`).
+ google.protobuf.DoubleValue active_view_cpm = 1;
+
+ // Active view measurable clicks divided by active view viewable impressions.
+ // This metric is reported only for display network.
+ google.protobuf.DoubleValue active_view_ctr = 79;
+
+ // A measurement of how often your ad has become viewable on a Display
+ // Network site.
+ google.protobuf.Int64Value active_view_impressions = 2;
+
+ // The ratio of impressions that could be measured by Active View over the
+ // number of served impressions.
+ google.protobuf.DoubleValue active_view_measurability = 96;
+
+ // The cost of the impressions you received that were measurable by Active
+ // View.
+ google.protobuf.Int64Value active_view_measurable_cost_micros = 3;
+
+ // The number of times your ads are appearing on placements in positions
+ // where they can be seen.
+ google.protobuf.Int64Value active_view_measurable_impressions = 4;
+
+ // The percentage of time when your ad appeared on an Active View enabled site
+ // (measurable impressions) and was viewable (viewable impressions).
+ google.protobuf.DoubleValue active_view_viewability = 97;
+
+ // All conversions from interactions (as oppose to view through conversions)
+ // divided by the number of ad interactions.
+ google.protobuf.DoubleValue all_conversions_from_interactions_rate = 65;
+
+ // The total value of all conversions.
+ google.protobuf.DoubleValue all_conversions_value = 66;
+
+ // The total number of conversions. This only includes conversion actions
+ // which include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue all_conversions = 7;
+
+ // The value of all conversions divided by the total cost of ad interactions
+ // (such as clicks for text ads or views for video ads).
+ google.protobuf.DoubleValue all_conversions_value_per_cost = 62;
+
+ // The value of all conversions from interactions divided by the total number
+ // of interactions.
+ google.protobuf.DoubleValue all_conversions_from_interactions_value_per_interaction = 67;
+
+ // The average amount you pay per interaction. This amount is the total cost
+ // of your ads divided by the total number of interactions.
+ google.protobuf.DoubleValue average_cost = 8;
+
+ // The total cost of all clicks divided by the total number of clicks
+ // received.
+ google.protobuf.DoubleValue average_cpc = 9;
+
+ // The average amount that you've been charged for an ad engagement. This
+ // amount is the total cost of all ad engagements divided by the total number
+ // of ad engagements.
+ google.protobuf.DoubleValue average_cpe = 98;
+
+ // Average cost-per-thousand impressions (CPM).
+ google.protobuf.DoubleValue average_cpm = 10;
+
+ // The average amount you pay each time someone views your ad.
+ // The average CPV is defined by the total cost of all ad views divided by
+ // the number of views.
+ google.protobuf.DoubleValue average_cpv = 11;
+
+ // Average number of times a unique cookie was exposed to your ad
+ // over a given time period. Imported from Google Analytics.
+ google.protobuf.DoubleValue average_frequency = 12;
+
+ // Average number of pages viewed per session.
+ google.protobuf.DoubleValue average_page_views = 99;
+
+ // Your ad's position relative to those of other advertisers.
+ google.protobuf.DoubleValue average_position = 13;
+
+ // Total duration of all sessions (in seconds) / number of sessions. Imported
+ // from Google Analytics.
+ google.protobuf.DoubleValue average_time_on_site = 84;
+
+ // An indication of how other advertisers are bidding on similar products.
+ google.protobuf.DoubleValue benchmark_average_max_cpc = 14;
+
+ // An indication on how other advertisers' Shopping ads for similar products
+ // are performing based on how often people who see their ad click on it.
+ google.protobuf.DoubleValue benchmark_ctr = 77;
+
+ // Percentage of clicks where the user only visited a single page on your
+ // site. Imported from Google Analytics.
+ google.protobuf.DoubleValue bounce_rate = 15;
+
+ // The number of clicks.
+ google.protobuf.Int64Value clicks = 19;
+
+ // The estimated percent of times that your ad was eligible to show
+ // on the Display Network but didn't because your budget was too low.
+ // Note: Content budget lost impression share is reported in the range of 0
+ // to 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue content_budget_lost_impression_share = 20;
+
+ // The impressions you've received on the Display Network divided
+ // by the estimated number of impressions you were eligible to receive.
+ // Note: Content impression share is reported in the range of 0.1 to 1. Any
+ // value below 0.1 is reported as 0.0999.
+ google.protobuf.DoubleValue content_impression_share = 21;
+
+ // The last date/time a conversion tag for this conversion action successfully
+ // fired and was seen by Google Ads. This firing event may not have been the
+ // result of an attributable conversion (e.g. because the tag was fired from a
+ // browser that did not previously click an ad from an appropriate
+ // advertiser). The date/time is in the customer's time zone.
+ google.protobuf.StringValue conversion_last_received_request_date_time = 73;
+
+ // The date of the most recent conversion for this conversion action. The date
+ // is in the customer's time zone.
+ google.protobuf.StringValue conversion_last_conversion_date = 74;
+
+ // The estimated percentage of impressions on the Display Network
+ // that your ads didn't receive due to poor Ad Rank.
+ // Note: Content rank lost impression share is reported in the range of 0
+ // to 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue content_rank_lost_impression_share = 22;
+
+ // Conversions from interactions divided by the number of ad interactions
+ // (such as clicks for text ads or views for video ads). This only includes
+ // conversion actions which include_in_conversions_metric attribute is set to
+ // true.
+ google.protobuf.DoubleValue conversions_from_interactions_rate = 69;
+
+ // The total value of conversions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue conversions_value = 70;
+
+ // The value of conversions divided by the cost of ad interactions. This only
+ // includes conversion actions which include_in_conversions_metric attribute
+ // is set to true.
+ google.protobuf.DoubleValue conversions_value_per_cost = 71;
+
+ // The value of conversions from interactions divided by the number of ad
+ // interactions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue conversions_from_interactions_value_per_interaction = 72;
+
+ // The number of conversions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue conversions = 25;
+
+ // The sum of your cost-per-click (CPC) and cost-per-thousand impressions
+ // (CPM) costs during this period.
+ google.protobuf.Int64Value cost_micros = 26;
+
+ // The cost of ad interactions divided by all conversions.
+ google.protobuf.DoubleValue cost_per_all_conversions = 68;
+
+ // The cost of ad interactions divided by conversions. This only includes
+ // conversion actions which include_in_conversions_metric attribute is set to
+ // true.
+ google.protobuf.DoubleValue cost_per_conversion = 28;
+
+ // The cost of ad interactions divided by current model attributed
+ // conversions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue cost_per_current_model_attributed_conversion = 106;
+
+ // Conversions from when a customer clicks on a Google Ads ad on one device,
+ // then converts on a different device or browser.
+ // Cross-device conversions are already included in all_conversions.
+ google.protobuf.DoubleValue cross_device_conversions = 29;
+
+ // The number of clicks your ad receives (Clicks) divided by the number
+ // of times your ad is shown (Impressions).
+ google.protobuf.DoubleValue ctr = 30;
+
+ // Shows how your historic conversions data would look under the attribution
+ // model you've currently selected. This only includes conversion actions
+ // which include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue current_model_attributed_conversions = 101;
+
+ // Current model attributed conversions from interactions divided by the
+ // number of ad interactions (such as clicks for text ads or views for video
+ // ads). This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue current_model_attributed_conversions_from_interactions_rate = 102;
+
+ // The value of current model attributed conversions from interactions divided
+ // by the number of ad interactions. This only includes conversion actions
+ // which include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue current_model_attributed_conversions_from_interactions_value_per_interaction = 103;
+
+ // The total value of current model attributed conversions. This only includes
+ // conversion actions which include_in_conversions_metric attribute is set to
+ // true.
+ google.protobuf.DoubleValue current_model_attributed_conversions_value = 104;
+
+ // The value of current model attributed conversions divided by the cost of ad
+ // interactions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue current_model_attributed_conversions_value_per_cost = 105;
+
+ // How often people engage with your ad after it's shown to them. This is the
+ // number of ad expansions divided by the number of times your ad is shown.
+ google.protobuf.DoubleValue engagement_rate = 31;
+
+ // The number of engagements.
+ // An engagement occurs when a viewer expands your Lightbox ad. Also, in the
+ // future, other ad types may support engagement metrics.
+ google.protobuf.Int64Value engagements = 32;
+
+ // Average lead value of hotel.
+ google.protobuf.DoubleValue hotel_average_lead_value_micros = 75;
+
+ // The creative historical quality score.
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80;
+
+ // The quality of historical landing page experience.
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81;
+
+ // The historical quality score.
+ google.protobuf.Int64Value historical_quality_score = 82;
+
+ // The historical search predicted click through rate (CTR).
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83;
+
+ // The number of times the ad was forwarded to someone else as a message.
+ google.protobuf.Int64Value gmail_forwards = 85;
+
+ // The number of times someone has saved your Gmail ad to their inbox as a
+ // message.
+ google.protobuf.Int64Value gmail_saves = 86;
+
+ // The number of clicks to the landing page on the expanded state of Gmail
+ // ads.
+ google.protobuf.Int64Value gmail_secondary_clicks = 87;
+
+ // Number of unique cookies that were exposed to your ad over a given time
+ // period.
+ google.protobuf.Int64Value impression_reach = 36;
+
+ // Count of how often your ad has appeared on a search results page or
+ // website on the Google Network.
+ google.protobuf.Int64Value impressions = 37;
+
+ // How often people interact with your ad after it is shown to them.
+ // This is the number of interactions divided by the number of times your ad
+ // is shown.
+ google.protobuf.DoubleValue interaction_rate = 38;
+
+ // The number of interactions.
+ // An interaction is the main user action associated with an ad format-clicks
+ // for text and shopping ads, views for video ads, and so on.
+ google.protobuf.Int64Value interactions = 39;
+
+ // The types of payable and free interactions.
+ repeated google.ads.googleads.v1.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100;
+
+ // The percentage of clicks filtered out of your total number of clicks
+ // (filtered + non-filtered clicks) during the reporting period.
+ google.protobuf.DoubleValue invalid_click_rate = 40;
+
+ // Number of clicks Google considers illegitimate and doesn't charge you for.
+ google.protobuf.Int64Value invalid_clicks = 41;
+
+ // Percentage of first-time sessions (from people who had never visited your
+ // site before). Imported from Google Analytics.
+ google.protobuf.DoubleValue percent_new_visitors = 42;
+
+ // Number of offline phone calls.
+ google.protobuf.Int64Value phone_calls = 43;
+
+ // Number of offline phone impressions.
+ google.protobuf.Int64Value phone_impressions = 44;
+
+ // Number of phone calls received (phone_calls) divided by the number of
+ // times your phone number is shown (phone_impressions).
+ google.protobuf.DoubleValue phone_through_rate = 45;
+
+ // Your clickthrough rate (Ctr) divided by the average clickthrough rate of
+ // all advertisers on the websites that show your ads. Measures how your ads
+ // perform on Display Network sites compared to other ads on the same sites.
+ google.protobuf.DoubleValue relative_ctr = 46;
+
+ // The percentage of the customer's Shopping or Search ad impressions that are
+ // shown in the most prominent Shopping position. See
+ // <a href="https://support.google.com/adwords/answer/7501826">this Merchant
+ // Center article</a> for details. Any value below 0.1 is reported as 0.0999.
+ google.protobuf.DoubleValue search_absolute_top_impression_share = 78;
+
+ // The number estimating how often your ad wasn't the very first ad above the
+ // organic search results due to a low budget. Note: Search
+ // budget lost absolute top impression share is reported in the range of 0 to
+ // 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_budget_lost_absolute_top_impression_share = 88;
+
+ // The estimated percent of times that your ad was eligible to show on the
+ // Search Network but didn't because your budget was too low. Note: Search
+ // budget lost impression share is reported in the range of 0 to 0.9. Any
+ // value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_budget_lost_impression_share = 47;
+
+ // The number estimating how often your ad didn't show anywhere above the
+ // organic search results due to a low budget. Note: Search
+ // budget lost top impression share is reported in the range of 0 to 0.9. Any
+ // value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_budget_lost_top_impression_share = 89;
+
+ // The number of clicks you've received on the Search Network
+ // divided by the estimated number of clicks you were eligible to receive.
+ // Note: Search click share is reported in the range of 0.1 to 1. Any value
+ // below 0.1 is reported as 0.0999.
+ google.protobuf.DoubleValue search_click_share = 48;
+
+ // The impressions you've received divided by the estimated number of
+ // impressions you were eligible to receive on the Search Network for search
+ // terms that matched your keywords exactly (or were close variants of your
+ // keyword), regardless of your keyword match types. Note: Search exact match
+ // impression share is reported in the range of 0.1 to 1. Any value below 0.1
+ // is reported as 0.0999.
+ google.protobuf.DoubleValue search_exact_match_impression_share = 49;
+
+ // The impressions you've received on the Search Network divided
+ // by the estimated number of impressions you were eligible to receive.
+ // Note: Search impression share is reported in the range of 0.1 to 1. Any
+ // value below 0.1 is reported as 0.0999.
+ google.protobuf.DoubleValue search_impression_share = 50;
+
+ // The number estimating how often your ad wasn't the very first ad above the
+ // organic search results due to poor Ad Rank.
+ // Note: Search rank lost absolute top impression share is reported in the
+ // range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_rank_lost_absolute_top_impression_share = 90;
+
+ // The estimated percentage of impressions on the Search Network
+ // that your ads didn't receive due to poor Ad Rank.
+ // Note: Search rank lost impression share is reported in the range of 0 to
+ // 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_rank_lost_impression_share = 51;
+
+ // The number estimating how often your ad didn't show anywhere above the
+ // organic search results due to poor Ad Rank.
+ // Note: Search rank lost top impression share is reported in the range of 0
+ // to 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_rank_lost_top_impression_share = 91;
+
+ // The impressions you've received in the top location (anywhere above the
+ // organic search results) compared to the estimated number of impressions you
+ // were eligible to receive in the top location.
+ // Note: Search top impression share is reported in the range of 0.1 to 1. Any
+ // value below 0.1 is reported as 0.0999.
+ google.protobuf.DoubleValue search_top_impression_share = 92;
+
+ // The percent of your ad impressions that are shown anywhere above the
+ // organic search results.
+ google.protobuf.DoubleValue top_impression_percentage = 93;
+
+ // The value of all conversions divided by the number of all conversions.
+ google.protobuf.DoubleValue value_per_all_conversions = 52;
+
+ // The value of conversions divided by the number of conversions. This only
+ // includes conversion actions which include_in_conversions_metric attribute
+ // is set to true.
+ google.protobuf.DoubleValue value_per_conversion = 53;
+
+ // The value of current model attributed conversions divided by the number of
+ // the conversions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue value_per_current_model_attributed_conversion = 94;
+
+ // Percentage of impressions where the viewer watched all of your video.
+ google.protobuf.DoubleValue video_quartile_100_rate = 54;
+
+ // Percentage of impressions where the viewer watched 25% of your video.
+ google.protobuf.DoubleValue video_quartile_25_rate = 55;
+
+ // Percentage of impressions where the viewer watched 50% of your video.
+ google.protobuf.DoubleValue video_quartile_50_rate = 56;
+
+ // Percentage of impressions where the viewer watched 75% of your video.
+ google.protobuf.DoubleValue video_quartile_75_rate = 57;
+
+ // The number of views your TrueView video ad receives divided by its number
+ // of impressions, including thumbnail impressions for TrueView in-display
+ // ads.
+ google.protobuf.DoubleValue video_view_rate = 58;
+
+ // The number of times your video ads were viewed.
+ google.protobuf.Int64Value video_views = 59;
+
+ // The total number of view-through conversions.
+ // These happen when a customer sees an image or rich media ad, then later
+ // completes a conversion on your site without interacting with (e.g.,
+ // clicking on) another ad.
+ google.protobuf.Int64Value view_through_conversions = 60;
+}
diff --git a/google/ads/googleads/v1/common/policy.proto b/google/ads/googleads/v1/common/policy.proto
new file mode 100644
index 000000000..25efc9c42
--- /dev/null
+++ b/google/ads/googleads/v1/common/policy.proto
@@ -0,0 +1,217 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/policy_topic_entry_type.proto";
+import "google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing policy information.
+
+// Key of the violation. The key is used for referring to a violation
+// when filing an exemption request.
+message PolicyViolationKey {
+ // Unique ID of the violated policy.
+ google.protobuf.StringValue policy_name = 1;
+
+ // The text that violates the policy if specified.
+ // Otherwise, refers to the policy in general
+ // (e.g., when requesting to be exempt from the whole policy).
+ // If not specified for criterion exemptions, the whole policy is implied.
+ // Must be specified for ad exemptions.
+ google.protobuf.StringValue violating_text = 2;
+}
+
+// Parameter for controlling how policy exemption is done. Ignorable policy
+// topics are only usable with expanded text ads and responsive search ads. All
+// other ad types must use policy violation keys.
+message PolicyValidationParameter {
+ // The list of policy topics that should not cause a PolicyFindingError to
+ // be reported. This field is currently only compatible with Enhanced Text Ad.
+ // It corresponds to the PolicyTopicEntry.topic field.
+ //
+ // Resources violating these policies will be saved, but will not be eligible
+ // to serve. They may begin serving at a later time due to a change in
+ // policies, re-review of the resource, or a change in advertiser
+ // certificates.
+ repeated google.protobuf.StringValue ignorable_policy_topics = 1;
+
+ // The list of policy violation keys that should not cause a
+ // PolicyViolationError to be reported. Not all policy violations are
+ // exemptable, please refer to the is_exemptible field in the returned
+ // PolicyViolationError.
+ //
+ // Resources violating these polices will be saved, but will not be eligible
+ // to serve. They may begin serving at a later time due to a change in
+ // policies, re-review of the resource, or a change in advertiser
+ // certificates.
+ repeated PolicyViolationKey exempt_policy_violation_keys = 2;
+}
+
+// Policy finding attached to a resource (e.g. alcohol policy associated with
+// a site that sells alcohol).
+//
+// Each PolicyTopicEntry has a topic that indicates the specific ads policy
+// the entry is about and a type to indicate the effect that the entry will have
+// on serving. It may optionally have one or more evidences that indicate the
+// reason for the finding. It may also optionally have one or more constraints
+// that provide details about how serving may be restricted.
+//
+// Next tag: 5
+message PolicyTopicEntry {
+ // Policy topic this finding refers to. For example, "ALCOHOL",
+ // "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible
+ // policy topics is not fixed for a particular API version and may change
+ // at any time.
+ google.protobuf.StringValue topic = 1;
+
+ // Describes the negative or positive effect this policy will have on serving.
+ google.ads.googleads.v1.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2;
+
+ // Additional information that explains policy finding
+ // (e.g. the brand name for a trademark finding).
+ repeated PolicyTopicEvidence evidences = 3;
+
+ // Indicates how serving of this resource may be affected (e.g. not serving
+ // in a country).
+ repeated PolicyTopicConstraint constraints = 4;
+}
+
+// Additional information that explains a policy finding.
+//
+// Next Id: 8
+message PolicyTopicEvidence {
+ // A list of fragments of text that violated a policy.
+ //
+ // Next Id: 2
+ message TextList {
+ // The fragments of text from the resource that caused the policy finding.
+ repeated google.protobuf.StringValue texts = 1;
+ }
+
+ // A list of websites that caused a policy finding. Used for
+ // ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more
+ // than five websites, only the top five (those that appear in resources the
+ // most) will be listed here.
+ //
+ // Next Id: 2
+ message WebsiteList {
+ // Websites that caused the policy finding.
+ repeated google.protobuf.StringValue websites = 1;
+ }
+
+ // A list of strings found in a destination page that caused a policy
+ // finding.
+ //
+ // Next Id: 2
+ message DestinationTextList {
+ // List of text found in the resource's destination page.
+ repeated google.protobuf.StringValue destination_texts = 1;
+ }
+
+ // Evidence of mismatches between the URLs of a resource.
+ //
+ // Next Id: 2
+ message DestinationMismatch {
+ // The set of URLs that did not match each other.
+ repeated google.ads.googleads.v1.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1;
+ }
+
+ // Specific evidence information depending on the evidence type.
+ oneof value {
+ // HTTP code returned when the final URL was crawled.
+ google.protobuf.Int32Value http_code = 2;
+
+ // List of websites linked with this resource.
+ WebsiteList website_list = 3;
+
+ // List of evidence found in the text of a resource.
+ TextList text_list = 4;
+
+ // The language the resource was detected to be written in.
+ // This is an IETF language tag such as "en-US".
+ google.protobuf.StringValue language_code = 5;
+
+ // The text in the destination of the resource that is causing a policy
+ // finding.
+ DestinationTextList destination_text_list = 6;
+
+ // Mismatch between the destinations of a resource's URLs.
+ DestinationMismatch destination_mismatch = 7;
+ }
+}
+
+// Describes the effect on serving that a policy topic entry will have.
+//
+// Next Id: 5
+message PolicyTopicConstraint {
+ // A list of countries where a resource's serving is constrained.
+ //
+ // Next Id: 3
+ message CountryConstraintList {
+ // Total number of countries targeted by the resource.
+ google.protobuf.Int32Value total_targeted_countries = 1;
+
+ // Countries in which serving is restricted.
+ repeated CountryConstraint countries = 2;
+ }
+
+ // Indicates that a policy topic was constrained due to disapproval of the
+ // website for reseller purposes.
+ //
+ // Next Id: 1
+ message ResellerConstraint {
+
+ }
+
+ // Indicates that a resource's ability to serve in a particular country is
+ // constrained.
+ //
+ // Next Id: 2
+ message CountryConstraint {
+ // Geo target constant resource name of the country in which serving is
+ // constrained.
+ google.protobuf.StringValue country_criterion = 1;
+ }
+
+ // Specific information about the constraint.
+ oneof value {
+ // Countries where the resource cannot serve.
+ CountryConstraintList country_constraint_list = 1;
+
+ // Reseller constraint.
+ ResellerConstraint reseller_constraint = 2;
+
+ // Countries where a certificate is required for serving.
+ CountryConstraintList certificate_missing_in_country_list = 3;
+
+ // Countries where the resource's domain is not covered by the
+ // certificates associated with it.
+ CountryConstraintList certificate_domain_mismatch_in_country_list = 4;
+ }
+}
diff --git a/google/ads/googleads/v1/common/real_time_bidding_setting.proto b/google/ads/googleads/v1/common/real_time_bidding_setting.proto
new file mode 100644
index 000000000..9174d3ca0
--- /dev/null
+++ b/google/ads/googleads/v1/common/real_time_bidding_setting.proto
@@ -0,0 +1,39 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "RealTimeBiddingSettingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing RealTimeBiddingSetting
+
+// Settings for Real-Time Bidding, a feature only available for campaigns
+// targeting the Ad Exchange network.
+message RealTimeBiddingSetting {
+ // Whether the campaign is opted in to real-time bidding.
+ google.protobuf.BoolValue opt_in = 1;
+}
diff --git a/google/ads/googleads/v1/common/segments.proto b/google/ads/googleads/v1/common/segments.proto
new file mode 100644
index 000000000..efce89e8a
--- /dev/null
+++ b/google/ads/googleads/v1/common/segments.proto
@@ -0,0 +1,274 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/ad_network_type.proto";
+import "google/ads/googleads/v1/enums/click_type.proto";
+import "google/ads/googleads/v1/enums/conversion_action_category.proto";
+import "google/ads/googleads/v1/enums/conversion_attribution_event_type.proto";
+import "google/ads/googleads/v1/enums/conversion_lag_bucket.proto";
+import "google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto";
+import "google/ads/googleads/v1/enums/day_of_week.proto";
+import "google/ads/googleads/v1/enums/device.proto";
+import "google/ads/googleads/v1/enums/external_conversion_source.proto";
+import "google/ads/googleads/v1/enums/hotel_date_selection_type.proto";
+import "google/ads/googleads/v1/enums/month_of_year.proto";
+import "google/ads/googleads/v1/enums/placeholder_type.proto";
+import "google/ads/googleads/v1/enums/product_channel.proto";
+import "google/ads/googleads/v1/enums/product_channel_exclusivity.proto";
+import "google/ads/googleads/v1/enums/product_condition.proto";
+import "google/ads/googleads/v1/enums/search_term_match_type.proto";
+import "google/ads/googleads/v1/enums/slot.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "SegmentsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing segment only fields.
+
+// Segment only fields.
+message Segments {
+ // Ad network type.
+ google.ads.googleads.v1.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3;
+
+ // Click type.
+ google.ads.googleads.v1.enums.ClickTypeEnum.ClickType click_type = 26;
+
+ // Resource name of the conversion action.
+ google.protobuf.StringValue conversion_action = 52;
+
+ // Conversion action category.
+ google.ads.googleads.v1.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_category = 53;
+
+ // Conversion action name.
+ google.protobuf.StringValue conversion_action_name = 54;
+
+ // This segments your conversion columns by the original conversion and
+ // conversion value vs. the delta if conversions were adjusted. False row has
+ // the data as originally stated; While true row has the delta between data
+ // now and the data as originally stated. Summing the two together results
+ // post-adjustment data.
+ google.protobuf.BoolValue conversion_adjustment = 27;
+
+ // Conversion attribution event type.
+ google.ads.googleads.v1.enums.ConversionAttributionEventTypeEnum.ConversionAttributionEventType conversion_attribution_event_type = 2;
+
+ // An enum value representing the number of days between the impression and
+ // the conversion.
+ google.ads.googleads.v1.enums.ConversionLagBucketEnum.ConversionLagBucket conversion_lag_bucket = 50;
+
+ // An enum value representing the number of days between the impression and
+ // the conversion or between the impression and adjustments to the conversion.
+ google.ads.googleads.v1.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51;
+
+ // Date to which metrics apply.
+ // yyyy-MM-dd format, e.g., 2018-04-17.
+ google.protobuf.StringValue date = 4;
+
+ // Day of the week, e.g., MONDAY.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5;
+
+ // Device to which metrics apply.
+ google.ads.googleads.v1.enums.DeviceEnum.Device device = 1;
+
+ // External conversion source.
+ google.ads.googleads.v1.enums.ExternalConversionSourceEnum.ExternalConversionSource external_conversion_source = 55;
+
+ // Resource name of the geo target constant that represents an airport.
+ google.protobuf.StringValue geo_target_airport = 65;
+
+ // Resource name of the geo target constant that represents a city.
+ google.protobuf.StringValue geo_target_city = 62;
+
+ // Resource name of the geo target constant that represents a metro.
+ google.protobuf.StringValue geo_target_metro = 63;
+
+ // Resource name of the geo target constant that represents a region.
+ google.protobuf.StringValue geo_target_region = 64;
+
+ // Hotel booking window in days.
+ google.protobuf.Int64Value hotel_booking_window_days = 6;
+
+ // Hotel center ID.
+ google.protobuf.Int64Value hotel_center_id = 7;
+
+ // Hotel check-in date. Formatted as yyyy-MM-dd.
+ google.protobuf.StringValue hotel_check_in_date = 8;
+
+ // Hotel check-in day of week.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9;
+
+ // Hotel city.
+ google.protobuf.StringValue hotel_city = 10;
+
+ // Hotel class.
+ google.protobuf.Int32Value hotel_class = 11;
+
+ // Hotel country.
+ google.protobuf.StringValue hotel_country = 12;
+
+ // Hotel date selection type.
+ google.ads.googleads.v1.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType hotel_date_selection_type = 13;
+
+ // Hotel length of stay.
+ google.protobuf.Int32Value hotel_length_of_stay = 14;
+
+ // Hotel state.
+ google.protobuf.StringValue hotel_state = 15;
+
+ // Hour of day as a number between 0 and 23, inclusive.
+ google.protobuf.Int32Value hour = 16;
+
+ // Only used with feed item metrics.
+ // Indicates whether the interaction metrics occurred on the feed item itself
+ // or a different extension or ad unit.
+ google.protobuf.BoolValue interaction_on_this_extension = 49;
+
+ // Keyword criterion.
+ Keyword keyword = 61;
+
+ // Month as represented by the date of the first day of a month. Formatted as
+ // yyyy-MM-dd.
+ google.protobuf.StringValue month = 17;
+
+ // Month of the year, e.g., January.
+ google.ads.googleads.v1.enums.MonthOfYearEnum.MonthOfYear month_of_year = 18;
+
+ // Partner hotel ID.
+ google.protobuf.StringValue partner_hotel_id = 19;
+
+ // Placeholder type. This is only used with feed item metrics.
+ google.ads.googleads.v1.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 20;
+
+ // Aggregator ID of the product.
+ google.protobuf.UInt64Value product_aggregator_id = 28;
+
+ // Bidding category (level 1) of the product.
+ google.protobuf.StringValue product_bidding_category_level1 = 56;
+
+ // Bidding category (level 2) of the product.
+ google.protobuf.StringValue product_bidding_category_level2 = 57;
+
+ // Bidding category (level 3) of the product.
+ google.protobuf.StringValue product_bidding_category_level3 = 58;
+
+ // Bidding category (level 4) of the product.
+ google.protobuf.StringValue product_bidding_category_level4 = 59;
+
+ // Bidding category (level 5) of the product.
+ google.protobuf.StringValue product_bidding_category_level5 = 60;
+
+ // Brand of the product.
+ google.protobuf.StringValue product_brand = 29;
+
+ // Channel of the product.
+ google.ads.googleads.v1.enums.ProductChannelEnum.ProductChannel product_channel = 30;
+
+ // Channel exclusivity of the product.
+ google.ads.googleads.v1.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity product_channel_exclusivity = 31;
+
+ // Condition of the product.
+ google.ads.googleads.v1.enums.ProductConditionEnum.ProductCondition product_condition = 32;
+
+ // Resource name of the geo target constant for the country of sale of the
+ // product.
+ google.protobuf.StringValue product_country = 33;
+
+ // Custom attribute 0 of the product.
+ google.protobuf.StringValue product_custom_attribute0 = 34;
+
+ // Custom attribute 1 of the product.
+ google.protobuf.StringValue product_custom_attribute1 = 35;
+
+ // Custom attribute 2 of the product.
+ google.protobuf.StringValue product_custom_attribute2 = 36;
+
+ // Custom attribute 3 of the product.
+ google.protobuf.StringValue product_custom_attribute3 = 37;
+
+ // Custom attribute 4 of the product.
+ google.protobuf.StringValue product_custom_attribute4 = 38;
+
+ // Item ID of the product.
+ google.protobuf.StringValue product_item_id = 39;
+
+ // Resource name of the language constant for the language of the product.
+ google.protobuf.StringValue product_language = 40;
+
+ // Merchant ID of the product.
+ google.protobuf.UInt64Value product_merchant_id = 41;
+
+ // Store ID of the product.
+ google.protobuf.StringValue product_store_id = 42;
+
+ // Title of the product.
+ google.protobuf.StringValue product_title = 43;
+
+ // Type (level 1) of the product.
+ google.protobuf.StringValue product_type_l1 = 44;
+
+ // Type (level 2) of the product.
+ google.protobuf.StringValue product_type_l2 = 45;
+
+ // Type (level 3) of the product.
+ google.protobuf.StringValue product_type_l3 = 46;
+
+ // Type (level 4) of the product.
+ google.protobuf.StringValue product_type_l4 = 47;
+
+ // Type (level 5) of the product.
+ google.protobuf.StringValue product_type_l5 = 48;
+
+ // Quarter as represented by the date of the first day of a quarter.
+ // Uses the calendar year for quarters, e.g., the second quarter of 2018
+ // starts on 2018-04-01. Formatted as yyyy-MM-dd.
+ google.protobuf.StringValue quarter = 21;
+
+ // Match type of the keyword that triggered the ad, including variants.
+ google.ads.googleads.v1.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22;
+
+ // Position of the ad.
+ google.ads.googleads.v1.enums.SlotEnum.Slot slot = 23;
+
+ // Resource name of the ad group criterion that represents webpage criterion.
+ google.protobuf.StringValue webpage = 66;
+
+ // Week as defined as Monday through Sunday, and represented by the date of
+ // Monday. Formatted as yyyy-MM-dd.
+ google.protobuf.StringValue week = 24;
+
+ // Year, formatted as yyyy.
+ google.protobuf.Int32Value year = 25;
+}
+
+// A Keyword criterion segment.
+message Keyword {
+ // The AdGroupCriterion resource name.
+ google.protobuf.StringValue ad_group_criterion = 1;
+
+ // Keyword info.
+ KeywordInfo info = 2;
+}
diff --git a/google/ads/googleads/v1/common/tag_snippet.proto b/google/ads/googleads/v1/common/tag_snippet.proto
new file mode 100644
index 000000000..329157870
--- /dev/null
+++ b/google/ads/googleads/v1/common/tag_snippet.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/tracking_code_page_format.proto";
+import "google/ads/googleads/v1/enums/tracking_code_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "TagSnippetProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing TagSnippet
+
+// The site tag and event snippet pair for a TrackingCodeType.
+message TagSnippet {
+ // The type of the generated tag snippets for tracking conversions.
+ google.ads.googleads.v1.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1;
+
+ // The format of the web page where the tracking tag and snippet will be
+ // installed, e.g. HTML.
+ google.ads.googleads.v1.enums.TrackingCodePageFormatEnum.TrackingCodePageFormat page_format = 2;
+
+ // The site tag that adds visitors to your basic remarketing lists and sets
+ // new cookies on your domain.
+ google.protobuf.StringValue global_site_tag = 3;
+
+ // The event snippet that works with the site tag to track actions that
+ // should be counted as conversions.
+ google.protobuf.StringValue event_snippet = 4;
+}
diff --git a/google/ads/googleads/v1/common/targeting_setting.proto b/google/ads/googleads/v1/common/targeting_setting.proto
new file mode 100644
index 000000000..6ecf914bd
--- /dev/null
+++ b/google/ads/googleads/v1/common/targeting_setting.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/targeting_dimension.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "TargetingSettingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing TargetingSetting
+
+// Settings for the
+// <a href="https://support.google.com/google-ads/answer/7365594">
+// targeting related features</a>, at Campaign and AdGroup level.
+message TargetingSetting {
+ // The per-targeting-dimension setting to restrict the reach of your campaign
+ // or ad group.
+ repeated TargetRestriction target_restrictions = 1;
+}
+
+// The list of per-targeting-dimension targeting settings.
+message TargetRestriction {
+ // The targeting dimension that these settings apply to.
+ google.ads.googleads.v1.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1;
+
+ // Indicates whether to restrict your ads to show only for the criteria you
+ // have selected for this targeting_dimension, or to target all values for
+ // this targeting_dimension and show ads based on your targeting in other
+ // TargetingDimensions. A value of 'true' means that these criteria will only
+ // apply bid modifiers, and not affect targeting. A value of 'false' means
+ // that these criteria will restrict targeting as well as applying bid
+ // modifiers.
+ google.protobuf.BoolValue bid_only = 2;
+}
diff --git a/google/ads/googleads/v1/common/text_label.proto b/google/ads/googleads/v1/common/text_label.proto
new file mode 100644
index 000000000..6eb3e64f0
--- /dev/null
+++ b/google/ads/googleads/v1/common/text_label.proto
@@ -0,0 +1,42 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "TextLabelProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// A type of label displaying text on a colored background.
+message TextLabel {
+ // Background color of the label in RGB format. This string must match the
+ // regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'.
+ // Note: The background color may not be visible for manager accounts.
+ google.protobuf.StringValue background_color = 1;
+
+ // A short description of the label. The length must be no more than 200
+ // characters.
+ google.protobuf.StringValue description = 2;
+}
diff --git a/google/ads/googleads/v1/common/url_collection.proto b/google/ads/googleads/v1/common/url_collection.proto
new file mode 100644
index 000000000..77904bbaf
--- /dev/null
+++ b/google/ads/googleads/v1/common/url_collection.proto
@@ -0,0 +1,47 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "UrlCollectionProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file UrlCollection type.
+
+// Collection of urls that is tagged with a unique identifier.
+message UrlCollection {
+ // Unique identifier for this UrlCollection instance.
+ google.protobuf.StringValue url_collection_id = 1;
+
+ // A list of possible final URLs.
+ repeated google.protobuf.StringValue final_urls = 2;
+
+ // A list of possible final mobile URLs.
+ repeated google.protobuf.StringValue final_mobile_urls = 3;
+
+ // URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 4;
+}
diff --git a/google/ads/googleads/v1/common/user_lists.proto b/google/ads/googleads/v1/common/user_lists.proto
new file mode 100644
index 000000000..f3dc0fa05
--- /dev/null
+++ b/google/ads/googleads/v1/common/user_lists.proto
@@ -0,0 +1,293 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/customer_match_upload_key_type.proto";
+import "google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto";
+import "google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_prepopulation_status.proto";
+import "google/ads/googleads/v1/enums/user_list_rule_type.proto";
+import "google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "UserListsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing user list types.
+
+// SimilarUserList is a list of users which are similar to users from another
+// UserList. These lists are read-only and automatically created by Google.
+message SimilarUserListInfo {
+ // Seed UserList from which this list is derived.
+ google.protobuf.StringValue seed_user_list = 1;
+}
+
+// UserList of CRM users provided by the advertiser.
+message CrmBasedUserListInfo {
+ // A string that uniquely identifies a mobile application from which the data
+ // was collected to the Google Ads API.
+ // For iOS, the ID string 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, the ID string 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).
+ // Required when creating CrmBasedUserList for uploading mobile advertising
+ // IDs.
+ google.protobuf.StringValue app_id = 1;
+
+ // Matching key type of the list.
+ // Mixed data types are not allowed on the same list.
+ // This field is required for an ADD operation.
+ google.ads.googleads.v1.enums.CustomerMatchUploadKeyTypeEnum.CustomerMatchUploadKeyType upload_key_type = 2;
+
+ // Data source of the list. Default value is FIRST_PARTY.
+ // Only whitelisted customers can create third-party sourced CRM lists.
+ google.ads.googleads.v1.enums.UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType data_source_type = 3;
+}
+
+// A client defined rule based on custom parameters sent by web sites or
+// uploaded by the advertiser.
+message UserListRuleInfo {
+ // Rule type is used to determine how to group rule items.
+ //
+ // The default is OR of ANDs (disjunctive normal form).
+ // That is, rule items will be ANDed together within rule item groups and the
+ // groups themselves will be ORed together.
+ //
+ // Currently AND of ORs (conjunctive normal form) is only supported for
+ // ExpressionRuleUserList.
+ google.ads.googleads.v1.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1;
+
+ // List of rule item groups that defines this rule.
+ // Rule item groups are grouped together based on rule_type.
+ repeated UserListRuleItemGroupInfo rule_item_groups = 2;
+}
+
+// A group of rule items.
+message UserListRuleItemGroupInfo {
+ // Rule items that will be grouped together based on rule_type.
+ repeated UserListRuleItemInfo rule_items = 1;
+}
+
+// An atomic rule fragment.
+message UserListRuleItemInfo {
+ // Rule variable name. It should match the corresponding key name fired
+ // by the pixel.
+ // A name must begin with US-ascii letters or underscore or UTF8 code that is
+ // greater than 127 and consist of US-ascii letters or digits or underscore or
+ // UTF8 code that is greater than 127.
+ // For websites, there are two built-in variable URL (name = 'url__') and
+ // referrer URL (name = 'ref_url__').
+ // This field must be populated when creating a new rule item.
+ google.protobuf.StringValue name = 1;
+
+ // An atomic rule fragment.
+ oneof rule_item {
+ // An atomic rule fragment composed of a number operation.
+ UserListNumberRuleItemInfo number_rule_item = 2;
+
+ // An atomic rule fragment composed of a string operation.
+ UserListStringRuleItemInfo string_rule_item = 3;
+
+ // An atomic rule fragment composed of a date operation.
+ UserListDateRuleItemInfo date_rule_item = 4;
+ }
+}
+
+// A rule item composed of date operation.
+message UserListDateRuleItemInfo {
+ // Date comparison operator.
+ // This field is required and must be populated when creating new date
+ // rule item.
+ google.ads.googleads.v1.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1;
+
+ // String representing date value to be compared with the rule variable.
+ // Supported date format is YYYY-MM-DD.
+ // Times are reported in the customer's time zone.
+ google.protobuf.StringValue value = 2;
+
+ // The relative date value of the right hand side denoted by number of days
+ // offset from now. The value field will override this field when both are
+ // present.
+ google.protobuf.Int64Value offset_in_days = 3;
+}
+
+// A rule item composed of number operation.
+message UserListNumberRuleItemInfo {
+ // Number comparison operator.
+ // This field is required and must be populated when creating a new number
+ // rule item.
+ google.ads.googleads.v1.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1;
+
+ // Number value to be compared with the variable.
+ // This field is required and must be populated when creating a new number
+ // rule item.
+ google.protobuf.DoubleValue value = 2;
+}
+
+// A rule item fragment composed of date operation.
+message UserListStringRuleItemInfo {
+ // String comparison operator.
+ // This field is required and must be populated when creating a new string
+ // rule item.
+ google.ads.googleads.v1.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1;
+
+ // The right hand side of the string rule item. For URLs or referrer URLs,
+ // the value can not contain illegal URL chars such as newlines, quotes,
+ // tabs, or parentheses. This field is required and must be populated when
+ // creating a new string rule item.
+ google.protobuf.StringValue value = 2;
+}
+
+// User lists defined by combining two rules, left operand and right operand.
+// There are two operators: AND where left operand and right operand have to be
+// true; AND_NOT where left operand is true but right operand is false.
+message CombinedRuleUserListInfo {
+ // Left operand of the combined rule.
+ // This field is required and must be populated when creating new combined
+ // rule based user list.
+ UserListRuleInfo left_operand = 1;
+
+ // Right operand of the combined rule.
+ // This field is required and must be populated when creating new combined
+ // rule based user list.
+ UserListRuleInfo right_operand = 2;
+
+ // Operator to connect the two operands.
+ //
+ // Required for creating a combined rule user list.
+ google.ads.googleads.v1.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3;
+}
+
+// Visitors of a page during specific dates.
+message DateSpecificRuleUserListInfo {
+ // Boolean rule that defines visitor of a page.
+ //
+ // Required for creating a date specific rule user list.
+ UserListRuleInfo rule = 1;
+
+ // Start date of users visit. If set to 2000-01-01, then the list includes all
+ // users before end_date. The date's format should be YYYY-MM-DD.
+ //
+ // Required for creating a data specific rule user list.
+ google.protobuf.StringValue start_date = 2;
+
+ // End date of users visit. If set to 2037-12-30, then the list includes all
+ // users after start_date. The date's format should be YYYY-MM-DD.
+ //
+ // Required for creating a data specific rule user list.
+ google.protobuf.StringValue end_date = 3;
+}
+
+// Visitors of a page. The page visit is defined by one boolean rule expression.
+message ExpressionRuleUserListInfo {
+ // Boolean rule that defines this user list. The rule consists of a list of
+ // rule item groups and each rule item group consists of a list of rule items.
+ // All the rule item groups are ORed or ANDed together for evaluation based on
+ // rule.rule_type.
+ //
+ // Required for creating an expression rule user list.
+ UserListRuleInfo rule = 1;
+}
+
+// Representation of a userlist that is generated by a rule.
+message RuleBasedUserListInfo {
+ // The status of pre-population. The field is default to NONE if not set which
+ // means the previous users will not be considered. If set to REQUESTED, past
+ // site visitors or app users who match the list definition will be included
+ // in the list (works on the Display Network only). This will only
+ // add past users from within the last 30 days, depending on the
+ // list's membership duration and the date when the remarketing tag is added.
+ // The status will be updated to FINISHED once request is processed, or FAILED
+ // if the request fails.
+ google.ads.googleads.v1.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus prepopulation_status = 1;
+
+ // Subtypes of rule based user lists.
+ oneof rule_based_user_list {
+ // User lists defined by combining two rules.
+ // There are two operators: AND, where the left and right operands have to
+ // be true; AND_NOT where left operand is true but right operand is false.
+ CombinedRuleUserListInfo combined_rule_user_list = 2;
+
+ // Visitors of a page during specific dates. The visiting periods are
+ // defined as follows:
+ // Between start_date (inclusive) and end_date (inclusive);
+ // Before end_date (exclusive) with start_date = 2000-01-01;
+ // After start_date (exclusive) with end_date = 2037-12-30.
+ DateSpecificRuleUserListInfo date_specific_rule_user_list = 3;
+
+ // Visitors of a page. The page visit is defined by one boolean rule
+ // expression.
+ ExpressionRuleUserListInfo expression_rule_user_list = 4;
+ }
+}
+
+// Represents a user list that is a custom combination of user lists.
+message LogicalUserListInfo {
+ // Logical list rules that define this user list. The rules are defined as a
+ // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are
+ // ANDed when they are evaluated.
+ //
+ // Required for creating a logical user list.
+ repeated UserListLogicalRuleInfo rules = 1;
+}
+
+// A user list logical rule. A rule has a logical operator (and/or/not) and a
+// list of user lists as operands.
+message UserListLogicalRuleInfo {
+ // The logical operator of the rule.
+ google.ads.googleads.v1.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator operator = 1;
+
+ // The list of operands of the rule.
+ repeated LogicalUserListOperandInfo rule_operands = 2;
+}
+
+// Operand of logical user list that consists of a user list.
+message LogicalUserListOperandInfo {
+ // Resource name of a user list as an operand.
+ google.protobuf.StringValue user_list = 1;
+}
+
+// User list targeting as a collection of conversions or remarketing actions.
+message BasicUserListInfo {
+ // Actions associated with this user list.
+ repeated UserListActionInfo actions = 1;
+}
+
+// Represents an action type used for building remarketing user lists.
+message UserListActionInfo {
+ // Subtypes of user list action.
+ oneof user_list_action {
+ // A conversion action that's not generated from remarketing.
+ google.protobuf.StringValue conversion_action = 1;
+
+ // A remarketing action.
+ google.protobuf.StringValue remarketing_action = 2;
+ }
+}
diff --git a/google/ads/googleads/v1/common/value.proto b/google/ads/googleads/v1/common/value.proto
new file mode 100644
index 000000000..b37dfb15c
--- /dev/null
+++ b/google/ads/googleads/v1/common/value.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.common;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ValueProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing value types
+
+// A generic data container.
+message Value {
+ // A value.
+ oneof value {
+ // A boolean.
+ bool boolean_value = 1;
+
+ // An int64.
+ int64 int64_value = 2;
+
+ // A float.
+ float float_value = 3;
+
+ // A double.
+ double double_value = 4;
+
+ // A string.
+ string string_value = 5;
+ }
+}
diff --git a/google/ads/googleads/v1/enums/access_reason.proto b/google/ads/googleads/v1/enums/access_reason.proto
new file mode 100644
index 000000000..05e2975f5
--- /dev/null
+++ b/google/ads/googleads/v1/enums/access_reason.proto
@@ -0,0 +1,58 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AccessReasonProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Indicates the way the resource such as user list is related to a user.
+message AccessReasonEnum {
+ // Enum describing possible access reasons.
+ enum AccessReason {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The resource is owned by the user.
+ OWNED = 2;
+
+ // The resource is shared to the user.
+ SHARED = 3;
+
+ // The resource is licensed to the user.
+ LICENSED = 4;
+
+ // The user subscribed to the resource.
+ SUBSCRIBED = 5;
+
+ // The resource is accessible to the user.
+ AFFILIATED = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/account_budget_proposal_status.proto b/google/ads/googleads/v1/enums/account_budget_proposal_status.proto
new file mode 100644
index 000000000..3550d4282
--- /dev/null
+++ b/google/ads/googleads/v1/enums/account_budget_proposal_status.proto
@@ -0,0 +1,64 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetProposalStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing AccountBudgetProposal statuses.
+
+// Message describing AccountBudgetProposal statuses.
+message AccountBudgetProposalStatusEnum {
+ // The possible statuses of an AccountBudgetProposal.
+ enum AccountBudgetProposalStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The proposal is pending approval.
+ PENDING = 2;
+
+ // The proposal has been approved but the corresponding billing setup
+ // has not. This can occur for proposals that set up the first budget
+ // when signing up for billing or when performing a change of bill-to
+ // operation.
+ APPROVED_HELD = 3;
+
+ // The proposal has been approved.
+ APPROVED = 4;
+
+ // The proposal has been cancelled by the user.
+ CANCELLED = 5;
+
+ // The proposal has been rejected by the user, e.g. by rejecting an
+ // acceptance email.
+ REJECTED = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/account_budget_proposal_type.proto b/google/ads/googleads/v1/enums/account_budget_proposal_type.proto
new file mode 100644
index 000000000..71fe9e669
--- /dev/null
+++ b/google/ads/googleads/v1/enums/account_budget_proposal_type.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetProposalTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing AccountBudgetProposal types.
+
+// Message describing AccountBudgetProposal types.
+message AccountBudgetProposalTypeEnum {
+ // The possible types of an AccountBudgetProposal.
+ enum AccountBudgetProposalType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Identifies a request to create a new budget.
+ CREATE = 2;
+
+ // Identifies a request to edit an existing budget.
+ UPDATE = 3;
+
+ // Identifies a request to end a budget that has already started.
+ END = 4;
+
+ // Identifies a request to remove a budget that hasn't started yet.
+ REMOVE = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/account_budget_status.proto b/google/ads/googleads/v1/enums/account_budget_status.proto
new file mode 100644
index 000000000..cdb4f4b05
--- /dev/null
+++ b/google/ads/googleads/v1/enums/account_budget_status.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing AccountBudget statuses.
+
+// Message describing AccountBudget statuses.
+message AccountBudgetStatusEnum {
+ // The possible statuses of an AccountBudget.
+ enum AccountBudgetStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The account budget is pending approval.
+ PENDING = 2;
+
+ // The account budget has been approved.
+ APPROVED = 3;
+
+ // The account budget has been cancelled by the user.
+ CANCELLED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto b/google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto
new file mode 100644
index 000000000..460be7af0
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdCustomizerPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Ad Customizer placeholder fields.
+
+// Values for Ad Customizer placeholder fields.
+message AdCustomizerPlaceholderFieldEnum {
+ // Possible values for Ad Customizers placeholder fields.
+ enum AdCustomizerPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: INT64. Integer value to be inserted.
+ INTEGER = 2;
+
+ // Data Type: STRING. Price value to be inserted.
+ PRICE = 3;
+
+ // Data Type: DATE_TIME. Date value to be inserted.
+ DATE = 4;
+
+ // Data Type: STRING. String value to be inserted.
+ STRING = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto b/google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto
new file mode 100644
index 000000000..8ae8534d9
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAdRotationModeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing ad group ad rotation mode.
+
+// Container for enum describing possible ad rotation modes of ads within an
+// ad group.
+message AdGroupAdRotationModeEnum {
+ // The possible ad rotation modes of an ad group.
+ enum AdGroupAdRotationMode {
+ // The ad rotation mode has not been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // Optimize ad group ads based on clicks or conversions.
+ OPTIMIZE = 2;
+
+ // Rotate evenly forever.
+ ROTATE_FOREVER = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_group_ad_status.proto b/google/ads/googleads/v1/enums/ad_group_ad_status.proto
new file mode 100644
index 000000000..4a43997a6
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_group_ad_status.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAdStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing ad group status.
+
+// Container for enum describing possible statuses of an AdGroupAd.
+message AdGroupAdStatusEnum {
+ // The possible statuses of an AdGroupAd.
+ enum AdGroupAdStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The ad group ad is enabled.
+ ENABLED = 2;
+
+ // The ad group ad is paused.
+ PAUSED = 3;
+
+ // The ad group ad is removed.
+ REMOVED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto b/google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto
new file mode 100644
index 000000000..e1d07da94
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupCriterionApprovalStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing approval status for the criterion.
+
+// Container for enum describing possible AdGroupCriterion approval statuses.
+message AdGroupCriterionApprovalStatusEnum {
+ // Enumerates AdGroupCriterion approval statuses.
+ enum AdGroupCriterionApprovalStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Approved.
+ APPROVED = 2;
+
+ // Disapproved.
+ DISAPPROVED = 3;
+
+ // Pending Review.
+ PENDING_REVIEW = 4;
+
+ // Under review.
+ UNDER_REVIEW = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_group_criterion_status.proto b/google/ads/googleads/v1/enums/ad_group_criterion_status.proto
new file mode 100644
index 000000000..ba0c1522d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_group_criterion_status.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupCriterionStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing AdGroupCriterion statuses.
+
+// Message describing AdGroupCriterion statuses.
+message AdGroupCriterionStatusEnum {
+ // The possible statuses of an AdGroupCriterion.
+ enum AdGroupCriterionStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The ad group criterion is enabled.
+ ENABLED = 2;
+
+ // The ad group criterion is paused.
+ PAUSED = 3;
+
+ // The ad group criterion is removed.
+ REMOVED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_group_status.proto b/google/ads/googleads/v1/enums/ad_group_status.proto
new file mode 100644
index 000000000..bb08c0a27
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_group_status.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing ad group status.
+
+// Container for enum describing possible statuses of an ad group.
+message AdGroupStatusEnum {
+ // The possible statuses of an ad group.
+ enum AdGroupStatus {
+ // The status has not been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The ad group is enabled.
+ ENABLED = 2;
+
+ // The ad group is paused.
+ PAUSED = 3;
+
+ // The ad group is removed.
+ REMOVED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_group_type.proto b/google/ads/googleads/v1/enums/ad_group_type.proto
new file mode 100644
index 000000000..8f9a571d4
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_group_type.proto
@@ -0,0 +1,82 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing ad group types.
+
+// Defines types of an ad group, specific to a particular campaign channel
+// type. This type drives validations that restrict which entities can be
+// added to the ad group.
+message AdGroupTypeEnum {
+ // Enum listing the possible types of an ad group.
+ enum AdGroupType {
+ // The type has not been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The default ad group type for Search campaigns.
+ SEARCH_STANDARD = 2;
+
+ // The default ad group type for Display campaigns.
+ DISPLAY_STANDARD = 3;
+
+ // The ad group type for Shopping campaigns serving standard product ads.
+ SHOPPING_PRODUCT_ADS = 4;
+
+ // The default ad group type for Hotel campaigns.
+ HOTEL_ADS = 6;
+
+ // The type for ad groups in Smart Shopping campaigns.
+ SHOPPING_SMART_ADS = 7;
+
+ // Short unskippable in-stream video ads.
+ VIDEO_BUMPER = 8;
+
+ // TrueView (skippable) in-stream video ads.
+ VIDEO_TRUE_VIEW_IN_STREAM = 9;
+
+ // TrueView in-display video ads.
+ VIDEO_TRUE_VIEW_IN_DISPLAY = 10;
+
+ // Unskippable in-stream video ads.
+ VIDEO_NON_SKIPPABLE_IN_STREAM = 11;
+
+ // Outstream video ads.
+ VIDEO_OUTSTREAM = 12;
+
+ // Ad group type for Dynamic Search Ads ad groups.
+ SEARCH_DYNAMIC_ADS = 13;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_network_type.proto b/google/ads/googleads/v1/enums/ad_network_type.proto
new file mode 100644
index 000000000..d0d3bdf02
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_network_type.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdNetworkTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing ad network types.
+
+// Container for enumeration of Google Ads network types.
+message AdNetworkTypeEnum {
+ // Enumerates Google Ads network types.
+ enum AdNetworkType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Google search.
+ SEARCH = 2;
+
+ // Search partners.
+ SEARCH_PARTNERS = 3;
+
+ // Display Network.
+ CONTENT = 4;
+
+ // YouTube Search.
+ YOUTUBE_SEARCH = 5;
+
+ // YouTube Videos
+ YOUTUBE_WATCH = 6;
+
+ // Cross-network.
+ MIXED = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_serving_optimization_status.proto b/google/ads/googleads/v1/enums/ad_serving_optimization_status.proto
new file mode 100644
index 000000000..e8a75efb8
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_serving_optimization_status.proto
@@ -0,0 +1,65 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdServingOptimizationStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing ad serving statuses.
+
+// Possible ad serving statuses of a campaign.
+message AdServingOptimizationStatusEnum {
+ // Enum describing possible serving statuses.
+ enum AdServingOptimizationStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // Ad serving is optimized based on CTR for the campaign.
+ OPTIMIZE = 2;
+
+ // Ad serving is optimized based on CTR * Conversion for the campaign. If
+ // the campaign is not in the conversion optimizer bidding strategy, it will
+ // default to OPTIMIZED.
+ CONVERSION_OPTIMIZE = 3;
+
+ // Ads are rotated evenly for 90 days, then optimized for clicks.
+ ROTATE = 4;
+
+ // Show lower performing ads more evenly with higher performing ads, and do
+ // not optimize.
+ ROTATE_INDEFINITELY = 5;
+
+ // Ad serving optimization status is not available.
+ UNAVAILABLE = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_strength.proto b/google/ads/googleads/v1/enums/ad_strength.proto
new file mode 100644
index 000000000..adc0a0d15
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_strength.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdStrengthProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing ad strengths.
+
+// Container for enum describing possible ad strengths.
+message AdStrengthEnum {
+ // Enum listing the possible ad strengths.
+ enum AdStrength {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The ad strength is currently pending.
+ PENDING = 2;
+
+ // No ads could be generated.
+ NO_ADS = 3;
+
+ // Poor strength.
+ POOR = 4;
+
+ // Average strength.
+ AVERAGE = 5;
+
+ // Good strength.
+ GOOD = 6;
+
+ // Excellent strength.
+ EXCELLENT = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/ad_type.proto b/google/ads/googleads/v1/enums/ad_type.proto
new file mode 100644
index 000000000..6e96bb33f
--- /dev/null
+++ b/google/ads/googleads/v1/enums/ad_type.proto
@@ -0,0 +1,92 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the ad type.
+
+// Container for enum describing possible types of an ad.
+message AdTypeEnum {
+ // The possible types of an ad.
+ enum AdType {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The ad is a text ad.
+ TEXT_AD = 2;
+
+ // The ad is an expanded text ad.
+ EXPANDED_TEXT_AD = 3;
+
+ // The ad is a call only ad.
+ CALL_ONLY_AD = 6;
+
+ // The ad is an expanded dynamic search ad.
+ EXPANDED_DYNAMIC_SEARCH_AD = 7;
+
+ // The ad is a hotel ad.
+ HOTEL_AD = 8;
+
+ // The ad is a Smart Shopping ad.
+ SHOPPING_SMART_AD = 9;
+
+ // The ad is a standard Shopping ad.
+ SHOPPING_PRODUCT_AD = 10;
+
+ // The ad is a video ad.
+ VIDEO_AD = 12;
+
+ // This ad is a Gmail ad.
+ GMAIL_AD = 13;
+
+ // This ad is an Image ad.
+ IMAGE_AD = 14;
+
+ // The ad is a responsive search ad.
+ RESPONSIVE_SEARCH_AD = 15;
+
+ // The ad is a legacy responsive display ad.
+ LEGACY_RESPONSIVE_DISPLAY_AD = 16;
+
+ // The ad is an app ad.
+ APP_AD = 17;
+
+ // The ad is a legacy app install ad.
+ LEGACY_APP_INSTALL_AD = 18;
+
+ // The ad is a responsive display ad.
+ RESPONSIVE_DISPLAY_AD = 19;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/advertising_channel_sub_type.proto b/google/ads/googleads/v1/enums/advertising_channel_sub_type.proto
new file mode 100644
index 000000000..be918f316
--- /dev/null
+++ b/google/ads/googleads/v1/enums/advertising_channel_sub_type.proto
@@ -0,0 +1,78 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdvertisingChannelSubTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing advertising channel subtypes.
+
+// An immutable specialization of an Advertising Channel.
+message AdvertisingChannelSubTypeEnum {
+ // Enum describing the different channel subtypes.
+ enum AdvertisingChannelSubType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used as a return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Mobile app campaigns for Search.
+ SEARCH_MOBILE_APP = 2;
+
+ // Mobile app campaigns for Display.
+ DISPLAY_MOBILE_APP = 3;
+
+ // AdWords express campaigns for search.
+ SEARCH_EXPRESS = 4;
+
+ // AdWords Express campaigns for display.
+ DISPLAY_EXPRESS = 5;
+
+ // Smart Shopping campaigns.
+ SHOPPING_SMART_ADS = 6;
+
+ // Gmail Ad campaigns.
+ DISPLAY_GMAIL_AD = 7;
+
+ // Smart display campaigns.
+ DISPLAY_SMART_CAMPAIGN = 8;
+
+ // Video Outstream campaigns.
+ VIDEO_OUTSTREAM = 9;
+
+ // Video TrueView for Action campaigns.
+ VIDEO_ACTION = 10;
+
+ // Video campaigns with non-skippable video ads.
+ VIDEO_NON_SKIPPABLE = 11;
+
+ // Universal App Campaign.
+ APP_CAMPAIGN = 12;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/advertising_channel_type.proto b/google/ads/googleads/v1/enums/advertising_channel_type.proto
new file mode 100644
index 000000000..064973fb6
--- /dev/null
+++ b/google/ads/googleads/v1/enums/advertising_channel_type.proto
@@ -0,0 +1,65 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AdvertisingChannelTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing advertising channel types
+
+// The channel type a campaign may target to serve on.
+message AdvertisingChannelTypeEnum {
+ // Enum describing the various advertising channel types.
+ enum AdvertisingChannelType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Search Network. Includes display bundled, and Search+ campaigns.
+ SEARCH = 2;
+
+ // Google Display Network only.
+ DISPLAY = 3;
+
+ // Shopping campaigns serve on the shopping property
+ // and on google.com search results.
+ SHOPPING = 4;
+
+ // Hotel Ads campaigns.
+ HOTEL = 5;
+
+ // Video campaigns.
+ VIDEO = 6;
+
+ // Universal App Campaigns, including universal app install and universal
+ // app reengagement campaigns, that run across multiple channels.
+ MULTI_CHANNEL = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto b/google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto
new file mode 100644
index 000000000..90e5fdd49
--- /dev/null
+++ b/google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AffiliateLocationFeedRelationshipTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing relation type for affiliate location feeds.
+
+// Container for enum describing possible values for a relationship type for
+// an affiliate location feed.
+message AffiliateLocationFeedRelationshipTypeEnum {
+ // Possible values for a relationship type for an affiliate location feed.
+ enum AffiliateLocationFeedRelationshipType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // General retailer relationship.
+ GENERAL_RETAILER = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto b/google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto
new file mode 100644
index 000000000..80bb8660f
--- /dev/null
+++ b/google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto
@@ -0,0 +1,78 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AffiliateLocationPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Affiliate Location placeholder fields.
+
+// Values for Affiliate Location placeholder fields.
+message AffiliateLocationPlaceholderFieldEnum {
+ // Possible values for Affiliate Location placeholder fields.
+ enum AffiliateLocationPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The name of the business.
+ BUSINESS_NAME = 2;
+
+ // Data Type: STRING. Line 1 of the business address.
+ ADDRESS_LINE_1 = 3;
+
+ // Data Type: STRING. Line 2 of the business address.
+ ADDRESS_LINE_2 = 4;
+
+ // Data Type: STRING. City of the business address.
+ CITY = 5;
+
+ // Data Type: STRING. Province of the business address.
+ PROVINCE = 6;
+
+ // Data Type: STRING. Postal code of the business address.
+ POSTAL_CODE = 7;
+
+ // Data Type: STRING. Country code of the business address.
+ COUNTRY_CODE = 8;
+
+ // Data Type: STRING. Phone number of the business.
+ PHONE_NUMBER = 9;
+
+ // Data Type: STRING. Language code of the business.
+ LANGUAGE_CODE = 10;
+
+ // Data Type: INT64. ID of the chain.
+ CHAIN_ID = 11;
+
+ // Data Type: STRING. Name of the chain.
+ CHAIN_NAME = 12;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/age_range_type.proto b/google/ads/googleads/v1/enums/age_range_type.proto
new file mode 100644
index 000000000..394fc1d1a
--- /dev/null
+++ b/google/ads/googleads/v1/enums/age_range_type.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AgeRangeTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing age range types.
+
+// Container for enum describing the type of demographic age ranges.
+message AgeRangeTypeEnum {
+ // The type of demographic age ranges (e.g. between 18 and 24 years old).
+ enum AgeRangeType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Between 18 and 24 years old.
+ AGE_RANGE_18_24 = 503001;
+
+ // Between 25 and 34 years old.
+ AGE_RANGE_25_34 = 503002;
+
+ // Between 35 and 44 years old.
+ AGE_RANGE_35_44 = 503003;
+
+ // Between 45 and 54 years old.
+ AGE_RANGE_45_54 = 503004;
+
+ // Between 55 and 64 years old.
+ AGE_RANGE_55_64 = 503005;
+
+ // 65 years old and beyond.
+ AGE_RANGE_65_UP = 503006;
+
+ // Undetermined age range.
+ AGE_RANGE_UNDETERMINED = 503999;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/app_campaign_app_store.proto b/google/ads/googleads/v1/enums/app_campaign_app_store.proto
new file mode 100644
index 000000000..18ff7cff0
--- /dev/null
+++ b/google/ads/googleads/v1/enums/app_campaign_app_store.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AppCampaignAppStoreProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing App Campaign app store.
+
+// The application store that distributes mobile applications.
+message AppCampaignAppStoreEnum {
+ // Enum describing app campaign app store.
+ enum AppCampaignAppStore {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Apple app store.
+ APPLE_APP_STORE = 2;
+
+ // Google play.
+ GOOGLE_APP_STORE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto b/google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto
new file mode 100644
index 000000000..7915e19ce
--- /dev/null
+++ b/google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto
@@ -0,0 +1,65 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AppCampaignBiddingStrategyGoalTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing App Campaign bidding strategy goal types.
+
+// Container for enum describing goal towards which the bidding strategy of an
+// app campaign should optimize for.
+message AppCampaignBiddingStrategyGoalTypeEnum {
+ // Goal type of App campaign BiddingStrategy.
+ enum AppCampaignBiddingStrategyGoalType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Aim to maximize the number of app installs. The cpa bid is the
+ // target cost per install.
+ OPTIMIZE_INSTALLS_TARGET_INSTALL_COST = 2;
+
+ // Aim to maximize the long term number of selected in-app conversions from
+ // app installs. The cpa bid is the target cost per install.
+ OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST = 3;
+
+ // Aim to maximize the long term number of selected in-app conversions from
+ // app installs. The cpa bid is the target cost per in-app conversion. Note
+ // that the actual cpa may seem higher than the target cpa at first, since
+ // the long term conversions haven’t happened yet.
+ OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST = 4;
+
+ // Aim to maximize all conversions' value, i.e. install + selected in-app
+ // conversions while achieving or exceeding target return on advertising
+ // spend.
+ OPTIMIZE_RETURN_ON_ADVERTISING_SPEND = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/app_payment_model_type.proto b/google/ads/googleads/v1/enums/app_payment_model_type.proto
new file mode 100644
index 000000000..d843db0b3
--- /dev/null
+++ b/google/ads/googleads/v1/enums/app_payment_model_type.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AppPaymentModelTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing criteria types.
+
+// Represents a criterion for targeting paid apps.
+message AppPaymentModelTypeEnum {
+ // Enum describing possible app payment models.
+ enum AppPaymentModelType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Represents paid-for apps.
+ PAID = 30;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/app_placeholder_field.proto b/google/ads/googleads/v1/enums/app_placeholder_field.proto
new file mode 100644
index 000000000..03c48d3ef
--- /dev/null
+++ b/google/ads/googleads/v1/enums/app_placeholder_field.proto
@@ -0,0 +1,76 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AppPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing App placeholder fields.
+
+// Values for App placeholder fields.
+message AppPlaceholderFieldEnum {
+ // Possible values for App placeholder fields.
+ enum AppPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: INT64. The application store that the target application
+ // belongs to. Valid values are: 1 = Apple iTunes Store; 2 = Google Play
+ // Store.
+ STORE = 2;
+
+ // Data Type: STRING. The store-specific ID for the target application.
+ ID = 3;
+
+ // Data Type: STRING. The visible text displayed when the link is rendered
+ // in an ad.
+ LINK_TEXT = 4;
+
+ // Data Type: STRING. The destination URL of the in-app link.
+ URL = 5;
+
+ // Data Type: URL_LIST. Final URLs for the in-app link when using Upgraded
+ // URLs.
+ FINAL_URLS = 6;
+
+ // Data Type: URL_LIST. Final Mobile URLs for the in-app link when using
+ // Upgraded URLs.
+ FINAL_MOBILE_URLS = 7;
+
+ // Data Type: URL. Tracking template for the in-app link when using Upgraded
+ // URLs.
+ TRACKING_URL = 8;
+
+ // Data Type: STRING. Final URL suffix for the in-app link when using
+ // parallel tracking.
+ FINAL_URL_SUFFIX = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/app_store.proto b/google/ads/googleads/v1/enums/app_store.proto
new file mode 100644
index 000000000..8edb6a166
--- /dev/null
+++ b/google/ads/googleads/v1/enums/app_store.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AppStoreProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing app store types for an app extension.
+
+// Container for enum describing app store type in an app extension.
+message AppStoreEnum {
+ // App store type in an app extension.
+ enum AppStore {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Apple iTunes.
+ APPLE_ITUNES = 2;
+
+ // Google Play.
+ GOOGLE_PLAY = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/asset_type.proto b/google/ads/googleads/v1/enums/asset_type.proto
new file mode 100644
index 000000000..8ce04fb29
--- /dev/null
+++ b/google/ads/googleads/v1/enums/asset_type.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AssetTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing asset type.
+
+// Container for enum describing the types of asset.
+message AssetTypeEnum {
+ // Enum describing possible types of asset.
+ enum AssetType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // YouTube video asset.
+ YOUTUBE_VIDEO = 2;
+
+ // Media bundle asset.
+ MEDIA_BUNDLE = 3;
+
+ // Image asset.
+ IMAGE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/attribution_model.proto b/google/ads/googleads/v1/enums/attribution_model.proto
new file mode 100644
index 000000000..bacb1bac2
--- /dev/null
+++ b/google/ads/googleads/v1/enums/attribution_model.proto
@@ -0,0 +1,73 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "AttributionModelProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum representing the attribution model that describes how to
+// distribute credit for a particular conversion across potentially many prior
+// interactions.
+message AttributionModelEnum {
+ // The attribution model that describes how to distribute credit for a
+ // particular conversion across potentially many prior interactions.
+ enum AttributionModel {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Uses external attribution.
+ EXTERNAL = 100;
+
+ // Attributes all credit for a conversion to its last click.
+ GOOGLE_ADS_LAST_CLICK = 101;
+
+ // Attributes all credit for a conversion to its first click using Google
+ // Search attribution.
+ GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK = 102;
+
+ // Attributes credit for a conversion equally across all of its clicks using
+ // Google Search attribution.
+ GOOGLE_SEARCH_ATTRIBUTION_LINEAR = 103;
+
+ // Attributes exponentially more credit for a conversion to its more recent
+ // clicks using Google Search attribution (half-life is 1 week).
+ GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY = 104;
+
+ // Attributes 40% of the credit for a conversion to its first and last
+ // clicks. Remaining 20% is evenly distributed across all other clicks. This
+ // uses Google Search attribution.
+ GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED = 105;
+
+ // Flexible model that uses machine learning to determine the appropriate
+ // distribution of credit among clicks using Google Search attribution.
+ GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN = 106;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/bid_modifier_source.proto b/google/ads/googleads/v1/enums/bid_modifier_source.proto
new file mode 100644
index 000000000..afb803058
--- /dev/null
+++ b/google/ads/googleads/v1/enums/bid_modifier_source.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BidModifierSourceProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bid modifier source.
+
+// Container for enum describing possible bid modifier sources.
+message BidModifierSourceEnum {
+ // Enum describing possible bid modifier sources.
+ enum BidModifierSource {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The bid modifier is specified at the campaign level, on the campaign
+ // level criterion.
+ CAMPAIGN = 2;
+
+ // The bid modifier is specified (overridden) at the ad group level.
+ AD_GROUP = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/bidding_source.proto b/google/ads/googleads/v1/enums/bidding_source.proto
new file mode 100644
index 000000000..7687833d2
--- /dev/null
+++ b/google/ads/googleads/v1/enums/bidding_source.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingSourceProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding sources.
+
+// Container for enum describing possible bidding sources.
+message BiddingSourceEnum {
+ // Indicates where a bid or target is defined. For example, an ad group
+ // criterion may define a cpc bid directly, or it can inherit its cpc bid from
+ // the ad group.
+ enum BiddingSource {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Effective bid or target is inherited from campaign bidding strategy.
+ CAMPAIGN_BIDDING_STRATEGY = 5;
+
+ // The bid or target is defined on the ad group.
+ AD_GROUP = 6;
+
+ // The bid or target is defined on the ad group criterion.
+ AD_GROUP_CRITERION = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/bidding_strategy_status.proto b/google/ads/googleads/v1/enums/bidding_strategy_status.proto
new file mode 100644
index 000000000..1e524f2b3
--- /dev/null
+++ b/google/ads/googleads/v1/enums/bidding_strategy_status.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingStrategyStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing BiddingStrategy statuses.
+
+// Message describing BiddingStrategy statuses.
+message BiddingStrategyStatusEnum {
+ // The possible statuses of a BiddingStrategy.
+ enum BiddingStrategyStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The bidding strategy is enabled.
+ ENABLED = 2;
+
+ // The bidding strategy is removed.
+ REMOVED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/bidding_strategy_type.proto b/google/ads/googleads/v1/enums/bidding_strategy_type.proto
new file mode 100644
index 000000000..15388a5f0
--- /dev/null
+++ b/google/ads/googleads/v1/enums/bidding_strategy_type.proto
@@ -0,0 +1,105 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingStrategyTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding schemes.
+
+// Container for enum describing possible bidding strategy types.
+message BiddingStrategyTypeEnum {
+ // Enum describing possible bidding strategy types.
+ enum BiddingStrategyType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Enhanced CPC is a bidding strategy that raises bids for clicks
+ // that seem more likely to lead to a conversion and lowers
+ // them for clicks where they seem less likely.
+ ENHANCED_CPC = 2;
+
+ // Manual click based bidding where user pays per click.
+ MANUAL_CPC = 3;
+
+ // Manual impression based bidding
+ // where user pays per thousand impressions.
+ MANUAL_CPM = 4;
+
+ // A bidding strategy that pays a configurable amount per video view.
+ MANUAL_CPV = 13;
+
+ // A bidding strategy that automatically maximizes number of conversions
+ // given a daily budget.
+ MAXIMIZE_CONVERSIONS = 10;
+
+ // An automated bidding strategy that automatically sets bids to maximize
+ // revenue while spending your budget.
+ MAXIMIZE_CONVERSION_VALUE = 11;
+
+ // Page-One Promoted bidding scheme, which sets max cpc bids to
+ // target impressions on page one or page one promoted slots on google.com.
+ PAGE_ONE_PROMOTED = 5;
+
+ // Percent Cpc is bidding strategy where bids are a fraction of the
+ // advertised price for some good or service.
+ PERCENT_CPC = 12;
+
+ // Target CPA is an automated bid strategy that sets bids
+ // to help get as many conversions as possible
+ // at the target cost-per-acquisition (CPA) you set.
+ TARGET_CPA = 6;
+
+ // Target CPM is an automated bid strategy that sets bids to help get
+ // as many impressions as possible at the target cost per one thousand
+ // impressions (CPM) you set.
+ TARGET_CPM = 14;
+
+ // An automated bidding strategy that sets bids so that a certain percentage
+ // of search ads are shown at the top of the first page (or other targeted
+ // location).
+ TARGET_IMPRESSION_SHARE = 15;
+
+ // Target Outrank Share is an automated bidding strategy that sets bids
+ // based on the target fraction of auctions where the advertiser
+ // should outrank a specific competitor.
+ TARGET_OUTRANK_SHARE = 7;
+
+ // Target ROAS is an automated bidding strategy
+ // that helps you maximize revenue while averaging
+ // a specific target Return On Average Spend (ROAS).
+ TARGET_ROAS = 8;
+
+ // Target Spend is an automated bid strategy that sets your bids
+ // to help get as many clicks as possible within your budget.
+ TARGET_SPEND = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/billing_setup_status.proto b/google/ads/googleads/v1/enums/billing_setup_status.proto
new file mode 100644
index 000000000..523d9b3f0
--- /dev/null
+++ b/google/ads/googleads/v1/enums/billing_setup_status.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BillingSetupStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing BillingSetup statuses.
+
+// Message describing BillingSetup statuses.
+message BillingSetupStatusEnum {
+ // The possible statuses of a BillingSetup.
+ enum BillingSetupStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The billing setup is pending approval.
+ PENDING = 2;
+
+ // The billing setup has been approved but the corresponding first budget
+ // has not. This can only occur for billing setups configured for monthly
+ // invoicing.
+ APPROVED_HELD = 3;
+
+ // The billing setup has been approved.
+ APPROVED = 4;
+
+ // The billing setup was cancelled by the user prior to approval.
+ CANCELLED = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/brand_safety_suitability.proto b/google/ads/googleads/v1/enums/brand_safety_suitability.proto
new file mode 100644
index 000000000..5c2dceae3
--- /dev/null
+++ b/google/ads/googleads/v1/enums/brand_safety_suitability.proto
@@ -0,0 +1,74 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BrandSafetySuitabilityProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing brand safety suitability settings.
+
+// Container for enum with 3-Tier brand safety suitability control.
+message BrandSafetySuitabilityEnum {
+ // 3-Tier brand safety suitability control.
+ enum BrandSafetySuitability {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // This option lets you show ads across all inventory on YouTube and video
+ // partners that meet our standards for monetization. This option may be an
+ // appropriate choice for brands that want maximum access to the full
+ // breadth of videos eligible for ads, including, for example, videos that
+ // have strong profanity in the context of comedy or a documentary, or
+ // excessive violence as featured in video games.
+ EXPANDED_INVENTORY = 2;
+
+ // This option lets you show ads across a wide range of content that's
+ // appropriate for most brands, such as popular music videos, documentaries,
+ // and movie trailers. The content you can show ads on is based on YouTube's
+ // advertiser-friendly content guidelines that take into account, for
+ // example, the strength or frequency of profanity, or the appropriateness
+ // of subject matter like sensitive events. Ads won't show, for example, on
+ // content with repeated strong profanity, strong sexual content, or graphic
+ // violence.
+ STANDARD_INVENTORY = 3;
+
+ // This option lets you show ads on a reduced range of content that's
+ // appropriate for brands with particularly strict guidelines around
+ // inappropriate language and sexual suggestiveness; above and beyond what
+ // YouTube's advertiser-friendly content guidelines address. The videos
+ // accessible in this sensitive category meet heightened requirements,
+ // especially for inappropriate language and sexual suggestiveness. For
+ // example, your ads will be excluded from showing on some of YouTube's most
+ // popular music videos and other pop culture content across YouTube and
+ // Google video partners.
+ LIMITED_INVENTORY = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/budget_delivery_method.proto b/google/ads/googleads/v1/enums/budget_delivery_method.proto
new file mode 100644
index 000000000..5f231428a
--- /dev/null
+++ b/google/ads/googleads/v1/enums/budget_delivery_method.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BudgetDeliveryMethodProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Budget delivery methods.
+
+// Message describing Budget delivery methods. A delivery method determines the
+// rate at which the Budget is spent.
+message BudgetDeliveryMethodEnum {
+ // Possible delivery methods of a Budget.
+ enum BudgetDeliveryMethod {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The budget server will throttle serving evenly across
+ // the entire time period.
+ STANDARD = 2;
+
+ // The budget server will not throttle serving,
+ // and ads will serve as fast as possible.
+ ACCELERATED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/budget_period.proto b/google/ads/googleads/v1/enums/budget_period.proto
new file mode 100644
index 000000000..1e6befa4f
--- /dev/null
+++ b/google/ads/googleads/v1/enums/budget_period.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BudgetPeriodProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Budget delivery methods.
+
+// Message describing Budget period.
+message BudgetPeriodEnum {
+ // Possible period of a Budget.
+ enum BudgetPeriod {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Daily budget.
+ DAILY = 2;
+
+ // Custom budget.
+ CUSTOM = 3;
+
+ // Fixed daily budget.
+ FIXED_DAILY = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/budget_status.proto b/google/ads/googleads/v1/enums/budget_status.proto
new file mode 100644
index 000000000..de7a97b4d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/budget_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BudgetStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Budget statuses
+
+// Message describing a Budget status
+message BudgetStatusEnum {
+ // Possible statuses of a Budget.
+ enum BudgetStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Budget is enabled.
+ ENABLED = 2;
+
+ // Budget is removed.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/budget_type.proto b/google/ads/googleads/v1/enums/budget_type.proto
new file mode 100644
index 000000000..e1855c8a6
--- /dev/null
+++ b/google/ads/googleads/v1/enums/budget_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "BudgetTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Budget types.
+
+// Describes Budget types.
+message BudgetTypeEnum {
+ // Possible Budget types.
+ enum BudgetType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Budget type for standard Google Ads usage.
+ STANDARD = 2;
+
+ // Budget type for Hotels Ads commission program.
+ HOTEL_ADS_COMMISSION = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/call_conversion_reporting_state.proto b/google/ads/googleads/v1/enums/call_conversion_reporting_state.proto
new file mode 100644
index 000000000..e0e0fb1f9
--- /dev/null
+++ b/google/ads/googleads/v1/enums/call_conversion_reporting_state.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CallConversionReportingStateProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing call conversion reporting state.
+
+// Container for enum describing possible data types for call conversion
+// reporting state.
+message CallConversionReportingStateEnum {
+ // Possible data types for a call conversion action state.
+ enum CallConversionReportingState {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Call conversion action is disabled.
+ DISABLED = 2;
+
+ // Call conversion action will use call conversion type set at the
+ // account level.
+ USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION = 3;
+
+ // Call conversion action will use call conversion type set at the resource
+ // (call only ads/call extensions) level.
+ USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/call_placeholder_field.proto b/google/ads/googleads/v1/enums/call_placeholder_field.proto
new file mode 100644
index 000000000..aaf5577f0
--- /dev/null
+++ b/google/ads/googleads/v1/enums/call_placeholder_field.proto
@@ -0,0 +1,67 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CallPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Call placeholder fields.
+
+// Values for Call placeholder fields.
+message CallPlaceholderFieldEnum {
+ // Possible values for Call placeholder fields.
+ enum CallPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The advertiser's phone number to append to the ad.
+ PHONE_NUMBER = 2;
+
+ // Data Type: STRING. Uppercase two-letter country code of the advertiser's
+ // phone number.
+ COUNTRY_CODE = 3;
+
+ // Data Type: BOOLEAN. Indicates whether call tracking is enabled. Default:
+ // true.
+ TRACKED = 4;
+
+ // Data Type: INT64. The ID of an AdCallMetricsConversion object. This
+ // object contains the phoneCallDurationfield which is the minimum duration
+ // (in seconds) of a call to be considered a conversion.
+ CONVERSION_TYPE_ID = 5;
+
+ // Data Type: STRING. Indicates whether this call extension uses its own
+ // call conversion setting or follows the account level setting.
+ // Valid values are: USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION and
+ // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION.
+ CONVERSION_REPORTING_STATE = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/callout_placeholder_field.proto b/google/ads/googleads/v1/enums/callout_placeholder_field.proto
new file mode 100644
index 000000000..c681e7fd6
--- /dev/null
+++ b/google/ads/googleads/v1/enums/callout_placeholder_field.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CalloutPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Callout placeholder fields.
+
+// Values for Callout placeholder fields.
+message CalloutPlaceholderFieldEnum {
+ // Possible values for Callout placeholder fields.
+ enum CalloutPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Callout text.
+ CALLOUT_TEXT = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/campaign_serving_status.proto b/google/ads/googleads/v1/enums/campaign_serving_status.proto
new file mode 100644
index 000000000..41494783b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/campaign_serving_status.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignServingStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Campaign serving statuses.
+
+// Message describing Campaign serving statuses.
+message CampaignServingStatusEnum {
+ // Possible serving statuses of a campaign.
+ enum CampaignServingStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // Serving.
+ SERVING = 2;
+
+ // None.
+ NONE = 3;
+
+ // Ended.
+ ENDED = 4;
+
+ // Pending.
+ PENDING = 5;
+
+ // Suspended.
+ SUSPENDED = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/campaign_shared_set_status.proto b/google/ads/googleads/v1/enums/campaign_shared_set_status.proto
new file mode 100644
index 000000000..83f20219f
--- /dev/null
+++ b/google/ads/googleads/v1/enums/campaign_shared_set_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignSharedSetStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing campaign shared set statuses.
+
+// Container for enum describing types of campaign shared set statuses.
+message CampaignSharedSetStatusEnum {
+ // Enum listing the possible campaign shared set statuses.
+ enum CampaignSharedSetStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The campaign shared set is enabled.
+ ENABLED = 2;
+
+ // The campaign shared set is removed and can no longer be used.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/campaign_status.proto b/google/ads/googleads/v1/enums/campaign_status.proto
new file mode 100644
index 000000000..cf517067f
--- /dev/null
+++ b/google/ads/googleads/v1/enums/campaign_status.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing campaign status.
+
+// Container for enum describing possible statuses of a campaign.
+message CampaignStatusEnum {
+ // Possible statuses of a campaign.
+ enum CampaignStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Campaign is currently serving ads depending on budget information.
+ ENABLED = 2;
+
+ // Campaign has been paused by the user.
+ PAUSED = 3;
+
+ // Campaign has been removed.
+ REMOVED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/change_status_operation.proto b/google/ads/googleads/v1/enums/change_status_operation.proto
new file mode 100644
index 000000000..59007e771
--- /dev/null
+++ b/google/ads/googleads/v1/enums/change_status_operation.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ChangeStatusOperationProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the change status operations.
+
+// Container for enum describing operations for the ChangeStatus resource.
+message ChangeStatusOperationEnum {
+ // Status of the changed resource
+ enum ChangeStatusOperation {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents an unclassified resource unknown
+ // in this version.
+ UNKNOWN = 1;
+
+ // The resource was created.
+ ADDED = 2;
+
+ // The resource was modified.
+ CHANGED = 3;
+
+ // The resource was removed.
+ REMOVED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/change_status_resource_type.proto b/google/ads/googleads/v1/enums/change_status_resource_type.proto
new file mode 100644
index 000000000..c4da50dcf
--- /dev/null
+++ b/google/ads/googleads/v1/enums/change_status_resource_type.proto
@@ -0,0 +1,77 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ChangeStatusResourceTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the resource types the ChangeStatus resource supports.
+
+// Container for enum describing supported resource types for the ChangeStatus
+// resource.
+message ChangeStatusResourceTypeEnum {
+ // Enum listing the resource types support by the ChangeStatus resource.
+ enum ChangeStatusResourceType {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents an unclassified resource unknown
+ // in this version.
+ UNKNOWN = 1;
+
+ // An AdGroup resource change.
+ AD_GROUP = 3;
+
+ // An AdGroupAd resource change.
+ AD_GROUP_AD = 4;
+
+ // An AdGroupCriterion resource change.
+ AD_GROUP_CRITERION = 5;
+
+ // A Campaign resource change.
+ CAMPAIGN = 6;
+
+ // A CampaignCriterion resource change.
+ CAMPAIGN_CRITERION = 7;
+
+ // A Feed resource change.
+ FEED = 9;
+
+ // A FeedItem resource change.
+ FEED_ITEM = 10;
+
+ // An AdGroupFeed resource change.
+ AD_GROUP_FEED = 11;
+
+ // A CampaignFeed resource change.
+ CAMPAIGN_FEED = 12;
+
+ // An AdGroupBidModifier resource change.
+ AD_GROUP_BID_MODIFIER = 13;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/click_type.proto b/google/ads/googleads/v1/enums/click_type.proto
new file mode 100644
index 000000000..36b8e2e34
--- /dev/null
+++ b/google/ads/googleads/v1/enums/click_type.proto
@@ -0,0 +1,201 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ClickTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing click types.
+
+// Container for enumeration of Google Ads click types.
+message ClickTypeEnum {
+ // Enumerates Google Ads click types.
+ enum ClickType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // App engagement ad deep link.
+ APP_DEEPLINK = 2;
+
+ // Breadcrumbs.
+ BREADCRUMBS = 3;
+
+ // Broadband Plan.
+ BROADBAND_PLAN = 4;
+
+ // Manually dialed phone calls.
+ CALL_TRACKING = 5;
+
+ // Phone calls.
+ CALLS = 6;
+
+ // Click on engagement ad.
+ CLICK_ON_ENGAGEMENT_AD = 7;
+
+ // Driving direction.
+ GET_DIRECTIONS = 8;
+
+ // Get location details.
+ LOCATION_EXPANSION = 9;
+
+ // Call.
+ LOCATION_FORMAT_CALL = 10;
+
+ // Directions.
+ LOCATION_FORMAT_DIRECTIONS = 11;
+
+ // Image(s).
+ LOCATION_FORMAT_IMAGE = 12;
+
+ // Go to landing page.
+ LOCATION_FORMAT_LANDING_PAGE = 13;
+
+ // Map.
+ LOCATION_FORMAT_MAP = 14;
+
+ // Go to store info.
+ LOCATION_FORMAT_STORE_INFO = 15;
+
+ // Text.
+ LOCATION_FORMAT_TEXT = 16;
+
+ // Mobile phone calls.
+ MOBILE_CALL_TRACKING = 17;
+
+ // Print offer.
+ OFFER_PRINTS = 18;
+
+ // Other.
+ OTHER = 19;
+
+ // Product plusbox offer.
+ PRODUCT_EXTENSION_CLICKS = 20;
+
+ // Shopping - Product - Online.
+ PRODUCT_LISTING_AD_CLICKS = 21;
+
+ // Sitelink.
+ SITELINKS = 22;
+
+ // Show nearby locations.
+ STORE_LOCATOR = 23;
+
+ // Headline.
+ URL_CLICKS = 25;
+
+ // App store.
+ VIDEO_APP_STORE_CLICKS = 26;
+
+ // Call-to-Action overlay.
+ VIDEO_CALL_TO_ACTION_CLICKS = 27;
+
+ // Cards.
+ VIDEO_CARD_ACTION_HEADLINE_CLICKS = 28;
+
+ // End cap.
+ VIDEO_END_CAP_CLICKS = 29;
+
+ // Website.
+ VIDEO_WEBSITE_CLICKS = 30;
+
+ // Visual Sitelinks.
+ VISUAL_SITELINKS = 31;
+
+ // Wireless Plan.
+ WIRELESS_PLAN = 32;
+
+ // Shopping - Product - Local.
+ PRODUCT_LISTING_AD_LOCAL = 33;
+
+ // Shopping - Product - MultiChannel Local.
+ PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL = 34;
+
+ // Shopping - Product - MultiChannel Online.
+ PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE = 35;
+
+ // Shopping - Product - Coupon.
+ PRODUCT_LISTING_ADS_COUPON = 36;
+
+ // Shopping - Product - Sell on Google.
+ PRODUCT_LISTING_AD_TRANSACTABLE = 37;
+
+ // Shopping - Product - App engagement ad deep link.
+ PRODUCT_AD_APP_DEEPLINK = 38;
+
+ // Shopping - Showcase - Category.
+ SHOWCASE_AD_CATEGORY_LINK = 39;
+
+ // Shopping - Showcase - Local storefront.
+ SHOWCASE_AD_LOCAL_STOREFRONT_LINK = 40;
+
+ // Shopping - Showcase - Online product.
+ SHOWCASE_AD_ONLINE_PRODUCT_LINK = 42;
+
+ // Shopping - Showcase - Local product.
+ SHOWCASE_AD_LOCAL_PRODUCT_LINK = 43;
+
+ // Promotion Extension.
+ PROMOTION_EXTENSION = 44;
+
+ // Ad Headline.
+ SWIPEABLE_GALLERY_AD_HEADLINE = 45;
+
+ // Swipes.
+ SWIPEABLE_GALLERY_AD_SWIPES = 46;
+
+ // See More.
+ SWIPEABLE_GALLERY_AD_SEE_MORE = 47;
+
+ // Sitelink 1.
+ SWIPEABLE_GALLERY_AD_SITELINK_ONE = 48;
+
+ // Sitelink 2.
+ SWIPEABLE_GALLERY_AD_SITELINK_TWO = 49;
+
+ // Sitelink 3.
+ SWIPEABLE_GALLERY_AD_SITELINK_THREE = 50;
+
+ // Sitelink 4.
+ SWIPEABLE_GALLERY_AD_SITELINK_FOUR = 51;
+
+ // Sitelink 5.
+ SWIPEABLE_GALLERY_AD_SITELINK_FIVE = 52;
+
+ // Hotel price.
+ HOTEL_PRICE = 53;
+
+ // Price Extension.
+ PRICE_EXTENSION = 54;
+
+ // Book on Google hotel room selection.
+ HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION = 55;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/content_label_type.proto b/google/ads/googleads/v1/enums/content_label_type.proto
new file mode 100644
index 000000000..7e6fd200c
--- /dev/null
+++ b/google/ads/googleads/v1/enums/content_label_type.proto
@@ -0,0 +1,90 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ContentLabelTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing content label types.
+
+// Container for enum describing content label types in ContentLabel.
+message ContentLabelTypeEnum {
+ // Enum listing the content label types supported by ContentLabel criterion.
+ enum ContentLabelType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Sexually suggestive content.
+ SEXUALLY_SUGGESTIVE = 2;
+
+ // Below the fold placement.
+ BELOW_THE_FOLD = 3;
+
+ // Parked domain.
+ PARKED_DOMAIN = 4;
+
+ // Game.
+ GAME = 5;
+
+ // Juvenile, gross & bizarre content.
+ JUVENILE = 6;
+
+ // Profanity & rough language.
+ PROFANITY = 7;
+
+ // Death & tragedy.
+ TRAGEDY = 8;
+
+ // Video.
+ VIDEO = 9;
+
+ // Content rating: G.
+ VIDEO_RATING_DV_G = 10;
+
+ // Content rating: PG.
+ VIDEO_RATING_DV_PG = 11;
+
+ // Content rating: T.
+ VIDEO_RATING_DV_T = 12;
+
+ // Content rating: MA.
+ VIDEO_RATING_DV_MA = 13;
+
+ // Content rating: not yet rated.
+ VIDEO_NOT_YET_RATED = 14;
+
+ // Embedded video.
+ EMBEDDED_VIDEO = 15;
+
+ // Live streaming video.
+ LIVE_STREAMING_VIDEO = 16;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_action_category.proto b/google/ads/googleads/v1/enums/conversion_action_category.proto
new file mode 100644
index 000000000..2f9b04348
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_action_category.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionActionCategoryProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum describing the category of conversions that are associated
+// with a ConversionAction.
+message ConversionActionCategoryEnum {
+ // The category of conversions that are associated with a ConversionAction.
+ enum ConversionActionCategory {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Default category.
+ DEFAULT = 2;
+
+ // User visiting a page.
+ PAGE_VIEW = 3;
+
+ // Purchase, sales, or "order placed" event.
+ PURCHASE = 4;
+
+ // Signup user action.
+ SIGNUP = 5;
+
+ // Lead-generating action.
+ LEAD = 6;
+
+ // Software download action (as for an app).
+ DOWNLOAD = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_action_counting_type.proto b/google/ads/googleads/v1/enums/conversion_action_counting_type.proto
new file mode 100644
index 000000000..b4db763b0
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_action_counting_type.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionActionCountingTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing conversion action counting type.
+
+// Container for enum describing the conversion deduplication mode for
+// conversion optimizer.
+message ConversionActionCountingTypeEnum {
+ // Indicates how conversions for this action will be counted. For more
+ // information, see https://support.google.com/google-ads/answer/3438531.
+ enum ConversionActionCountingType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Count only one conversion per click.
+ ONE_PER_CLICK = 2;
+
+ // Count all conversions per click.
+ MANY_PER_CLICK = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_action_status.proto b/google/ads/googleads/v1/enums/conversion_action_status.proto
new file mode 100644
index 000000000..a36c52fd3
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_action_status.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionActionStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing conversion action status.
+
+// Container for enum describing possible statuses of a conversion action.
+message ConversionActionStatusEnum {
+ // Possible statuses of a conversion action.
+ enum ConversionActionStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Conversions will be recorded.
+ ENABLED = 2;
+
+ // Conversions will not be recorded.
+ REMOVED = 3;
+
+ // Conversions will not be recorded and the conversion action will not
+ // appear in the UI.
+ HIDDEN = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_action_type.proto b/google/ads/googleads/v1/enums/conversion_action_type.proto
new file mode 100644
index 000000000..60fa639c1
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_action_type.proto
@@ -0,0 +1,74 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionActionTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing conversion action type.
+
+// Container for enum describing possible types of a conversion action.
+message ConversionActionTypeEnum {
+ // Possible types of a conversion action.
+ enum ConversionActionType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Conversions that occur when a user clicks on an ad's call extension.
+ AD_CALL = 2;
+
+ // Conversions that occur when a user on a mobile device clicks a phone
+ // number.
+ CLICK_TO_CALL = 3;
+
+ // Conversions that occur when a user downloads a mobile app from the Google
+ // Play Store.
+ GOOGLE_PLAY_DOWNLOAD = 4;
+
+ // Conversions that occur when a user makes a purchase in an app through
+ // Android billing.
+ GOOGLE_PLAY_IN_APP_PURCHASE = 5;
+
+ // Call conversions that are tracked by the advertiser and uploaded.
+ UPLOAD_CALLS = 6;
+
+ // Conversions that are tracked by the advertiser and uploaded with
+ // attributed clicks.
+ UPLOAD_CLICKS = 7;
+
+ // Conversions that occur on a webpage.
+ WEBPAGE = 8;
+
+ // Conversions that occur when a user calls a dynamically-generated phone
+ // number from an advertiser's website.
+ WEBSITE_CALL = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_adjustment_type.proto b/google/ads/googleads/v1/enums/conversion_adjustment_type.proto
new file mode 100644
index 000000000..3d2da8e09
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_adjustment_type.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionAdjustmentTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing conversion adjustment type.
+
+// Container for enum describing conversion adjustment types.
+message ConversionAdjustmentTypeEnum {
+ // The different actions advertisers can take to adjust the conversions that
+ // they already reported. Retractions negate a conversion. Restatements change
+ // the value of a conversion.
+ enum ConversionAdjustmentType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Negates a conversion so that its total value and count are both zero.
+ RETRACTION = 2;
+
+ // Changes the value of a conversion.
+ RESTATEMENT = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_attribution_event_type.proto b/google/ads/googleads/v1/enums/conversion_attribution_event_type.proto
new file mode 100644
index 000000000..537f339a7
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_attribution_event_type.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionAttributionEventTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum indicating the event type the conversion is attributed to.
+message ConversionAttributionEventTypeEnum {
+ // The event type of conversions that are attributed to.
+ enum ConversionAttributionEventType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The conversion is attributed to an impression.
+ IMPRESSION = 2;
+
+ // The conversion is attributed to an interaction.
+ INTERACTION = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_lag_bucket.proto b/google/ads/googleads/v1/enums/conversion_lag_bucket.proto
new file mode 100644
index 000000000..06b9b6697
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_lag_bucket.proto
@@ -0,0 +1,118 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionLagBucketProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum representing the number of days between impression and
+// conversion.
+message ConversionLagBucketEnum {
+ // Enum representing the number of days between impression and conversion.
+ enum ConversionLagBucket {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not.
+ LESS_THAN_ONE_DAY = 2;
+
+ // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not.
+ ONE_TO_TWO_DAYS = 3;
+
+ // Conversion lag bucket from 2 to 3 days. 2 days is included,
+ // 3 days is not.
+ TWO_TO_THREE_DAYS = 4;
+
+ // Conversion lag bucket from 3 to 4 days. 3 days is included,
+ // 4 days is not.
+ THREE_TO_FOUR_DAYS = 5;
+
+ // Conversion lag bucket from 4 to 5 days. 4 days is included,
+ // 5 days is not.
+ FOUR_TO_FIVE_DAYS = 6;
+
+ // Conversion lag bucket from 5 to 6 days. 5 days is included,
+ // 6 days is not.
+ FIVE_TO_SIX_DAYS = 7;
+
+ // Conversion lag bucket from 6 to 7 days. 6 days is included,
+ // 7 days is not.
+ SIX_TO_SEVEN_DAYS = 8;
+
+ // Conversion lag bucket from 7 to 8 days. 7 days is included,
+ // 8 days is not.
+ SEVEN_TO_EIGHT_DAYS = 9;
+
+ // Conversion lag bucket from 8 to 9 days. 8 days is included,
+ // 9 days is not.
+ EIGHT_TO_NINE_DAYS = 10;
+
+ // Conversion lag bucket from 9 to 10 days. 9 days is included,
+ // 10 days is not.
+ NINE_TO_TEN_DAYS = 11;
+
+ // Conversion lag bucket from 10 to 11 days. 10 days is included,
+ // 11 days is not.
+ TEN_TO_ELEVEN_DAYS = 12;
+
+ // Conversion lag bucket from 11 to 12 days. 11 days is included,
+ // 12 days is not.
+ ELEVEN_TO_TWELVE_DAYS = 13;
+
+ // Conversion lag bucket from 12 to 13 days. 12 days is included,
+ // 13 days is not.
+ TWELVE_TO_THIRTEEN_DAYS = 14;
+
+ // Conversion lag bucket from 13 to 14 days. 13 days is included,
+ // 14 days is not.
+ THIRTEEN_TO_FOURTEEN_DAYS = 15;
+
+ // Conversion lag bucket from 14 to 21 days. 14 days is included,
+ // 21 days is not.
+ FOURTEEN_TO_TWENTY_ONE_DAYS = 16;
+
+ // Conversion lag bucket from 21 to 30 days. 21 days is included,
+ // 30 days is not.
+ TWENTY_ONE_TO_THIRTY_DAYS = 17;
+
+ // Conversion lag bucket from 30 to 45 days. 30 days is included,
+ // 45 days is not.
+ THIRTY_TO_FORTY_FIVE_DAYS = 18;
+
+ // Conversion lag bucket from 45 to 60 days. 45 days is included,
+ // 60 days is not.
+ FORTY_FIVE_TO_SIXTY_DAYS = 19;
+
+ // Conversion lag bucket from 60 to 90 days. 60 days is included,
+ // 90 days is not.
+ SIXTY_TO_NINETY_DAYS = 20;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto b/google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto
new file mode 100644
index 000000000..0a721f125
--- /dev/null
+++ b/google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto
@@ -0,0 +1,207 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionOrAdjustmentLagBucketProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum representing the number of days between the impression and
+// the conversion or between the impression and adjustments to the conversion.
+message ConversionOrAdjustmentLagBucketEnum {
+ // Enum representing the number of days between the impression and the
+ // conversion or between the impression and adjustments to the conversion.
+ enum ConversionOrAdjustmentLagBucket {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not.
+ CONVERSION_LESS_THAN_ONE_DAY = 2;
+
+ // Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not.
+ CONVERSION_ONE_TO_TWO_DAYS = 3;
+
+ // Conversion lag bucket from 2 to 3 days. 2 days is included,
+ // 3 days is not.
+ CONVERSION_TWO_TO_THREE_DAYS = 4;
+
+ // Conversion lag bucket from 3 to 4 days. 3 days is included,
+ // 4 days is not.
+ CONVERSION_THREE_TO_FOUR_DAYS = 5;
+
+ // Conversion lag bucket from 4 to 5 days. 4 days is included,
+ // 5 days is not.
+ CONVERSION_FOUR_TO_FIVE_DAYS = 6;
+
+ // Conversion lag bucket from 5 to 6 days. 5 days is included,
+ // 6 days is not.
+ CONVERSION_FIVE_TO_SIX_DAYS = 7;
+
+ // Conversion lag bucket from 6 to 7 days. 6 days is included,
+ // 7 days is not.
+ CONVERSION_SIX_TO_SEVEN_DAYS = 8;
+
+ // Conversion lag bucket from 7 to 8 days. 7 days is included,
+ // 8 days is not.
+ CONVERSION_SEVEN_TO_EIGHT_DAYS = 9;
+
+ // Conversion lag bucket from 8 to 9 days. 8 days is included,
+ // 9 days is not.
+ CONVERSION_EIGHT_TO_NINE_DAYS = 10;
+
+ // Conversion lag bucket from 9 to 10 days. 9 days is included,
+ // 10 days is not.
+ CONVERSION_NINE_TO_TEN_DAYS = 11;
+
+ // Conversion lag bucket from 10 to 11 days. 10 days is included,
+ // 11 days is not.
+ CONVERSION_TEN_TO_ELEVEN_DAYS = 12;
+
+ // Conversion lag bucket from 11 to 12 days. 11 days is included,
+ // 12 days is not.
+ CONVERSION_ELEVEN_TO_TWELVE_DAYS = 13;
+
+ // Conversion lag bucket from 12 to 13 days. 12 days is included,
+ // 13 days is not.
+ CONVERSION_TWELVE_TO_THIRTEEN_DAYS = 14;
+
+ // Conversion lag bucket from 13 to 14 days. 13 days is included,
+ // 14 days is not.
+ CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS = 15;
+
+ // Conversion lag bucket from 14 to 21 days. 14 days is included,
+ // 21 days is not.
+ CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS = 16;
+
+ // Conversion lag bucket from 21 to 30 days. 21 days is included,
+ // 30 days is not.
+ CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS = 17;
+
+ // Conversion lag bucket from 30 to 45 days. 30 days is included,
+ // 45 days is not.
+ CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS = 18;
+
+ // Conversion lag bucket from 45 to 60 days. 45 days is included,
+ // 60 days is not.
+ CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS = 19;
+
+ // Conversion lag bucket from 60 to 90 days. 60 days is included,
+ // 90 days is not.
+ CONVERSION_SIXTY_TO_NINETY_DAYS = 20;
+
+ // Conversion adjustment lag bucket from 0 to 1 day. 0 day is included,
+ // 1 day is not.
+ ADJUSTMENT_LESS_THAN_ONE_DAY = 21;
+
+ // Conversion adjustment lag bucket from 1 to 2 days. 1 day is included,
+ // 2 days is not.
+ ADJUSTMENT_ONE_TO_TWO_DAYS = 22;
+
+ // Conversion adjustment lag bucket from 2 to 3 days. 2 days is included,
+ // 3 days is not.
+ ADJUSTMENT_TWO_TO_THREE_DAYS = 23;
+
+ // Conversion adjustment lag bucket from 3 to 4 days. 3 days is included,
+ // 4 days is not.
+ ADJUSTMENT_THREE_TO_FOUR_DAYS = 24;
+
+ // Conversion adjustment lag bucket from 4 to 5 days. 4 days is included,
+ // 5 days is not.
+ ADJUSTMENT_FOUR_TO_FIVE_DAYS = 25;
+
+ // Conversion adjustment lag bucket from 5 to 6 days. 5 days is included,
+ // 6 days is not.
+ ADJUSTMENT_FIVE_TO_SIX_DAYS = 26;
+
+ // Conversion adjustment lag bucket from 6 to 7 days. 6 days is included,
+ // 7 days is not.
+ ADJUSTMENT_SIX_TO_SEVEN_DAYS = 27;
+
+ // Conversion adjustment lag bucket from 7 to 8 days. 7 days is included,
+ // 8 days is not.
+ ADJUSTMENT_SEVEN_TO_EIGHT_DAYS = 28;
+
+ // Conversion adjustment lag bucket from 8 to 9 days. 8 days is included,
+ // 9 days is not.
+ ADJUSTMENT_EIGHT_TO_NINE_DAYS = 29;
+
+ // Conversion adjustment lag bucket from 9 to 10 days. 9 days is included,
+ // 10 days is not.
+ ADJUSTMENT_NINE_TO_TEN_DAYS = 30;
+
+ // Conversion adjustment lag bucket from 10 to 11 days. 10 days is included,
+ // 11 days is not.
+ ADJUSTMENT_TEN_TO_ELEVEN_DAYS = 31;
+
+ // Conversion adjustment lag bucket from 11 to 12 days. 11 days is included,
+ // 12 days is not.
+ ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS = 32;
+
+ // Conversion adjustment lag bucket from 12 to 13 days. 12 days is included,
+ // 13 days is not.
+ ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS = 33;
+
+ // Conversion adjustment lag bucket from 13 to 14 days. 13 days is included,
+ // 14 days is not.
+ ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS = 34;
+
+ // Conversion adjustment lag bucket from 14 to 21 days. 14 days is included,
+ // 21 days is not.
+ ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS = 35;
+
+ // Conversion adjustment lag bucket from 21 to 30 days. 21 days is included,
+ // 30 days is not.
+ ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS = 36;
+
+ // Conversion adjustment lag bucket from 30 to 45 days. 30 days is included,
+ // 45 days is not.
+ ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS = 37;
+
+ // Conversion adjustment lag bucket from 45 to 60 days. 45 days is included,
+ // 60 days is not.
+ ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS = 38;
+
+ // Conversion adjustment lag bucket from 60 to 90 days. 60 days is included,
+ // 90 days is not.
+ ADJUSTMENT_SIXTY_TO_NINETY_DAYS = 39;
+
+ // Conversion adjustment lag bucket from 90 to 145 days. 90 days is
+ // included, 145 days is not.
+ ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS = 40;
+
+ // Conversion lag bucket UNKNOWN. This is for dates before conversion lag
+ // bucket was available in Google Ads.
+ CONVERSION_UNKNOWN = 41;
+
+ // Conversion adjustment lag bucket UNKNOWN. This is for dates before
+ // conversion adjustment lag bucket was available in Google Ads.
+ ADJUSTMENT_UNKNOWN = 42;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto b/google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto
new file mode 100644
index 000000000..8a9f65a56
--- /dev/null
+++ b/google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CriterionCategoryChannelAvailabilityModeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the criterion category channel availability mode.
+
+// Describes channel availability mode for a criterion availability - whether
+// the availability is meant to include all advertising channels, or a
+// particular channel with all its channel subtypes, or a channel with a certain
+// subset of channel subtypes.
+message CriterionCategoryChannelAvailabilityModeEnum {
+ // Enum containing the possible CriterionCategoryChannelAvailabilityMode.
+ enum CriterionCategoryChannelAvailabilityMode {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The category is available to campaigns of all channel types and subtypes.
+ ALL_CHANNELS = 2;
+
+ // The category is available to campaigns of a specific channel type,
+ // including all subtypes under it.
+ CHANNEL_TYPE_AND_ALL_SUBTYPES = 3;
+
+ // The category is available to campaigns of a specific channel type and
+ // subtype(s).
+ CHANNEL_TYPE_AND_SUBSET_SUBTYPES = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto b/google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto
new file mode 100644
index 000000000..0448fd8bf
--- /dev/null
+++ b/google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CriterionCategoryLocaleAvailabilityModeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the criterion category locale availability mode.
+
+// Describes locale availabilty mode for a criterion availability - whether
+// it's available globally, or a particular country with all languages, or a
+// particular language with all countries, or a country-language pair.
+message CriterionCategoryLocaleAvailabilityModeEnum {
+ // Enum containing the possible CriterionCategoryLocaleAvailabilityMode.
+ enum CriterionCategoryLocaleAvailabilityMode {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The category is available to campaigns of all locales.
+ ALL_LOCALES = 2;
+
+ // The category is available to campaigns within a list of countries,
+ // regardless of language.
+ COUNTRY_AND_ALL_LANGUAGES = 3;
+
+ // The category is available to campaigns within a list of languages,
+ // regardless of country.
+ LANGUAGE_AND_ALL_COUNTRIES = 4;
+
+ // The category is available to campaigns within a list of country, language
+ // pairs.
+ COUNTRY_AND_LANGUAGE = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/criterion_system_serving_status.proto b/google/ads/googleads/v1/enums/criterion_system_serving_status.proto
new file mode 100644
index 000000000..6c6102d64
--- /dev/null
+++ b/google/ads/googleads/v1/enums/criterion_system_serving_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CriterionSystemServingStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing approval status for the criterion.
+
+// Container for enum describing possible criterion system serving statuses.
+message CriterionSystemServingStatusEnum {
+ // Enumerates criterion system serving statuses.
+ enum CriterionSystemServingStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Eligible.
+ ELIGIBLE = 2;
+
+ // Low search volume.
+ RARELY_SERVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/criterion_type.proto b/google/ads/googleads/v1/enums/criterion_type.proto
new file mode 100644
index 000000000..9ab63bf94
--- /dev/null
+++ b/google/ads/googleads/v1/enums/criterion_type.proto
@@ -0,0 +1,132 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CriterionTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing criteria types.
+
+// The possible types of a criterion.
+message CriterionTypeEnum {
+ // Enum describing possible criterion types.
+ enum CriterionType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Keyword. e.g. 'mars cruise'.
+ KEYWORD = 2;
+
+ // Placement, aka Website. e.g. 'www.flowers4sale.com'
+ PLACEMENT = 3;
+
+ // Mobile application categories to target.
+ MOBILE_APP_CATEGORY = 4;
+
+ // Mobile applications to target.
+ MOBILE_APPLICATION = 5;
+
+ // Devices to target.
+ DEVICE = 6;
+
+ // Locations to target.
+ LOCATION = 7;
+
+ // Listing groups to target.
+ LISTING_GROUP = 8;
+
+ // Ad Schedule.
+ AD_SCHEDULE = 9;
+
+ // Age range.
+ AGE_RANGE = 10;
+
+ // Gender.
+ GENDER = 11;
+
+ // Income Range.
+ INCOME_RANGE = 12;
+
+ // Parental status.
+ PARENTAL_STATUS = 13;
+
+ // YouTube Video.
+ YOUTUBE_VIDEO = 14;
+
+ // YouTube Channel.
+ YOUTUBE_CHANNEL = 15;
+
+ // User list.
+ USER_LIST = 16;
+
+ // Proximity.
+ PROXIMITY = 17;
+
+ // A topic target on the display network (e.g. "Pets & Animals").
+ TOPIC = 18;
+
+ // Listing scope to target.
+ LISTING_SCOPE = 19;
+
+ // Language.
+ LANGUAGE = 20;
+
+ // IpBlock.
+ IP_BLOCK = 21;
+
+ // Content Label for category exclusion.
+ CONTENT_LABEL = 22;
+
+ // Carrier.
+ CARRIER = 23;
+
+ // A category the user is interested in.
+ USER_INTEREST = 24;
+
+ // Webpage criterion for dynamic search ads.
+ WEBPAGE = 25;
+
+ // Operating system version.
+ OPERATING_SYSTEM_VERSION = 26;
+
+ // App payment model.
+ APP_PAYMENT_MODEL = 27;
+
+ // Mobile device.
+ MOBILE_DEVICE = 28;
+
+ // Custom affinity.
+ CUSTOM_AFFINITY = 29;
+
+ // Custom intent.
+ CUSTOM_INTENT = 30;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/custom_interest_member_type.proto b/google/ads/googleads/v1/enums/custom_interest_member_type.proto
new file mode 100644
index 000000000..3432ecff8
--- /dev/null
+++ b/google/ads/googleads/v1/enums/custom_interest_member_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CustomInterestMemberTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing custom interest member type.
+
+// The types of custom interest member, either KEYWORD or URL.
+message CustomInterestMemberTypeEnum {
+ // Enum containing possible custom interest member types.
+ enum CustomInterestMemberType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Custom interest member type KEYWORD.
+ KEYWORD = 2;
+
+ // Custom interest member type URL.
+ URL = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/custom_interest_status.proto b/google/ads/googleads/v1/enums/custom_interest_status.proto
new file mode 100644
index 000000000..f01191a49
--- /dev/null
+++ b/google/ads/googleads/v1/enums/custom_interest_status.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CustomInterestStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing custom interest status.
+
+// The status of custom interest.
+message CustomInterestStatusEnum {
+ // Enum containing possible custom interest types.
+ enum CustomInterestStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Enabled status - custom interest is enabled and can be targeted to.
+ ENABLED = 2;
+
+ // Removed status - custom interest is removed and cannot be used for
+ // targeting.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/custom_interest_type.proto b/google/ads/googleads/v1/enums/custom_interest_type.proto
new file mode 100644
index 000000000..b28ce8f88
--- /dev/null
+++ b/google/ads/googleads/v1/enums/custom_interest_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CustomInterestTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing custom interest type.
+
+// The types of custom interest.
+message CustomInterestTypeEnum {
+ // Enum containing possible custom interest types.
+ enum CustomInterestType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Allows brand advertisers to define custom affinity audience lists.
+ CUSTOM_AFFINITY = 2;
+
+ // Allows advertisers to define custom intent audience lists.
+ CUSTOM_INTENT = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/custom_placeholder_field.proto b/google/ads/googleads/v1/enums/custom_placeholder_field.proto
new file mode 100644
index 000000000..bc5802684
--- /dev/null
+++ b/google/ads/googleads/v1/enums/custom_placeholder_field.proto
@@ -0,0 +1,130 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CustomPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Custom placeholder fields.
+
+// Values for Custom placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message CustomPlaceholderFieldEnum {
+ // Possible values for Custom placeholder fields.
+ enum CustomPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Required. Combination ID and ID2 must be unique per
+ // offer.
+ ID = 2;
+
+ // Data Type: STRING. Combination ID and ID2 must be unique per offer.
+ ID2 = 3;
+
+ // Data Type: STRING. Required. Main headline with product name to be shown
+ // in dynamic ad.
+ ITEM_TITLE = 4;
+
+ // Data Type: STRING. Optional text to be shown in the image ad.
+ ITEM_SUBTITLE = 5;
+
+ // Data Type: STRING. Optional description of the product to be shown in the
+ // ad.
+ ITEM_DESCRIPTION = 6;
+
+ // Data Type: STRING. Full address of your offer or service, including
+ // postal code. This will be used to identify the closest product to the
+ // user when there are multiple offers in the feed that are relevant to the
+ // user.
+ ITEM_ADDRESS = 7;
+
+ // Data Type: STRING. Price to be shown in the ad.
+ // Example: "100.00 USD"
+ PRICE = 8;
+
+ // Data Type: STRING. Formatted price to be shown in the ad.
+ // Example: "Starting at $100.00 USD", "$80 - $100"
+ FORMATTED_PRICE = 9;
+
+ // Data Type: STRING. Sale price to be shown in the ad.
+ // Example: "80.00 USD"
+ SALE_PRICE = 10;
+
+ // Data Type: STRING. Formatted sale price to be shown in the ad.
+ // Example: "On sale for $80.00", "$60 - $80"
+ FORMATTED_SALE_PRICE = 11;
+
+ // Data Type: URL. Image to be displayed in the ad. Highly recommended for
+ // image ads.
+ IMAGE_URL = 12;
+
+ // Data Type: STRING. Used as a recommendation engine signal to serve items
+ // in the same category.
+ ITEM_CATEGORY = 13;
+
+ // Data Type: URL_LIST. Final URLs for the ad when using Upgraded
+ // URLs. User will be redirected to these URLs when they click on an ad, or
+ // when they click on a specific product for ads that have multiple
+ // products.
+ FINAL_URLS = 14;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 15;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 16;
+
+ // Data Type: STRING_LIST. Keywords used for product retrieval.
+ CONTEXTUAL_KEYWORDS = 17;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 18;
+
+ // Data Type: STRING_LIST. List of recommended IDs to show together with
+ // this item.
+ SIMILAR_IDS = 19;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 20;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 21;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/customer_match_upload_key_type.proto b/google/ads/googleads/v1/enums/customer_match_upload_key_type.proto
new file mode 100644
index 000000000..7f352c3b7
--- /dev/null
+++ b/google/ads/googleads/v1/enums/customer_match_upload_key_type.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerMatchUploadKeyTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Indicates what type of data are the user list's members matched from.
+message CustomerMatchUploadKeyTypeEnum {
+ // Enum describing possible customer match upload key types.
+ enum CustomerMatchUploadKeyType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Members are matched from customer info such as email address, phone
+ // number or physical address.
+ CONTACT_INFO = 2;
+
+ // Members are matched from a user id generated and assigned by the
+ // advertiser.
+ CRM_ID = 3;
+
+ // Members are matched from mobile advertising ids.
+ MOBILE_ADVERTISING_ID = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/data_driven_model_status.proto b/google/ads/googleads/v1/enums/data_driven_model_status.proto
new file mode 100644
index 000000000..07d916204
--- /dev/null
+++ b/google/ads/googleads/v1/enums/data_driven_model_status.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "DataDrivenModelStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing data-driven model status.
+
+// Container for enum indicating data driven model status.
+message DataDrivenModelStatusEnum {
+ // Enumerates data driven model statuses.
+ enum DataDrivenModelStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The data driven model is available.
+ AVAILABLE = 2;
+
+ // The data driven model is stale. It hasn't been updated for at least 7
+ // days. It is still being used, but will become expired if it does not get
+ // updated for 30 days.
+ STALE = 3;
+
+ // The data driven model expired. It hasn't been updated for at least 30
+ // days and cannot be used. Most commonly this is because there hasn't been
+ // the required number of events in a recent 30-day period.
+ EXPIRED = 4;
+
+ // The data driven model has never been generated. Most commonly this is
+ // because there has never been the required number of events in any 30-day
+ // period.
+ NEVER_GENERATED = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/day_of_week.proto b/google/ads/googleads/v1/enums/day_of_week.proto
new file mode 100644
index 000000000..0ab7a667f
--- /dev/null
+++ b/google/ads/googleads/v1/enums/day_of_week.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "DayOfWeekProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing days of week.
+
+// Container for enumeration of days of the week, e.g., "Monday".
+message DayOfWeekEnum {
+ // Enumerates days of the week, e.g., "Monday".
+ enum DayOfWeek {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Monday.
+ MONDAY = 2;
+
+ // Tuesday.
+ TUESDAY = 3;
+
+ // Wednesday.
+ WEDNESDAY = 4;
+
+ // Thursday.
+ THURSDAY = 5;
+
+ // Friday.
+ FRIDAY = 6;
+
+ // Saturday.
+ SATURDAY = 7;
+
+ // Sunday.
+ SUNDAY = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/device.proto b/google/ads/googleads/v1/enums/device.proto
new file mode 100644
index 000000000..1e5fc8619
--- /dev/null
+++ b/google/ads/googleads/v1/enums/device.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "DeviceProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing devices.
+
+// Container for enumeration of Google Ads devices available for targeting.
+message DeviceEnum {
+ // Enumerates Google Ads devices available for targeting.
+ enum Device {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Mobile devices with full browsers.
+ MOBILE = 2;
+
+ // Tablets with full browsers.
+ TABLET = 3;
+
+ // Computers.
+ DESKTOP = 4;
+
+ // Other device types.
+ OTHER = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/display_ad_format_setting.proto b/google/ads/googleads/v1/enums/display_ad_format_setting.proto
new file mode 100644
index 000000000..da26af16b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/display_ad_format_setting.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "DisplayAdFormatSettingProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing display ad format settings.
+
+// Container for display ad format settings.
+message DisplayAdFormatSettingEnum {
+ // Enumerates display ad format settings.
+ enum DisplayAdFormatSetting {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Text, image and native formats.
+ ALL_FORMATS = 2;
+
+ // Text and image formats.
+ NON_NATIVE = 3;
+
+ // Native format, i.e. the format rendering is controlled by the publisher
+ // and not by Google.
+ NATIVE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto b/google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto
new file mode 100644
index 000000000..bab368e2e
--- /dev/null
+++ b/google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "DsaPageFeedCriterionFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Dynamic Search Ad Page Feed criterion fields.
+
+// Values for Dynamic Search Ad Page Feed criterion fields.
+message DsaPageFeedCriterionFieldEnum {
+ // Possible values for Dynamic Search Ad Page Feed criterion fields.
+ enum DsaPageFeedCriterionField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: URL or URL_LIST. URL of the web page you want to target.
+ PAGE_URL = 2;
+
+ // Data Type: STRING_LIST. The labels that will help you target ads within
+ // your page feed.
+ LABEL = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/education_placeholder_field.proto b/google/ads/googleads/v1/enums/education_placeholder_field.proto
new file mode 100644
index 000000000..7ec2c2c50
--- /dev/null
+++ b/google/ads/googleads/v1/enums/education_placeholder_field.proto
@@ -0,0 +1,112 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "EducationPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Education placeholder fields.
+
+// Values for Education placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message EducationPlaceholderFieldEnum {
+ // Possible values for Education placeholder fields.
+ enum EducationPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Required. Combination of PROGRAM ID and LOCATION ID
+ // must be unique per offer.
+ PROGRAM_ID = 2;
+
+ // Data Type: STRING. Combination of PROGRAM ID and LOCATION ID must be
+ // unique per offer.
+ LOCATION_ID = 3;
+
+ // Data Type: STRING. Required. Main headline with program name to be shown
+ // in dynamic ad.
+ PROGRAM_NAME = 4;
+
+ // Data Type: STRING. Area of study that can be shown in dynamic ad.
+ AREA_OF_STUDY = 5;
+
+ // Data Type: STRING. Description of program that can be shown in dynamic
+ // ad.
+ PROGRAM_DESCRIPTION = 6;
+
+ // Data Type: STRING. Name of school that can be shown in dynamic ad.
+ SCHOOL_NAME = 7;
+
+ // Data Type: STRING. Complete school address, including postal code.
+ ADDRESS = 8;
+
+ // Data Type: URL. Image to be displayed in ads.
+ THUMBNAIL_IMAGE_URL = 9;
+
+ // Data Type: URL. Alternative hosted file of image to be used in the ad.
+ ALTERNATIVE_THUMBNAIL_IMAGE_URL = 10;
+
+ // Data Type: URL_LIST. Required. Final URLs to be used in ad when using
+ // Upgraded URLs; the more specific the better (e.g. the individual URL of a
+ // specific program and its location).
+ FINAL_URLS = 11;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 12;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 13;
+
+ // Data Type: STRING_LIST. Keywords used for product retrieval.
+ CONTEXTUAL_KEYWORDS = 14;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 15;
+
+ // Data Type: STRING_LIST. List of recommended program IDs to show together
+ // with this item.
+ SIMILAR_PROGRAM_IDS = 16;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 17;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 18;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/extension_setting_device.proto b/google/ads/googleads/v1/enums/extension_setting_device.proto
new file mode 100644
index 000000000..f3e11e8af
--- /dev/null
+++ b/google/ads/googleads/v1/enums/extension_setting_device.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionSettingDeviceProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing extension setting device type.
+
+// Container for enum describing extension setting device types.
+message ExtensionSettingDeviceEnum {
+ // Possbile device types for an extension setting.
+ enum ExtensionSettingDevice {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Mobile. The extensions in the extension setting will only serve on
+ // mobile devices.
+ MOBILE = 2;
+
+ // Desktop. The extensions in the extension setting will only serve on
+ // desktop devices.
+ DESKTOP = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/extension_type.proto b/google/ads/googleads/v1/enums/extension_type.proto
new file mode 100644
index 000000000..94b3be93c
--- /dev/null
+++ b/google/ads/googleads/v1/enums/extension_type.proto
@@ -0,0 +1,76 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing extension type.
+
+// Container for enum describing possible data types for an extension in an
+// extension setting.
+message ExtensionTypeEnum {
+ // Possible data types for an extension in an extension setting.
+ enum ExtensionType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // None.
+ NONE = 2;
+
+ // App.
+ APP = 3;
+
+ // Call.
+ CALL = 4;
+
+ // Callout.
+ CALLOUT = 5;
+
+ // Message.
+ MESSAGE = 6;
+
+ // Price.
+ PRICE = 7;
+
+ // Promotion.
+ PROMOTION = 8;
+
+ // Review.
+ REVIEW = 9;
+
+ // Sitelink.
+ SITELINK = 10;
+
+ // Structured snippet.
+ STRUCTURED_SNIPPET = 11;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/external_conversion_source.proto b/google/ads/googleads/v1/enums/external_conversion_source.proto
new file mode 100644
index 000000000..347596bbc
--- /dev/null
+++ b/google/ads/googleads/v1/enums/external_conversion_source.proto
@@ -0,0 +1,131 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ExternalConversionSourceProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum describing the external conversion source that is
+// associated with a ConversionAction.
+message ExternalConversionSourceEnum {
+ // The external conversion source that is associated with a ConversionAction.
+ enum ExternalConversionSource {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Conversion that occurs when a user navigates to a particular webpage
+ // after viewing an ad; Displayed in Google Ads UI as 'Website'.
+ WEBPAGE = 2;
+
+ // Conversion that comes from linked Google Analytics goal or transaction;
+ // Displayed in Google Ads UI as 'Analytics'.
+ ANALYTICS = 3;
+
+ // Website conversion that is uploaded through ConversionUploadService;
+ // Displayed in Google Ads UI as 'Import from clicks'.
+ UPLOAD = 4;
+
+ // Conversion that occurs when a user clicks on a call extension directly on
+ // an ad; Displayed in Google Ads UI as 'Calls from ads'.
+ AD_CALL_METRICS = 5;
+
+ // Conversion that occurs when a user calls a dynamically-generated phone
+ // number (by installed javascript) from an advertiser's website after
+ // clicking on an ad; Displayed in Google Ads UI as 'Calls from website'.
+ WEBSITE_CALL_METRICS = 6;
+
+ // Conversion that occurs when a user visits an advertiser's retail store
+ // after clicking on a Google ad;
+ // Displayed in Google Ads UI as 'Store visits'.
+ STORE_VISITS = 7;
+
+ // Conversion that occurs when a user takes an in-app action such as a
+ // purchase in an Android app;
+ // Displayed in Google Ads UI as 'Android in-app action'.
+ ANDROID_IN_APP = 8;
+
+ // Conversion that occurs when a user takes an in-app action such as a
+ // purchase in an iOS app;
+ // Displayed in Google Ads UI as 'iOS in-app action'.
+ IOS_IN_APP = 9;
+
+ // Conversion that occurs when a user opens an iOS app for the first time;
+ // Displayed in Google Ads UI as 'iOS app install (first open)'.
+ IOS_FIRST_OPEN = 10;
+
+ // Legacy app conversions that do not have an AppPlatform provided;
+ // Displayed in Google Ads UI as 'Mobile app'.
+ APP_UNSPECIFIED = 11;
+
+ // Conversion that occurs when a user opens an Android app for the first
+ // time; Displayed in Google Ads UI as 'Android app install (first open)'.
+ ANDROID_FIRST_OPEN = 12;
+
+ // Call conversion that is uploaded through ConversionUploadService;
+ // Displayed in Google Ads UI as 'Import from calls'.
+ UPLOAD_CALLS = 13;
+
+ // Conversion that comes from a linked Firebase event;
+ // Displayed in Google Ads UI as 'Firebase'.
+ FIREBASE = 14;
+
+ // Conversion that occurs when a user clicks on a mobile phone number;
+ // Displayed in Google Ads UI as 'Phone number clicks'.
+ CLICK_TO_CALL = 15;
+
+ // Conversion that comes from Salesforce;
+ // Displayed in Google Ads UI as 'Salesforce.com'.
+ SALESFORCE = 16;
+
+ // Conversion that comes from in-store purchases recorded by CRM;
+ // Displayed in Google Ads UI as 'Store sales (data partner)'.
+ STORE_SALES_CRM = 17;
+
+ // Conversion that comes from in-store purchases from payment network;
+ // Displayed in Google Ads UI as 'Store sales (payment network)'.
+ STORE_SALES_PAYMENT_NETWORK = 18;
+
+ // Codeless Google Play conversion;
+ // Displayed in Google Ads UI as 'Google Play'.
+ GOOGLE_PLAY = 19;
+
+ // Conversion that comes from a linked third-party app analytics event;
+ // Displayed in Google Ads UI as 'Third-party app analytics'.
+ THIRD_PARTY_APP_ANALYTICS = 20;
+
+ // Conversion that is controlled by Google Attribution.
+ GOOGLE_ATTRIBUTION = 21;
+
+ // Store Sales conversion based on first-party or third-party merchant data
+ // uploads. Displayed in Google Ads UI as 'Store sales (direct)'.
+ STORE_SALES_DIRECT = 22;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_attribute_type.proto b/google/ads/googleads/v1/enums/feed_attribute_type.proto
new file mode 100644
index 000000000..7124505c6
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_attribute_type.proto
@@ -0,0 +1,84 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedAttributeTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed attribute type.
+
+// Container for enum describing possible data types for a feed attribute.
+message FeedAttributeTypeEnum {
+ // Possible data types for a feed attribute.
+ enum FeedAttributeType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Int64.
+ INT64 = 2;
+
+ // Double.
+ DOUBLE = 3;
+
+ // String.
+ STRING = 4;
+
+ // Boolean.
+ BOOLEAN = 5;
+
+ // Url.
+ URL = 6;
+
+ // Datetime.
+ DATE_TIME = 7;
+
+ // Int64 list.
+ INT64_LIST = 8;
+
+ // Double (8 bytes) list.
+ DOUBLE_LIST = 9;
+
+ // String list.
+ STRING_LIST = 10;
+
+ // Boolean list.
+ BOOLEAN_LIST = 11;
+
+ // Url list.
+ URL_LIST = 12;
+
+ // Datetime list.
+ DATE_TIME_LIST = 13;
+
+ // Price.
+ PRICE = 14;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto b/google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto
new file mode 100644
index 000000000..c7168ce5c
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemQualityApprovalStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed item quality evaluation approval statuses.
+
+// Container for enum describing possible quality evaluation approval statuses
+// of a feed item.
+message FeedItemQualityApprovalStatusEnum {
+ // The possible quality evaluation approval statuses of a feed item.
+ enum FeedItemQualityApprovalStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Meets all quality expectations.
+ APPROVED = 2;
+
+ // Does not meet some quality expectations. The specific reason is found in
+ // the quality_disapproval_reasons field.
+ DISAPPROVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto b/google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto
new file mode 100644
index 000000000..df408e74c
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto
@@ -0,0 +1,100 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemQualityDisapprovalReasonProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed item quality disapproval reasons.
+
+// Container for enum describing possible quality evaluation disapproval reasons
+// of a feed item.
+message FeedItemQualityDisapprovalReasonEnum {
+ // The possible quality evaluation disapproval reasons of a feed item.
+ enum FeedItemQualityDisapprovalReason {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Price contains repetitive headers.
+ PRICE_TABLE_REPETITIVE_HEADERS = 2;
+
+ // Price contains repetitive description.
+ PRICE_TABLE_REPETITIVE_DESCRIPTION = 3;
+
+ // Price contains inconsistent items.
+ PRICE_TABLE_INCONSISTENT_ROWS = 4;
+
+ // Price contains qualifiers in description.
+ PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS = 5;
+
+ // Price contains an unsupported language.
+ PRICE_UNSUPPORTED_LANGUAGE = 6;
+
+ // Price item header is not relevant to the price type.
+ PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH = 7;
+
+ // Price item header has promotional text.
+ PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT = 8;
+
+ // Price item description is not relevant to the item header.
+ PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT = 9;
+
+ // Price item description contains promotional text.
+ PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT = 10;
+
+ // Price item header and description are repetitive.
+ PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE = 11;
+
+ // Price item is in a foreign language, nonsense, or can't be rated.
+ PRICE_TABLE_ROW_UNRATEABLE = 12;
+
+ // Price item price is invalid or inaccurate.
+ PRICE_TABLE_ROW_PRICE_INVALID = 13;
+
+ // Price item URL is invalid or irrelevant.
+ PRICE_TABLE_ROW_URL_INVALID = 14;
+
+ // Price item header or description has price.
+ PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE = 15;
+
+ // Structured snippet values do not match the header.
+ STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED = 16;
+
+ // Structured snippet values are repeated.
+ STRUCTURED_SNIPPETS_REPEATED_VALUES = 17;
+
+ // Structured snippet values violate editorial guidelines like punctuation.
+ STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES = 18;
+
+ // Structured snippet contain promotional text.
+ STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT = 19;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_item_status.proto b/google/ads/googleads/v1/enums/feed_item_status.proto
new file mode 100644
index 000000000..71c9d30b7
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_item_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed item status.
+
+// Container for enum describing possible statuses of a feed item.
+message FeedItemStatusEnum {
+ // Possible statuses of a feed item.
+ enum FeedItemStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Feed item is enabled.
+ ENABLED = 2;
+
+ // Feed item has been removed.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_item_target_device.proto b/google/ads/googleads/v1/enums/feed_item_target_device.proto
new file mode 100644
index 000000000..f042d21cd
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_item_target_device.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemTargetDeviceProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed item target device type.
+
+// Container for enum describing possible data types for a feed item target
+// device.
+message FeedItemTargetDeviceEnum {
+ // Possible data types for a feed item target device.
+ enum FeedItemTargetDevice {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Mobile.
+ MOBILE = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_item_target_type.proto b/google/ads/googleads/v1/enums/feed_item_target_type.proto
new file mode 100644
index 000000000..a8eec2bd2
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_item_target_type.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemTargetTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed item target type status.
+
+// Container for enum describing possible types of a feed item target.
+message FeedItemTargetTypeEnum {
+ // Possible type of a feed item target.
+ enum FeedItemTargetType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Feed item targets a campaign.
+ CAMPAIGN = 2;
+
+ // Feed item targets an ad group.
+ AD_GROUP = 3;
+
+ // Feed item targets a criterion.
+ CRITERION = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_item_validation_status.proto b/google/ads/googleads/v1/enums/feed_item_validation_status.proto
new file mode 100644
index 000000000..31b0bc180
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_item_validation_status.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemValidationStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed item validation statuses.
+
+// Container for enum describing possible validation statuses of a feed item.
+message FeedItemValidationStatusEnum {
+ // The possible validation statuses of a feed item.
+ enum FeedItemValidationStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Validation pending.
+ PENDING = 2;
+
+ // An error was found.
+ INVALID = 3;
+
+ // Feed item is semantically well-formed.
+ VALID = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_link_status.proto b/google/ads/googleads/v1/enums/feed_link_status.proto
new file mode 100644
index 000000000..b0b97b8fa
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_link_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedLinkStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing status of a feed link.
+
+// Container for an enum describing possible statuses of a feed link.
+message FeedLinkStatusEnum {
+ // Possible statuses of a feed link.
+ enum FeedLinkStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Feed link is enabled.
+ ENABLED = 2;
+
+ // Feed link has been removed.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto b/google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto
new file mode 100644
index 000000000..f45520bac
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedMappingCriterionTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing criterion types for feed mappings.
+
+// Container for enum describing possible criterion types for a feed mapping.
+message FeedMappingCriterionTypeEnum {
+ // Possible placeholder types for a feed mapping.
+ enum FeedMappingCriterionType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Allows campaign targeting at locations within a location feed.
+ LOCATION_EXTENSION_TARGETING = 4;
+
+ // Allows url targeting for your dynamic search ads within a page feed.
+ DSA_PAGE_FEED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_mapping_status.proto b/google/ads/googleads/v1/enums/feed_mapping_status.proto
new file mode 100644
index 000000000..b295d52c2
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_mapping_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedMappingStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed mapping status.
+
+// Container for enum describing possible statuses of a feed mapping.
+message FeedMappingStatusEnum {
+ // Possible statuses of a feed mapping.
+ enum FeedMappingStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Feed mapping is enabled.
+ ENABLED = 2;
+
+ // Feed mapping has been removed.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_origin.proto b/google/ads/googleads/v1/enums/feed_origin.proto
new file mode 100644
index 000000000..57273fefb
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_origin.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedOriginProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed origin.
+
+// Container for enum describing possible values for a feed origin.
+message FeedOriginEnum {
+ // Possible values for a feed origin.
+ enum FeedOrigin {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The FeedAttributes for this Feed are managed by the
+ // user. Users can add FeedAttributes to this Feed.
+ USER = 2;
+
+ // The FeedAttributes for an GOOGLE Feed are created by Google. A feed of
+ // this type is maintained by Google and will have the correct attributes
+ // for the placeholder type of the feed.
+ GOOGLE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/feed_status.proto b/google/ads/googleads/v1/enums/feed_status.proto
new file mode 100644
index 000000000..4f0a7597c
--- /dev/null
+++ b/google/ads/googleads/v1/enums/feed_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FeedStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed status.
+
+// Container for enum describing possible statuses of a feed.
+message FeedStatusEnum {
+ // Possible statuses of a feed.
+ enum FeedStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Feed is enabled.
+ ENABLED = 2;
+
+ // Feed has been removed.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/flight_placeholder_field.proto b/google/ads/googleads/v1/enums/flight_placeholder_field.proto
new file mode 100644
index 000000000..2e7b44ff7
--- /dev/null
+++ b/google/ads/googleads/v1/enums/flight_placeholder_field.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FlightsPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Flight placeholder fields.
+
+// Values for Flight placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message FlightPlaceholderFieldEnum {
+ // Possible values for Flight placeholder fields.
+ enum FlightPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Required. Destination id. Example: PAR, LON.
+ // For feed items that only have destination id, destination id must be a
+ // unique key. For feed items that have both destination id and origin id,
+ // then the combination must be a unique key.
+ DESTINATION_ID = 2;
+
+ // Data Type: STRING. Origin id. Example: PAR, LON.
+ // Optional. Combination of destination id and origin id must be unique per
+ // offer.
+ ORIGIN_ID = 3;
+
+ // Data Type: STRING. Required. Main headline with product name to be shown
+ // in dynamic ad.
+ FLIGHT_DESCRIPTION = 4;
+
+ // Data Type: STRING. Shorter names are recommended.
+ ORIGIN_NAME = 5;
+
+ // Data Type: STRING. Shorter names are recommended.
+ DESTINATION_NAME = 6;
+
+ // Data Type: STRING. Price to be shown in the ad.
+ // Example: "100.00 USD"
+ FLIGHT_PRICE = 7;
+
+ // Data Type: STRING. Formatted price to be shown in the ad.
+ // Example: "Starting at $100.00 USD", "$80 - $100"
+ FORMATTED_PRICE = 8;
+
+ // Data Type: STRING. Sale price to be shown in the ad.
+ // Example: "80.00 USD"
+ FLIGHT_SALE_PRICE = 9;
+
+ // Data Type: STRING. Formatted sale price to be shown in the ad.
+ // Example: "On sale for $80.00", "$60 - $80"
+ FORMATTED_SALE_PRICE = 10;
+
+ // Data Type: URL. Image to be displayed in the ad.
+ IMAGE_URL = 11;
+
+ // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded
+ // URLs. User will be redirected to these URLs when they click on an ad, or
+ // when they click on a specific flight for ads that show multiple
+ // flights.
+ FINAL_URLS = 12;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 13;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 14;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 15;
+
+ // Data Type: STRING_LIST. List of recommended destination IDs to show
+ // together with this item.
+ SIMILAR_DESTINATION_IDS = 16;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 17;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 18;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/frequency_cap_event_type.proto b/google/ads/googleads/v1/enums/frequency_cap_event_type.proto
new file mode 100644
index 000000000..99420b819
--- /dev/null
+++ b/google/ads/googleads/v1/enums/frequency_cap_event_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FrequencyCapEventTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing frequency caps.
+
+// Container for enum describing the type of event that the cap applies to.
+message FrequencyCapEventTypeEnum {
+ // The type of event that the cap applies to (e.g. impression).
+ enum FrequencyCapEventType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The cap applies on ad impressions.
+ IMPRESSION = 2;
+
+ // The cap applies on video ad views.
+ VIDEO_VIEW = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/frequency_cap_level.proto b/google/ads/googleads/v1/enums/frequency_cap_level.proto
new file mode 100644
index 000000000..3f6ec96b7
--- /dev/null
+++ b/google/ads/googleads/v1/enums/frequency_cap_level.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FrequencyCapLevelProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing frequency caps.
+
+// Container for enum describing the level on which the cap is to be applied.
+message FrequencyCapLevelEnum {
+ // The level on which the cap is to be applied (e.g ad group ad, ad group).
+ // Cap is applied to all the resources of this level.
+ enum FrequencyCapLevel {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The cap is applied at the ad group ad level.
+ AD_GROUP_AD = 2;
+
+ // The cap is applied at the ad group level.
+ AD_GROUP = 3;
+
+ // The cap is applied at the campaign level.
+ CAMPAIGN = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/frequency_cap_time_unit.proto b/google/ads/googleads/v1/enums/frequency_cap_time_unit.proto
new file mode 100644
index 000000000..747a05d23
--- /dev/null
+++ b/google/ads/googleads/v1/enums/frequency_cap_time_unit.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "FrequencyCapTimeUnitProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing frequency caps.
+
+// Container for enum describing the unit of time the cap is defined at.
+message FrequencyCapTimeUnitEnum {
+ // Unit of time the cap is defined at (e.g. day, week).
+ enum FrequencyCapTimeUnit {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The cap would define limit per one day.
+ DAY = 2;
+
+ // The cap would define limit per one week.
+ WEEK = 3;
+
+ // The cap would define limit per one month.
+ MONTH = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/gender_type.proto b/google/ads/googleads/v1/enums/gender_type.proto
new file mode 100644
index 000000000..f1345a62d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/gender_type.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "GenderTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing gender types.
+
+// Container for enum describing the type of demographic genders.
+message GenderTypeEnum {
+ // The type of demographic genders (e.g. female).
+ enum GenderType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Male.
+ MALE = 10;
+
+ // Female.
+ FEMALE = 11;
+
+ // Undetermined gender.
+ UNDETERMINED = 20;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/geo_target_constant_status.proto b/google/ads/googleads/v1/enums/geo_target_constant_status.proto
new file mode 100644
index 000000000..342608c6e
--- /dev/null
+++ b/google/ads/googleads/v1/enums/geo_target_constant_status.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "GeoTargetConstantStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing geo target constant statuses.
+
+// Container for describing the status of a geo target constant.
+message GeoTargetConstantStatusEnum {
+ // The possible statuses of a geo target constant.
+ enum GeoTargetConstantStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The geo target constant is valid.
+ ENABLED = 2;
+
+ // The geo target constant is obsolete and will be removed.
+ REMOVAL_PLANNED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/geo_targeting_restriction.proto b/google/ads/googleads/v1/enums/geo_targeting_restriction.proto
new file mode 100644
index 000000000..250e2cca4
--- /dev/null
+++ b/google/ads/googleads/v1/enums/geo_targeting_restriction.proto
@@ -0,0 +1,50 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "GeoTargetingRestrictionProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing GeoTargetingRestriction.
+
+// Message describing feed item geo targeting restriction.
+message GeoTargetingRestrictionEnum {
+ // A restriction used to determine if the request context's
+ // geo should be matched.
+ enum GeoTargetingRestriction {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Indicates that request context should match the physical location of
+ // the user.
+ LOCATION_OF_PRESENCE = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/geo_targeting_type.proto b/google/ads/googleads/v1/enums/geo_targeting_type.proto
new file mode 100644
index 000000000..4a92232a1
--- /dev/null
+++ b/google/ads/googleads/v1/enums/geo_targeting_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "GeoTargetingTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing geo targeting types.
+
+// Container for enum describing possible geo targeting types.
+message GeoTargetingTypeEnum {
+ // The possible geo targeting types.
+ enum GeoTargetingType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Location the user is interested in while making the query.
+ AREA_OF_INTEREST = 2;
+
+ // Location of the user issuing the query.
+ LOCATION_OF_PRESENCE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/google_ads_field_category.proto b/google/ads/googleads/v1/enums/google_ads_field_category.proto
new file mode 100644
index 000000000..5f7969e3d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/google_ads_field_category.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "GoogleAdsFieldCategoryProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing GoogleAdsField categories
+
+// Container for enum that determines if the described artifact is a resource
+// or a field, and if it is a field, when it segments search queries.
+message GoogleAdsFieldCategoryEnum {
+ // The category of the artifact.
+ enum GoogleAdsFieldCategory {
+ // Unspecified
+ UNSPECIFIED = 0;
+
+ // Unknown
+ UNKNOWN = 1;
+
+ // The described artifact is a resource.
+ RESOURCE = 2;
+
+ // The described artifact is a field and is an attribute of a resource.
+ // Including a resource attribute field in a query may segment the query if
+ // the resource to which it is attributed segments the resource found in
+ // the FROM clause.
+ ATTRIBUTE = 3;
+
+ // The described artifact is a field and always segments search queries.
+ SEGMENT = 5;
+
+ // The described artifact is a field and is a metric. It never segments
+ // search queries.
+ METRIC = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/google_ads_field_data_type.proto b/google/ads/googleads/v1/enums/google_ads_field_data_type.proto
new file mode 100644
index 000000000..69766b8f9
--- /dev/null
+++ b/google/ads/googleads/v1/enums/google_ads_field_data_type.proto
@@ -0,0 +1,98 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "GoogleAdsFieldDataTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing GoogleAdsField data types
+
+// Container holding the various data types.
+message GoogleAdsFieldDataTypeEnum {
+ // These are the various types a GoogleAdsService artifact may take on.
+ enum GoogleAdsFieldDataType {
+ // Unspecified
+ UNSPECIFIED = 0;
+
+ // Unknown
+ UNKNOWN = 1;
+
+ // Maps to google.protobuf.BoolValue
+ //
+ // Applicable operators: =, !=
+ BOOLEAN = 2;
+
+ // Maps to google.protobuf.StringValue. It can be compared using the set of
+ // operators specific to dates however.
+ //
+ // Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN
+ DATE = 3;
+
+ // Maps to google.protobuf.DoubleValue
+ //
+ // Applicable operators: =, !=, <, >, IN, NOT IN
+ DOUBLE = 4;
+
+ // Maps to an enum. It's specific definition can be found at type_url.
+ //
+ // Applicable operators: =, !=, IN, NOT IN
+ ENUM = 5;
+
+ // Maps to google.protobuf.FloatValue
+ //
+ // Applicable operators: =, !=, <, >, IN, NOT IN
+ FLOAT = 6;
+
+ // Maps to google.protobuf.Int32Value
+ //
+ // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN
+ INT32 = 7;
+
+ // Maps to google.protobuf.Int64Value
+ //
+ // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN
+ INT64 = 8;
+
+ // Maps to a protocol buffer message type. The data type's details can be
+ // found in type_url.
+ //
+ // No operators work with MESSAGE fields.
+ MESSAGE = 9;
+
+ // Maps to google.protobuf.StringValue. Represents the resource name
+ // (unique id) of a resource or one of its foreign keys.
+ //
+ // No operators work with RESOURCE_NAME fields.
+ RESOURCE_NAME = 10;
+
+ // Maps to google.protobuf.StringValue.
+ //
+ // Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN
+ STRING = 11;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/hotel_date_selection_type.proto b/google/ads/googleads/v1/enums/hotel_date_selection_type.proto
new file mode 100644
index 000000000..3adea6a42
--- /dev/null
+++ b/google/ads/googleads/v1/enums/hotel_date_selection_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "HotelDateSelectionTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing hotel date selection types.
+
+// Container for enum describing possible hotel date selection types
+message HotelDateSelectionTypeEnum {
+ // Enum describing possible hotel date selection types.
+ enum HotelDateSelectionType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Dates selected by default.
+ DEFAULT_SELECTION = 50;
+
+ // Dates selected by the user.
+ USER_SELECTED = 51;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/hotel_placeholder_field.proto b/google/ads/googleads/v1/enums/hotel_placeholder_field.proto
new file mode 100644
index 000000000..600d83e88
--- /dev/null
+++ b/google/ads/googleads/v1/enums/hotel_placeholder_field.proto
@@ -0,0 +1,125 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "HotelsPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Hotel placeholder fields.
+
+// Values for Hotel placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message HotelPlaceholderFieldEnum {
+ // Possible values for Hotel placeholder fields.
+ enum HotelPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Required. Unique ID.
+ PROPERTY_ID = 2;
+
+ // Data Type: STRING. Required. Main headline with property name to be shown
+ // in dynamic ad.
+ PROPERTY_NAME = 3;
+
+ // Data Type: STRING. Name of destination to be shown in dynamic ad.
+ DESTINATION_NAME = 4;
+
+ // Data Type: STRING. Description of destination to be shown in dynamic ad.
+ DESCRIPTION = 5;
+
+ // Data Type: STRING. Complete property address, including postal code.
+ ADDRESS = 6;
+
+ // Data Type: STRING. Price to be shown in the ad.
+ // Example: "100.00 USD"
+ PRICE = 7;
+
+ // Data Type: STRING. Formatted price to be shown in the ad.
+ // Example: "Starting at $100.00 USD", "$80 - $100"
+ FORMATTED_PRICE = 8;
+
+ // Data Type: STRING. Sale price to be shown in the ad.
+ // Example: "80.00 USD"
+ SALE_PRICE = 9;
+
+ // Data Type: STRING. Formatted sale price to be shown in the ad.
+ // Example: "On sale for $80.00", "$60 - $80"
+ FORMATTED_SALE_PRICE = 10;
+
+ // Data Type: URL. Image to be displayed in the ad.
+ IMAGE_URL = 11;
+
+ // Data Type: STRING. Category of property used to group like items together
+ // for recommendation engine.
+ CATEGORY = 12;
+
+ // Data Type: INT64. Star rating (1 to 5) used to group like items
+ // together for recommendation engine.
+ STAR_RATING = 13;
+
+ // Data Type: STRING_LIST. Keywords used for product retrieval.
+ CONTEXTUAL_KEYWORDS = 14;
+
+ // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded
+ // URLs. User will be redirected to these URLs when they click on an ad, or
+ // when they click on a specific flight for ads that show multiple
+ // flights.
+ FINAL_URLS = 15;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 16;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 17;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 18;
+
+ // Data Type: STRING_LIST. List of recommended property IDs to show together
+ // with this item.
+ SIMILAR_PROPERTY_IDS = 19;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 20;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 21;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/income_range_type.proto b/google/ads/googleads/v1/enums/income_range_type.proto
new file mode 100644
index 000000000..c0495d402
--- /dev/null
+++ b/google/ads/googleads/v1/enums/income_range_type.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "IncomeRangeTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing income range types.
+
+// Container for enum describing the type of demographic income ranges.
+message IncomeRangeTypeEnum {
+ // The type of demographic income ranges (e.g. between 0% to 50%).
+ enum IncomeRangeType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // 0%-50%.
+ INCOME_RANGE_0_50 = 510001;
+
+ // 50% to 60%.
+ INCOME_RANGE_50_60 = 510002;
+
+ // 60% to 70%.
+ INCOME_RANGE_60_70 = 510003;
+
+ // 70% to 80%.
+ INCOME_RANGE_70_80 = 510004;
+
+ // 80% to 90%.
+ INCOME_RANGE_80_90 = 510005;
+
+ // Greater than 90%.
+ INCOME_RANGE_90_UP = 510006;
+
+ // Undetermined income range.
+ INCOME_RANGE_UNDETERMINED = 510000;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/interaction_event_type.proto b/google/ads/googleads/v1/enums/interaction_event_type.proto
new file mode 100644
index 000000000..6554146f1
--- /dev/null
+++ b/google/ads/googleads/v1/enums/interaction_event_type.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "InteractionEventTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing types of payable and free interactions.
+
+// Container for enum describing types of payable and free interactions.
+message InteractionEventTypeEnum {
+ // Enum describing possible types of payable and free interactions.
+ enum InteractionEventType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Click to site. In most cases, this interaction navigates to an external
+ // location, usually the advertiser's landing page. This is also the default
+ // InteractionEventType for click events.
+ CLICK = 2;
+
+ // The user's expressed intent to engage with the ad in-place.
+ ENGAGEMENT = 3;
+
+ // User viewed a video ad.
+ VIDEO_VIEW = 4;
+
+ // The default InteractionEventType for ad conversion events.
+ // This is used when an ad conversion row does NOT indicate
+ // that the free interactions (i.e., the ad conversions)
+ // should be 'promoted' and reported as part of the core metrics.
+ // These are simply other (ad) conversions.
+ NONE = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/interaction_type.proto b/google/ads/googleads/v1/enums/interaction_type.proto
new file mode 100644
index 000000000..d0b56ff7d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/interaction_type.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "InteractionTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing interaction types.
+
+// Container for enum describing possible interaction types.
+message InteractionTypeEnum {
+ // Enum describing possible interaction types.
+ enum InteractionType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Calls.
+ CALLS = 8000;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/job_placeholder_field.proto b/google/ads/googleads/v1/enums/job_placeholder_field.proto
new file mode 100644
index 000000000..e6e1f7075
--- /dev/null
+++ b/google/ads/googleads/v1/enums/job_placeholder_field.proto
@@ -0,0 +1,116 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "JobsPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Job placeholder fields.
+
+// Values for Job placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message JobPlaceholderFieldEnum {
+ // Possible values for Job placeholder fields.
+ enum JobPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Required. If only JOB_ID is specified, then it must be
+ // unique. If both JOB_ID and LOCATION_ID are specified, then the
+ // pair must be unique.
+ // ID) pair must be unique.
+ JOB_ID = 2;
+
+ // Data Type: STRING. Combination of JOB_ID and LOCATION_ID must be unique
+ // per offer.
+ LOCATION_ID = 3;
+
+ // Data Type: STRING. Required. Main headline with job title to be shown in
+ // dynamic ad.
+ TITLE = 4;
+
+ // Data Type: STRING. Job subtitle to be shown in dynamic ad.
+ SUBTITLE = 5;
+
+ // Data Type: STRING. Description of job to be shown in dynamic ad.
+ DESCRIPTION = 6;
+
+ // Data Type: URL. Image to be displayed in the ad. Highly recommended for
+ // image ads.
+ IMAGE_URL = 7;
+
+ // Data Type: STRING. Category of property used to group like items together
+ // for recommendation engine.
+ CATEGORY = 8;
+
+ // Data Type: STRING_LIST. Keywords used for product retrieval.
+ CONTEXTUAL_KEYWORDS = 9;
+
+ // Data Type: STRING. Complete property address, including postal code.
+ ADDRESS = 10;
+
+ // Data Type: STRING. Salary or salary range of job to be shown in dynamic
+ // ad.
+ SALARY = 11;
+
+ // Data Type: URL_LIST. Required. Final URLs to be used in ad when using
+ // Upgraded URLs; the more specific the better (e.g. the individual URL of a
+ // specific job and its location).
+ FINAL_URLS = 12;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 14;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 15;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 16;
+
+ // Data Type: STRING_LIST. List of recommended job IDs to show together with
+ // this item.
+ SIMILAR_JOB_IDS = 17;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 18;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 19;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/keyword_match_type.proto b/google/ads/googleads/v1/enums/keyword_match_type.proto
new file mode 100644
index 000000000..200bb5702
--- /dev/null
+++ b/google/ads/googleads/v1/enums/keyword_match_type.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordMatchTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Keyword match types.
+
+// Message describing Keyword match types.
+message KeywordMatchTypeEnum {
+ // Possible Keyword match types.
+ enum KeywordMatchType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Exact match.
+ EXACT = 2;
+
+ // Phrase match.
+ PHRASE = 3;
+
+ // Broad match.
+ BROAD = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/keyword_plan_competition_level.proto b/google/ads/googleads/v1/enums/keyword_plan_competition_level.proto
new file mode 100644
index 000000000..c221c1718
--- /dev/null
+++ b/google/ads/googleads/v1/enums/keyword_plan_competition_level.proto
@@ -0,0 +1,58 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanCompetitionLevelProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Keyword Planner competition levels.
+
+// Container for enumeration of keyword competition levels. The competition
+// level indicates how competitive ad placement is for a keyword and
+// is determined by the number of advertisers bidding on that keyword relative
+// to all keywords across Google. The competition level can depend on the
+// location and Search Network targeting options you've selected.
+message KeywordPlanCompetitionLevelEnum {
+ // Competition level of a keyword.
+ enum KeywordPlanCompetitionLevel {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Low competition.
+ LOW = 2;
+
+ // Medium competition.
+ MEDIUM = 3;
+
+ // High competition.
+ HIGH = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto b/google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto
new file mode 100644
index 000000000..ac1b68fae
--- /dev/null
+++ b/google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanForecastIntervalProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing keyword plan forecast intervals.
+
+// Container for enumeration of forecast intervals.
+message KeywordPlanForecastIntervalEnum {
+ // Forecast intervals.
+ enum KeywordPlanForecastInterval {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // The next week date range for keyword plan. The next week is based
+ // on the default locale of the user's account and is mostly SUN-SAT or
+ // MON-SUN.
+ // This can be different from next-7 days.
+ NEXT_WEEK = 3;
+
+ // The next month date range for keyword plan.
+ NEXT_MONTH = 4;
+
+ // The next quarter date range for keyword plan.
+ NEXT_QUARTER = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/keyword_plan_network.proto b/google/ads/googleads/v1/enums/keyword_plan_network.proto
new file mode 100644
index 000000000..9caa3ceba
--- /dev/null
+++ b/google/ads/googleads/v1/enums/keyword_plan_network.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanNetworkProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Keyword Planner forecastable network types.
+
+// Container for enumeration of keyword plan forecastable network types.
+message KeywordPlanNetworkEnum {
+ // Enumerates keyword plan forecastable network types.
+ enum KeywordPlanNetwork {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Google Search.
+ GOOGLE_SEARCH = 2;
+
+ // Google Search + Search partners.
+ GOOGLE_SEARCH_AND_PARTNERS = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/label_status.proto b/google/ads/googleads/v1/enums/label_status.proto
new file mode 100644
index 000000000..03636282d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/label_status.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "LabelStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum describing possible status of a label.
+message LabelStatusEnum {
+ // Possible statuses of a label.
+ enum LabelStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Label is enabled.
+ ENABLED = 2;
+
+ // Label is removed.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto b/google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto
new file mode 100644
index 000000000..495c26ca2
--- /dev/null
+++ b/google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "LegacyAppInstallAdAppStoreProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing app store types for a legacy app install ad.
+
+// Container for enum describing app store type in a legacy app install ad.
+message LegacyAppInstallAdAppStoreEnum {
+ // App store type in a legacy app install ad.
+ enum LegacyAppInstallAdAppStore {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Apple iTunes.
+ APPLE_APP_STORE = 2;
+
+ // Google Play.
+ GOOGLE_PLAY = 3;
+
+ // Windows Store.
+ WINDOWS_STORE = 4;
+
+ // Windows Phone Store.
+ WINDOWS_PHONE_STORE = 5;
+
+ // The app is hosted in a Chinese app store.
+ CN_APP_STORE = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/listing_custom_attribute_index.proto b/google/ads/googleads/v1/enums/listing_custom_attribute_index.proto
new file mode 100644
index 000000000..7be818aed
--- /dev/null
+++ b/google/ads/googleads/v1/enums/listing_custom_attribute_index.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ListingCustomAttributeIndexProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing listing custom attributes.
+
+// Container for enum describing the index of the listing custom attribute.
+message ListingCustomAttributeIndexEnum {
+ // The index of the listing custom attribute.
+ enum ListingCustomAttributeIndex {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // First listing custom attribute.
+ INDEX0 = 7;
+
+ // Second listing custom attribute.
+ INDEX1 = 8;
+
+ // Third listing custom attribute.
+ INDEX2 = 9;
+
+ // Fourth listing custom attribute.
+ INDEX3 = 10;
+
+ // Fifth listing custom attribute.
+ INDEX4 = 11;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/listing_group_type.proto b/google/ads/googleads/v1/enums/listing_group_type.proto
new file mode 100644
index 000000000..0df1ff07b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/listing_group_type.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ListingGroupTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing listing groups.
+
+// Container for enum describing the type of the listing group.
+message ListingGroupTypeEnum {
+ // The type of the listing group.
+ enum ListingGroupType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Subdivision of products along some listing dimension. These nodes
+ // are not used by serving to target listing entries, but is purely
+ // to define the structure of the tree.
+ SUBDIVISION = 2;
+
+ // Listing group unit that defines a bid.
+ UNIT = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/local_placeholder_field.proto b/google/ads/googleads/v1/enums/local_placeholder_field.proto
new file mode 100644
index 000000000..cd7a34e9e
--- /dev/null
+++ b/google/ads/googleads/v1/enums/local_placeholder_field.proto
@@ -0,0 +1,120 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "LocalPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Local placeholder fields.
+
+// Values for Local placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message LocalPlaceholderFieldEnum {
+ // Possible values for Local placeholder fields.
+ enum LocalPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Required. Unique ID.
+ DEAL_ID = 2;
+
+ // Data Type: STRING. Required. Main headline with local deal title to be
+ // shown in dynamic ad.
+ DEAL_NAME = 3;
+
+ // Data Type: STRING. Local deal subtitle to be shown in dynamic ad.
+ SUBTITLE = 4;
+
+ // Data Type: STRING. Description of local deal to be shown in dynamic ad.
+ DESCRIPTION = 5;
+
+ // Data Type: STRING. Price to be shown in the ad. Highly recommended for
+ // dynamic ads. Example: "100.00 USD"
+ PRICE = 6;
+
+ // Data Type: STRING. Formatted price to be shown in the ad.
+ // Example: "Starting at $100.00 USD", "$80 - $100"
+ FORMATTED_PRICE = 7;
+
+ // Data Type: STRING. Sale price to be shown in the ad.
+ // Example: "80.00 USD"
+ SALE_PRICE = 8;
+
+ // Data Type: STRING. Formatted sale price to be shown in the ad.
+ // Example: "On sale for $80.00", "$60 - $80"
+ FORMATTED_SALE_PRICE = 9;
+
+ // Data Type: URL. Image to be displayed in the ad.
+ IMAGE_URL = 10;
+
+ // Data Type: STRING. Complete property address, including postal code.
+ ADDRESS = 11;
+
+ // Data Type: STRING. Category of local deal used to group like items
+ // together for recommendation engine.
+ CATEGORY = 12;
+
+ // Data Type: STRING_LIST. Keywords used for product retrieval.
+ CONTEXTUAL_KEYWORDS = 13;
+
+ // Data Type: URL_LIST. Required. Final URLs to be used in ad when using
+ // Upgraded URLs; the more specific the better (e.g. the individual URL of a
+ // specific local deal and its location).
+ FINAL_URLS = 14;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 15;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 16;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 17;
+
+ // Data Type: STRING_LIST. List of recommended local deal IDs to show
+ // together with this item.
+ SIMILAR_DEAL_IDS = 18;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 19;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 20;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto b/google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto
new file mode 100644
index 000000000..a08a90322
--- /dev/null
+++ b/google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "LocationExtensionTargetingCriterionFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Location Extension Targeting criterion fields.
+
+// Values for Location Extension Targeting criterion fields.
+message LocationExtensionTargetingCriterionFieldEnum {
+ // Possible values for Location Extension Targeting criterion fields.
+ enum LocationExtensionTargetingCriterionField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Line 1 of the business address.
+ ADDRESS_LINE_1 = 2;
+
+ // Data Type: STRING. Line 2 of the business address.
+ ADDRESS_LINE_2 = 3;
+
+ // Data Type: STRING. City of the business address.
+ CITY = 4;
+
+ // Data Type: STRING. Province of the business address.
+ PROVINCE = 5;
+
+ // Data Type: STRING. Postal code of the business address.
+ POSTAL_CODE = 6;
+
+ // Data Type: STRING. Country code of the business address.
+ COUNTRY_CODE = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/location_placeholder_field.proto b/google/ads/googleads/v1/enums/location_placeholder_field.proto
new file mode 100644
index 000000000..b5913a8ca
--- /dev/null
+++ b/google/ads/googleads/v1/enums/location_placeholder_field.proto
@@ -0,0 +1,69 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "LocationPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Location placeholder fields.
+
+// Values for Location placeholder fields.
+message LocationPlaceholderFieldEnum {
+ // Possible values for Location placeholder fields.
+ enum LocationPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The name of the business.
+ BUSINESS_NAME = 2;
+
+ // Data Type: STRING. Line 1 of the business address.
+ ADDRESS_LINE_1 = 3;
+
+ // Data Type: STRING. Line 2 of the business address.
+ ADDRESS_LINE_2 = 4;
+
+ // Data Type: STRING. City of the business address.
+ CITY = 5;
+
+ // Data Type: STRING. Province of the business address.
+ PROVINCE = 6;
+
+ // Data Type: STRING. Postal code of the business address.
+ POSTAL_CODE = 7;
+
+ // Data Type: STRING. Country code of the business address.
+ COUNTRY_CODE = 8;
+
+ // Data Type: STRING. Phone number of the business.
+ PHONE_NUMBER = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/manager_link_status.proto b/google/ads/googleads/v1/enums/manager_link_status.proto
new file mode 100644
index 000000000..ba43fb0bf
--- /dev/null
+++ b/google/ads/googleads/v1/enums/manager_link_status.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ManagerLinkStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum describing possible status of a manager and client link.
+message ManagerLinkStatusEnum {
+ // Possible statuses of a link.
+ enum ManagerLinkStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Indicates current in-effect relationship
+ ACTIVE = 2;
+
+ // Indicates terminated relationship
+ INACTIVE = 3;
+
+ // Indicates relationship has been requested by manager, but the client
+ // hasn't accepted yet.
+ PENDING = 4;
+
+ // Relationship was requested by the manager, but the client has refused.
+ REFUSED = 5;
+
+ // Indicates relationship has been requested by manager, but manager
+ // canceled it.
+ CANCELED = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/matching_function_context_type.proto b/google/ads/googleads/v1/enums/matching_function_context_type.proto
new file mode 100644
index 000000000..fa078428b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/matching_function_context_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MatchingFunctionContextTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing matching function context types.
+
+// Container for context types for an operand in a matching function.
+message MatchingFunctionContextTypeEnum {
+ // Possible context types for an operand in a matching function.
+ enum MatchingFunctionContextType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Feed item id in the request context.
+ FEED_ITEM_ID = 2;
+
+ // The device being used (possible values are 'Desktop' or 'Mobile').
+ DEVICE_NAME = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/matching_function_operator.proto b/google/ads/googleads/v1/enums/matching_function_operator.proto
new file mode 100644
index 000000000..d4e36840d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/matching_function_operator.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MatchingFunctionOperatorProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing matching function operators.
+
+// Container for enum describing matching function operator.
+message MatchingFunctionOperatorEnum {
+ // Possible operators in a matching function.
+ enum MatchingFunctionOperator {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The IN operator.
+ IN = 2;
+
+ // The IDENTITY operator.
+ IDENTITY = 3;
+
+ // The EQUALS operator
+ EQUALS = 4;
+
+ // Operator that takes two or more operands that are of type
+ // FunctionOperand and checks that all the operands evaluate to true.
+ // For functions related to ad formats, all the operands must be in
+ // left_operands.
+ AND = 5;
+
+ // Operator that returns true if the elements in left_operands contain any
+ // of the elements in right_operands. Otherwise, return false. The
+ // right_operands must contain at least 1 and no more than 3
+ // ConstantOperands.
+ CONTAINS_ANY = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/media_type.proto b/google/ads/googleads/v1/enums/media_type.proto
new file mode 100644
index 000000000..e6de09486
--- /dev/null
+++ b/google/ads/googleads/v1/enums/media_type.proto
@@ -0,0 +1,65 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MediaTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing media types.
+
+// Container for enum describing the types of media.
+message MediaTypeEnum {
+ // The type of media.
+ enum MediaType {
+ // The media type has not been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // Static image, used for image ad.
+ IMAGE = 2;
+
+ // Small image, used for map ad.
+ ICON = 3;
+
+ // ZIP file, used in fields of template ads.
+ MEDIA_BUNDLE = 4;
+
+ // Audio file.
+ AUDIO = 5;
+
+ // Video file.
+ VIDEO = 6;
+
+ // Animated image, such as animated GIF.
+ DYNAMIC_IMAGE = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/merchant_center_link_status.proto b/google/ads/googleads/v1/enums/merchant_center_link_status.proto
new file mode 100644
index 000000000..a8fd95cf9
--- /dev/null
+++ b/google/ads/googleads/v1/enums/merchant_center_link_status.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MerchantCenterLinkStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Merchant Center link statuses.
+
+// Container for enum describing possible statuses of a Google Merchant Center
+// link.
+message MerchantCenterLinkStatusEnum {
+ // Describes the possible statuses for a link between a Google Ads customer
+ // and a Google Merchant Center account.
+ enum MerchantCenterLinkStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The link is enabled.
+ ENABLED = 2;
+
+ // The link has no effect. It was proposed by the Merchant Center Account
+ // owner and hasn't been confirmed by the customer.
+ PENDING = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/message_placeholder_field.proto b/google/ads/googleads/v1/enums/message_placeholder_field.proto
new file mode 100644
index 000000000..0d92aa6ae
--- /dev/null
+++ b/google/ads/googleads/v1/enums/message_placeholder_field.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MessagePlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Message placeholder fields.
+
+// Values for Message placeholder fields.
+message MessagePlaceholderFieldEnum {
+ // Possible values for Message placeholder fields.
+ enum MessagePlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The name of your business.
+ BUSINESS_NAME = 2;
+
+ // Data Type: STRING. Country code of phone number.
+ COUNTRY_CODE = 3;
+
+ // Data Type: STRING. A phone number that's capable of sending and receiving
+ // text messages.
+ PHONE_NUMBER = 4;
+
+ // Data Type: STRING. The text that will go in your click-to-message ad.
+ MESSAGE_EXTENSION_TEXT = 5;
+
+ // Data Type: STRING. The message text automatically shows in people's
+ // messaging apps when they tap to send you a message.
+ MESSAGE_TEXT = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/mime_type.proto b/google/ads/googleads/v1/enums/mime_type.proto
new file mode 100644
index 000000000..33f2bc36e
--- /dev/null
+++ b/google/ads/googleads/v1/enums/mime_type.proto
@@ -0,0 +1,83 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MimeTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing mime types.
+
+// Container for enum describing the mime types.
+message MimeTypeEnum {
+ // The mime type
+ enum MimeType {
+ // The mime type has not been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // MIME type of image/jpeg.
+ IMAGE_JPEG = 2;
+
+ // MIME type of image/gif.
+ IMAGE_GIF = 3;
+
+ // MIME type of image/png.
+ IMAGE_PNG = 4;
+
+ // MIME type of application/x-shockwave-flash.
+ FLASH = 5;
+
+ // MIME type of text/html.
+ TEXT_HTML = 6;
+
+ // MIME type of application/pdf.
+ PDF = 7;
+
+ // MIME type of application/msword.
+ MSWORD = 8;
+
+ // MIME type of application/vnd.ms-excel.
+ MSEXCEL = 9;
+
+ // MIME type of application/rtf.
+ RTF = 10;
+
+ // MIME type of audio/wav.
+ AUDIO_WAV = 11;
+
+ // MIME type of audio/mp3.
+ AUDIO_MP3 = 12;
+
+ // MIME type of application/x-html5-ad-zip.
+ HTML5_AD_ZIP = 13;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/minute_of_hour.proto b/google/ads/googleads/v1/enums/minute_of_hour.proto
new file mode 100644
index 000000000..646a5a6ff
--- /dev/null
+++ b/google/ads/googleads/v1/enums/minute_of_hour.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MinuteOfHourProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing days of week.
+
+// Container for enumeration of quarter-hours.
+message MinuteOfHourEnum {
+ // Enumerates of quarter-hours. E.g. "FIFTEEN"
+ enum MinuteOfHour {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Zero minutes past the hour.
+ ZERO = 2;
+
+ // Fifteen minutes past the hour.
+ FIFTEEN = 3;
+
+ // Thirty minutes past the hour.
+ THIRTY = 4;
+
+ // Forty-five minutes past the hour.
+ FORTY_FIVE = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/mobile_device_type.proto b/google/ads/googleads/v1/enums/mobile_device_type.proto
new file mode 100644
index 000000000..9868adc73
--- /dev/null
+++ b/google/ads/googleads/v1/enums/mobile_device_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MobileDeviceTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing mobile device types.
+
+// Container for enum describing the types of mobile device.
+message MobileDeviceTypeEnum {
+ // The type of mobile device.
+ enum MobileDeviceType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Mobile phones.
+ MOBILE = 2;
+
+ // Tablets.
+ TABLET = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/month_of_year.proto b/google/ads/googleads/v1/enums/month_of_year.proto
new file mode 100644
index 000000000..5bb2dcfd5
--- /dev/null
+++ b/google/ads/googleads/v1/enums/month_of_year.proto
@@ -0,0 +1,81 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MonthOfYearProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing days of week.
+
+// Container for enumeration of months of the year, e.g., "January".
+message MonthOfYearEnum {
+ // Enumerates months of the year, e.g., "January".
+ enum MonthOfYear {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // January.
+ JANUARY = 2;
+
+ // February.
+ FEBRUARY = 3;
+
+ // March.
+ MARCH = 4;
+
+ // April.
+ APRIL = 5;
+
+ // May.
+ MAY = 6;
+
+ // June.
+ JUNE = 7;
+
+ // July.
+ JULY = 8;
+
+ // August.
+ AUGUST = 9;
+
+ // September.
+ SEPTEMBER = 10;
+
+ // October.
+ OCTOBER = 11;
+
+ // November.
+ NOVEMBER = 12;
+
+ // December.
+ DECEMBER = 13;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/mutate_job_status.proto b/google/ads/googleads/v1/enums/mutate_job_status.proto
new file mode 100644
index 000000000..90de66a77
--- /dev/null
+++ b/google/ads/googleads/v1/enums/mutate_job_status.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "MutateJobStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing mutate job statuses.
+
+// Container for enum describing possible mutate job statuses.
+message MutateJobStatusEnum {
+ // The mutate job statuses.
+ enum MutateJobStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The job is not currently running.
+ PENDING = 2;
+
+ // The job is running.
+ RUNNING = 3;
+
+ // The job is done.
+ DONE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/negative_geo_target_type.proto b/google/ads/googleads/v1/enums/negative_geo_target_type.proto
new file mode 100644
index 000000000..dbabc7f09
--- /dev/null
+++ b/google/ads/googleads/v1/enums/negative_geo_target_type.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "NegativeGeoTargetTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing negative geo target types.
+
+// Container for enum describing possible negative geo target types.
+message NegativeGeoTargetTypeEnum {
+ // The possible negative geo target types.
+ enum NegativeGeoTargetType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Specifies that a user is excluded from seeing the ad if either their
+ // Area of Interest (AOI) or their Location of Presence (LOP) matches the
+ // geo target.
+ DONT_CARE = 2;
+
+ // Specifies that a user is excluded from seeing the ad
+ // only if their Location of Presence (LOP) matches the geo target.
+ LOCATION_OF_PRESENCE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/operating_system_version_operator_type.proto b/google/ads/googleads/v1/enums/operating_system_version_operator_type.proto
new file mode 100644
index 000000000..88a2b4ffb
--- /dev/null
+++ b/google/ads/googleads/v1/enums/operating_system_version_operator_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "OperatingSystemVersionOperatorTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing operating system version operator types.
+
+// Container for enum describing the type of OS operators.
+message OperatingSystemVersionOperatorTypeEnum {
+ // The type of operating system version.
+ enum OperatingSystemVersionOperatorType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Equals to the specified version.
+ EQUALS_TO = 2;
+
+ // Greater than or equals to the specified version.
+ GREATER_THAN_EQUALS_TO = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto b/google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto
new file mode 100644
index 000000000..64501446a
--- /dev/null
+++ b/google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PageOnePromotedStrategyGoalProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding schemes.
+
+// Container for enum describing possible strategy goals: where impressions are
+// desired to be shown on search result pages.
+message PageOnePromotedStrategyGoalEnum {
+ // Enum describing possible strategy goals.
+ enum PageOnePromotedStrategyGoal {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // First page on google.com.
+ FIRST_PAGE = 2;
+
+ // Top slots of the first page on google.com.
+ FIRST_PAGE_PROMOTED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/parental_status_type.proto b/google/ads/googleads/v1/enums/parental_status_type.proto
new file mode 100644
index 000000000..d9b23e458
--- /dev/null
+++ b/google/ads/googleads/v1/enums/parental_status_type.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ParentalStatusTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing parenal status types.
+
+// Container for enum describing the type of demographic parental statuses.
+message ParentalStatusTypeEnum {
+ // The type of parental statuses (e.g. not a parent).
+ enum ParentalStatusType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Parent.
+ PARENT = 300;
+
+ // Not a parent.
+ NOT_A_PARENT = 301;
+
+ // Undetermined parental status.
+ UNDETERMINED = 302;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/payment_mode.proto b/google/ads/googleads/v1/enums/payment_mode.proto
new file mode 100644
index 000000000..774c8ade7
--- /dev/null
+++ b/google/ads/googleads/v1/enums/payment_mode.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PaymentModeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing payment modes.
+
+// Container for enum describing possible payment modes.
+message PaymentModeEnum {
+ // Enum describing possible payment modes.
+ enum PaymentMode {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Pay per click.
+ CLICKS = 4;
+
+ // Pay per conversion value.
+ CONVERSION_VALUE = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/placeholder_type.proto b/google/ads/googleads/v1/enums/placeholder_type.proto
new file mode 100644
index 000000000..4ae04a50b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/placeholder_type.proto
@@ -0,0 +1,122 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PlaceholderTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing feed placeholder types.
+
+// Container for enum describing possible placeholder types for a feed mapping.
+message PlaceholderTypeEnum {
+ // Possible placeholder types for a feed mapping.
+ enum PlaceholderType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Lets you show links in your ad to pages from your website, including the
+ // main landing page.
+ SITELINK = 2;
+
+ // Lets you attach a phone number to an ad, allowing customers to call
+ // directly from the ad.
+ CALL = 3;
+
+ // Lets you provide users with a link that points to a mobile app in
+ // addition to a website.
+ APP = 4;
+
+ // Lets you show locations of businesses from your Google My Business
+ // account in your ad. This helps people find your locations by showing your
+ // ads with your address, a map to your location, or the distance to your
+ // business. This extension type is useful to draw customers to your
+ // brick-and-mortar location.
+ LOCATION = 5;
+
+ // If you sell your product through retail chains, affiliate location
+ // extensions let you show nearby stores that carry your products.
+ AFFILIATE_LOCATION = 6;
+
+ // Lets you include additional text with your search ads that provide
+ // detailed information about your business, including products and services
+ // you offer. Callouts appear in ads at the top and bottom of Google search
+ // results.
+ CALLOUT = 7;
+
+ // Lets you add more info to your ad, specific to some predefined categories
+ // such as types, brands, styles, etc. A minimum of 3 text (SNIPPETS) values
+ // are required.
+ STRUCTURED_SNIPPET = 8;
+
+ // Allows users to see your ad, click an icon, and contact you directly by
+ // text message. With one tap on your ad, people can contact you to book an
+ // appointment, get a quote, ask for information, or request a service.
+ MESSAGE = 9;
+
+ // Lets you display prices for a list of items along with your ads. A price
+ // feed is composed of three to eight price table rows.
+ PRICE = 10;
+
+ // Allows you to highlight sales and other promotions that let users see how
+ // they can save by buying now.
+ PROMOTION = 11;
+
+ // Lets you dynamically inject custom data into the title and description
+ // of your ads.
+ AD_CUSTOMIZER = 12;
+
+ // Indicates that this feed is for education dynamic remarketing.
+ DYNAMIC_EDUCATION = 13;
+
+ // Indicates that this feed is for flight dynamic remarketing.
+ DYNAMIC_FLIGHT = 14;
+
+ // Indicates that this feed is for a custom dynamic remarketing type. Use
+ // this only if the other business types don't apply to your products or
+ // services.
+ DYNAMIC_CUSTOM = 15;
+
+ // Indicates that this feed is for hotels and rentals dynamic remarketing.
+ DYNAMIC_HOTEL = 16;
+
+ // Indicates that this feed is for real estate dynamic remarketing.
+ DYNAMIC_REAL_ESTATE = 17;
+
+ // Indicates that this feed is for travel dynamic remarketing.
+ DYNAMIC_TRAVEL = 18;
+
+ // Indicates that this feed is for local deals dynamic remarketing.
+ DYNAMIC_LOCAL = 19;
+
+ // Indicates that this feed is for job dynamic remarketing.
+ DYNAMIC_JOB = 20;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/placement_type.proto b/google/ads/googleads/v1/enums/placement_type.proto
new file mode 100644
index 000000000..b1eed86ee
--- /dev/null
+++ b/google/ads/googleads/v1/enums/placement_type.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PlacementTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing placement types.
+
+// Container for enum describing possible placement types.
+message PlacementTypeEnum {
+ // Possible placement types for a feed mapping.
+ enum PlacementType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Websites(e.g. 'www.flowers4sale.com').
+ WEBSITE = 2;
+
+ // Mobile application categories(e.g. 'Games').
+ MOBILE_APP_CATEGORY = 3;
+
+ // mobile applications(e.g. 'mobileapp::2-com.whatsthewordanswers').
+ MOBILE_APPLICATION = 4;
+
+ // YouTube videos(e.g. 'youtube.com/video/wtLJPvx7-ys').
+ YOUTUBE_VIDEO = 5;
+
+ // YouTube channels(e.g. 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').
+ YOUTUBE_CHANNEL = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/policy_approval_status.proto b/google/ads/googleads/v1/enums/policy_approval_status.proto
new file mode 100644
index 000000000..22a570b17
--- /dev/null
+++ b/google/ads/googleads/v1/enums/policy_approval_status.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyApprovalStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing policy approval statuses.
+
+// Container for enum describing possible policy approval statuses.
+message PolicyApprovalStatusEnum {
+ // The possible policy approval statuses. When there are several approval
+ // statuses available the most severe one will be used. The order of severity
+ // is DISAPPROVED, AREA_OF_INTEREST_ONLY, APPROVED_LIMITED and APPROVED.
+ enum PolicyApprovalStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // Will not serve.
+ DISAPPROVED = 2;
+
+ // Serves with restrictions.
+ APPROVED_LIMITED = 3;
+
+ // Serves without restrictions.
+ APPROVED = 4;
+
+ // Will not serve in targeted countries, but may serve for users who are
+ // searching for information about the targeted countries.
+ AREA_OF_INTEREST_ONLY = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/policy_review_status.proto b/google/ads/googleads/v1/enums/policy_review_status.proto
new file mode 100644
index 000000000..23a6c9f05
--- /dev/null
+++ b/google/ads/googleads/v1/enums/policy_review_status.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyReviewStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing policy review statuses.
+
+// Container for enum describing possible policy review statuses.
+message PolicyReviewStatusEnum {
+ // The possible policy review statuses.
+ enum PolicyReviewStatus {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // Currently under review.
+ REVIEW_IN_PROGRESS = 2;
+
+ // Primary review complete. Other reviews may be continuing.
+ REVIEWED = 3;
+
+ // The resource has been resubmitted for approval or its policy decision has
+ // been appealed.
+ UNDER_APPEAL = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/policy_topic_entry_type.proto b/google/ads/googleads/v1/enums/policy_topic_entry_type.proto
new file mode 100644
index 000000000..c74ac41bc
--- /dev/null
+++ b/google/ads/googleads/v1/enums/policy_topic_entry_type.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyTopicEntryTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing policy topic entry types.
+
+// Container for enum describing possible policy topic entry types.
+message PolicyTopicEntryTypeEnum {
+ // The possible policy topic entry types.
+ enum PolicyTopicEntryType {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The resource will not be served.
+ PROHIBITED = 2;
+
+ // The resource will not be served under some circumstances.
+ LIMITED = 4;
+
+ // May be of interest, but does not limit how the resource is served.
+ DESCRIPTIVE = 5;
+
+ // Could increase coverage beyond normal.
+ BROADENING = 6;
+
+ // Constrained for all targeted countries, but may serve in other countries
+ // through area of interest.
+ AREA_OF_INTEREST_ONLY = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto b/google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto
new file mode 100644
index 000000000..29101724b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyTopicEvidenceDestinationMismatchUrlTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing policy topic evidence destination mismatch url types.
+
+// Container for enum describing possible policy topic evidence destination
+// mismatch url types.
+message PolicyTopicEvidenceDestinationMismatchUrlTypeEnum {
+ // The possible policy topic evidence destination mismatch url types.
+ enum PolicyTopicEvidenceDestinationMismatchUrlType {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The display url.
+ DISPLAY_URL = 2;
+
+ // The final url.
+ FINAL_URL = 3;
+
+ // The final mobile url.
+ FINAL_MOBILE_URL = 4;
+
+ // The tracking url template, with substituted desktop url.
+ TRACKING_URL = 5;
+
+ // The tracking url template, with substituted mobile url.
+ MOBILE_TRACKING_URL = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/positive_geo_target_type.proto b/google/ads/googleads/v1/enums/positive_geo_target_type.proto
new file mode 100644
index 000000000..2aebd99e9
--- /dev/null
+++ b/google/ads/googleads/v1/enums/positive_geo_target_type.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PositiveGeoTargetTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing positive geo target types.
+
+// Container for enum describing possible positive geo target types.
+message PositiveGeoTargetTypeEnum {
+ // The possible positive geo target types.
+ enum PositiveGeoTargetType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Specifies that either Area of Interest (AOI) or
+ // Location of Presence (LOP) may trigger the ad.
+ DONT_CARE = 2;
+
+ // Specifies that the ad is triggered only if the user's Area of Interest
+ // (AOI) matches.
+ AREA_OF_INTEREST = 3;
+
+ // Specifies that the ad is triggered only if the user's
+ // Location of Presence (LOP) matches.
+ LOCATION_OF_PRESENCE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/preferred_content_type.proto b/google/ads/googleads/v1/enums/preferred_content_type.proto
new file mode 100644
index 000000000..9a070a3d4
--- /dev/null
+++ b/google/ads/googleads/v1/enums/preferred_content_type.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PreferredContentTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing preferred content criterion type.
+
+// Container for enumeration of preferred content criterion type.
+message PreferredContentTypeEnum {
+ // Enumerates preferred content criterion type.
+ enum PreferredContentType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Represents top content on YouTube.
+ YOUTUBE_TOP_CONTENT = 400;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/price_extension_price_qualifier.proto b/google/ads/googleads/v1/enums/price_extension_price_qualifier.proto
new file mode 100644
index 000000000..3a331510e
--- /dev/null
+++ b/google/ads/googleads/v1/enums/price_extension_price_qualifier.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PriceExtensionPriceQualifierProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing price extension price qualifier type.
+
+// Container for enum describing a price extension price qualifier.
+message PriceExtensionPriceQualifierEnum {
+ // Enums of price extension price qualifier.
+ enum PriceExtensionPriceQualifier {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // 'From' qualifier for the price.
+ FROM = 2;
+
+ // 'Up to' qualifier for the price.
+ UP_TO = 3;
+
+ // 'Average' qualifier for the price.
+ AVERAGE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/price_extension_price_unit.proto b/google/ads/googleads/v1/enums/price_extension_price_unit.proto
new file mode 100644
index 000000000..4a38dec7a
--- /dev/null
+++ b/google/ads/googleads/v1/enums/price_extension_price_unit.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PriceExtensionPriceUnitProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing price extension price unit.
+
+// Container for enum describing price extension price unit.
+message PriceExtensionPriceUnitEnum {
+ // Price extension price unit.
+ enum PriceExtensionPriceUnit {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Per hour.
+ PER_HOUR = 2;
+
+ // Per day.
+ PER_DAY = 3;
+
+ // Per week.
+ PER_WEEK = 4;
+
+ // Per month.
+ PER_MONTH = 5;
+
+ // Per year.
+ PER_YEAR = 6;
+
+ // Per night.
+ PER_NIGHT = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/price_extension_type.proto b/google/ads/googleads/v1/enums/price_extension_type.proto
new file mode 100644
index 000000000..c777a3c39
--- /dev/null
+++ b/google/ads/googleads/v1/enums/price_extension_type.proto
@@ -0,0 +1,72 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PriceExtensionTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing price extension type.
+
+// Container for enum describing types for a price extension.
+message PriceExtensionTypeEnum {
+ // Price extension type.
+ enum PriceExtensionType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The type for showing a list of brands.
+ BRANDS = 2;
+
+ // The type for showing a list of events.
+ EVENTS = 3;
+
+ // The type for showing locations relevant to your business.
+ LOCATIONS = 4;
+
+ // The type for showing sub-regions or districts within a city or region.
+ NEIGHBORHOODS = 5;
+
+ // The type for showing a collection of product categories.
+ PRODUCT_CATEGORIES = 6;
+
+ // The type for showing a collection of related product tiers.
+ PRODUCT_TIERS = 7;
+
+ // The type for showing a collection of services offered by your business.
+ SERVICES = 8;
+
+ // The type for showing a collection of service categories.
+ SERVICE_CATEGORIES = 9;
+
+ // The type for showing a collection of related service tiers.
+ SERVICE_TIERS = 10;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/price_placeholder_field.proto b/google/ads/googleads/v1/enums/price_placeholder_field.proto
new file mode 100644
index 000000000..67c6a1795
--- /dev/null
+++ b/google/ads/googleads/v1/enums/price_placeholder_field.proto
@@ -0,0 +1,241 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PricePlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Price placeholder fields.
+
+// Values for Price placeholder fields.
+message PricePlaceholderFieldEnum {
+ // Possible values for Price placeholder fields.
+ enum PricePlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The type of your price feed. Must match one of the
+ // predefined price feed type exactly.
+ TYPE = 2;
+
+ // Data Type: STRING. The qualifier of each price. Must match one of the
+ // predefined price qualifiers exactly.
+ PRICE_QUALIFIER = 3;
+
+ // Data Type: URL. Tracking template for the price feed when using Upgraded
+ // URLs.
+ TRACKING_TEMPLATE = 4;
+
+ // Data Type: STRING. Language of the price feed. Must match one of the
+ // available available locale codes exactly.
+ LANGUAGE = 5;
+
+ // Data Type: STRING. Final URL suffix for the price feed when using
+ // parallel tracking.
+ FINAL_URL_SUFFIX = 6;
+
+ // Data Type: STRING. The header of item 1 of the table.
+ ITEM_1_HEADER = 100;
+
+ // Data Type: STRING. The description of item 1 of the table.
+ ITEM_1_DESCRIPTION = 101;
+
+ // Data Type: MONEY. The price (money with currency) of item 1 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_1_PRICE = 102;
+
+ // Data Type: STRING. The price unit of item 1 of the table. Must match one
+ // of the predefined price units.
+ ITEM_1_UNIT = 103;
+
+ // Data Type: URL_LIST. The final URLs of item 1 of the table when using
+ // Upgraded URLs.
+ ITEM_1_FINAL_URLS = 104;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 1 of the table when
+ // using Upgraded URLs.
+ ITEM_1_FINAL_MOBILE_URLS = 105;
+
+ // Data Type: STRING. The header of item 2 of the table.
+ ITEM_2_HEADER = 200;
+
+ // Data Type: STRING. The description of item 2 of the table.
+ ITEM_2_DESCRIPTION = 201;
+
+ // Data Type: MONEY. The price (money with currency) of item 2 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_2_PRICE = 202;
+
+ // Data Type: STRING. The price unit of item 2 of the table. Must match one
+ // of the predefined price units.
+ ITEM_2_UNIT = 203;
+
+ // Data Type: URL_LIST. The final URLs of item 2 of the table when using
+ // Upgraded URLs.
+ ITEM_2_FINAL_URLS = 204;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 2 of the table when
+ // using Upgraded URLs.
+ ITEM_2_FINAL_MOBILE_URLS = 205;
+
+ // Data Type: STRING. The header of item 3 of the table.
+ ITEM_3_HEADER = 300;
+
+ // Data Type: STRING. The description of item 3 of the table.
+ ITEM_3_DESCRIPTION = 301;
+
+ // Data Type: MONEY. The price (money with currency) of item 3 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_3_PRICE = 302;
+
+ // Data Type: STRING. The price unit of item 3 of the table. Must match one
+ // of the predefined price units.
+ ITEM_3_UNIT = 303;
+
+ // Data Type: URL_LIST. The final URLs of item 3 of the table when using
+ // Upgraded URLs.
+ ITEM_3_FINAL_URLS = 304;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 3 of the table when
+ // using Upgraded URLs.
+ ITEM_3_FINAL_MOBILE_URLS = 305;
+
+ // Data Type: STRING. The header of item 4 of the table.
+ ITEM_4_HEADER = 400;
+
+ // Data Type: STRING. The description of item 4 of the table.
+ ITEM_4_DESCRIPTION = 401;
+
+ // Data Type: MONEY. The price (money with currency) of item 4 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_4_PRICE = 402;
+
+ // Data Type: STRING. The price unit of item 4 of the table. Must match one
+ // of the predefined price units.
+ ITEM_4_UNIT = 403;
+
+ // Data Type: URL_LIST. The final URLs of item 4 of the table when using
+ // Upgraded URLs.
+ ITEM_4_FINAL_URLS = 404;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 4 of the table when
+ // using Upgraded URLs.
+ ITEM_4_FINAL_MOBILE_URLS = 405;
+
+ // Data Type: STRING. The header of item 5 of the table.
+ ITEM_5_HEADER = 500;
+
+ // Data Type: STRING. The description of item 5 of the table.
+ ITEM_5_DESCRIPTION = 501;
+
+ // Data Type: MONEY. The price (money with currency) of item 5 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_5_PRICE = 502;
+
+ // Data Type: STRING. The price unit of item 5 of the table. Must match one
+ // of the predefined price units.
+ ITEM_5_UNIT = 503;
+
+ // Data Type: URL_LIST. The final URLs of item 5 of the table when using
+ // Upgraded URLs.
+ ITEM_5_FINAL_URLS = 504;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 5 of the table when
+ // using Upgraded URLs.
+ ITEM_5_FINAL_MOBILE_URLS = 505;
+
+ // Data Type: STRING. The header of item 6 of the table.
+ ITEM_6_HEADER = 600;
+
+ // Data Type: STRING. The description of item 6 of the table.
+ ITEM_6_DESCRIPTION = 601;
+
+ // Data Type: MONEY. The price (money with currency) of item 6 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_6_PRICE = 602;
+
+ // Data Type: STRING. The price unit of item 6 of the table. Must match one
+ // of the predefined price units.
+ ITEM_6_UNIT = 603;
+
+ // Data Type: URL_LIST. The final URLs of item 6 of the table when using
+ // Upgraded URLs.
+ ITEM_6_FINAL_URLS = 604;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 6 of the table when
+ // using Upgraded URLs.
+ ITEM_6_FINAL_MOBILE_URLS = 605;
+
+ // Data Type: STRING. The header of item 7 of the table.
+ ITEM_7_HEADER = 700;
+
+ // Data Type: STRING. The description of item 7 of the table.
+ ITEM_7_DESCRIPTION = 701;
+
+ // Data Type: MONEY. The price (money with currency) of item 7 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_7_PRICE = 702;
+
+ // Data Type: STRING. The price unit of item 7 of the table. Must match one
+ // of the predefined price units.
+ ITEM_7_UNIT = 703;
+
+ // Data Type: URL_LIST. The final URLs of item 7 of the table when using
+ // Upgraded URLs.
+ ITEM_7_FINAL_URLS = 704;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 7 of the table when
+ // using Upgraded URLs.
+ ITEM_7_FINAL_MOBILE_URLS = 705;
+
+ // Data Type: STRING. The header of item 8 of the table.
+ ITEM_8_HEADER = 800;
+
+ // Data Type: STRING. The description of item 8 of the table.
+ ITEM_8_DESCRIPTION = 801;
+
+ // Data Type: MONEY. The price (money with currency) of item 8 of the table,
+ // e.g., 30 USD. The currency must match one of the available currencies.
+ ITEM_8_PRICE = 802;
+
+ // Data Type: STRING. The price unit of item 8 of the table. Must match one
+ // of the predefined price units.
+ ITEM_8_UNIT = 803;
+
+ // Data Type: URL_LIST. The final URLs of item 8 of the table when using
+ // Upgraded URLs.
+ ITEM_8_FINAL_URLS = 804;
+
+ // Data Type: URL_LIST. The final mobile URLs of item 8 of the table when
+ // using Upgraded URLs.
+ ITEM_8_FINAL_MOBILE_URLS = 805;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/product_bidding_category_level.proto b/google/ads/googleads/v1/enums/product_bidding_category_level.proto
new file mode 100644
index 000000000..2bfdf84da
--- /dev/null
+++ b/google/ads/googleads/v1/enums/product_bidding_category_level.proto
@@ -0,0 +1,58 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ProductBiddingCategoryLevelProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Level of a product bidding category.
+message ProductBiddingCategoryLevelEnum {
+ // Enum describing the level of the product bidding category.
+ enum ProductBiddingCategoryLevel {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Level 1.
+ LEVEL1 = 2;
+
+ // Level 2.
+ LEVEL2 = 3;
+
+ // Level 3.
+ LEVEL3 = 4;
+
+ // Level 4.
+ LEVEL4 = 5;
+
+ // Level 5.
+ LEVEL5 = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/product_bidding_category_status.proto b/google/ads/googleads/v1/enums/product_bidding_category_status.proto
new file mode 100644
index 000000000..10daf7037
--- /dev/null
+++ b/google/ads/googleads/v1/enums/product_bidding_category_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ProductBiddingCategoryStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding schemes.
+
+// Status of the product bidding category.
+message ProductBiddingCategoryStatusEnum {
+ // Enum describing the status of the product bidding category.
+ enum ProductBiddingCategoryStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The category is active and can be used for bidding.
+ ACTIVE = 2;
+
+ // The category is obsolete. Used only for reporting purposes.
+ OBSOLETE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/product_channel.proto b/google/ads/googleads/v1/enums/product_channel.proto
new file mode 100644
index 000000000..c386cec16
--- /dev/null
+++ b/google/ads/googleads/v1/enums/product_channel.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ProductChannelProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding schemes.
+
+// Locality of a product offer.
+message ProductChannelEnum {
+ // Enum describing the locality of a product offer.
+ enum ProductChannel {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The item is sold online.
+ ONLINE = 2;
+
+ // The item is sold in local stores.
+ LOCAL = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/product_channel_exclusivity.proto b/google/ads/googleads/v1/enums/product_channel_exclusivity.proto
new file mode 100644
index 000000000..2060b78dd
--- /dev/null
+++ b/google/ads/googleads/v1/enums/product_channel_exclusivity.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ProductChannelExclusivityProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding schemes.
+
+// Availability of a product offer.
+message ProductChannelExclusivityEnum {
+ // Enum describing the availability of a product offer.
+ enum ProductChannelExclusivity {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The item is sold through one channel only, either local stores or online
+ // as indicated by its ProductChannel.
+ SINGLE_CHANNEL = 2;
+
+ // The item is matched to its online or local stores counterpart, indicating
+ // it is available for purchase in both ShoppingProductChannels.
+ MULTI_CHANNEL = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/product_condition.proto b/google/ads/googleads/v1/enums/product_condition.proto
new file mode 100644
index 000000000..d3fe7b963
--- /dev/null
+++ b/google/ads/googleads/v1/enums/product_condition.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ProductConditionProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding schemes.
+
+// Condition of a product offer.
+message ProductConditionEnum {
+ // Enum describing the condition of a product offer.
+ enum ProductCondition {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The product condition is new.
+ NEW = 3;
+
+ // The product condition is refurbished.
+ REFURBISHED = 4;
+
+ // The product condition is used.
+ USED = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/product_type_level.proto b/google/ads/googleads/v1/enums/product_type_level.proto
new file mode 100644
index 000000000..493152cbe
--- /dev/null
+++ b/google/ads/googleads/v1/enums/product_type_level.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ProductTypeLevelProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing bidding schemes.
+
+// Level of the type of a product offer.
+message ProductTypeLevelEnum {
+ // Enum describing the level of the type of a product offer.
+ enum ProductTypeLevel {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Level 1.
+ LEVEL1 = 7;
+
+ // Level 2.
+ LEVEL2 = 8;
+
+ // Level 3.
+ LEVEL3 = 9;
+
+ // Level 4.
+ LEVEL4 = 10;
+
+ // Level 5.
+ LEVEL5 = 11;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto b/google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto
new file mode 100644
index 000000000..c515a2e0e
--- /dev/null
+++ b/google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PromotionExtensionDiscountModifierProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing promotion extension discount modifier.
+
+// Container for enum describing possible a promotion extension
+// discount modifier.
+message PromotionExtensionDiscountModifierEnum {
+ // A promotion extension discount modifier.
+ enum PromotionExtensionDiscountModifier {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // 'Up to'.
+ UP_TO = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/promotion_extension_occasion.proto b/google/ads/googleads/v1/enums/promotion_extension_occasion.proto
new file mode 100644
index 000000000..bd5593fae
--- /dev/null
+++ b/google/ads/googleads/v1/enums/promotion_extension_occasion.proto
@@ -0,0 +1,158 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PromotionExtensionOccasionProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing promotion extension occasion.
+
+// Container for enum describing a promotion extension occasion.
+// For more information about the occasions please check:
+// https://support.google.com/google-ads/answer/7367521
+message PromotionExtensionOccasionEnum {
+ // A promotion extension occasion.
+ enum PromotionExtensionOccasion {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // New Year's.
+ NEW_YEARS = 2;
+
+ // Chinese New Year.
+ CHINESE_NEW_YEAR = 3;
+
+ // Valentine's Day.
+ VALENTINES_DAY = 4;
+
+ // Easter.
+ EASTER = 5;
+
+ // Mother's Day.
+ MOTHERS_DAY = 6;
+
+ // Father's Day.
+ FATHERS_DAY = 7;
+
+ // Labor Day.
+ LABOR_DAY = 8;
+
+ // Back To School.
+ BACK_TO_SCHOOL = 9;
+
+ // Halloween.
+ HALLOWEEN = 10;
+
+ // Black Friday.
+ BLACK_FRIDAY = 11;
+
+ // Cyber Monday.
+ CYBER_MONDAY = 12;
+
+ // Christmas.
+ CHRISTMAS = 13;
+
+ // Boxing Day.
+ BOXING_DAY = 14;
+
+ // Independence Day in any country.
+ INDEPENDENCE_DAY = 15;
+
+ // National Day in any country.
+ NATIONAL_DAY = 16;
+
+ // End of any season.
+ END_OF_SEASON = 17;
+
+ // Winter Sale.
+ WINTER_SALE = 18;
+
+ // Summer sale.
+ SUMMER_SALE = 19;
+
+ // Fall Sale.
+ FALL_SALE = 20;
+
+ // Spring Sale.
+ SPRING_SALE = 21;
+
+ // Ramadan.
+ RAMADAN = 22;
+
+ // Eid al-Fitr.
+ EID_AL_FITR = 23;
+
+ // Eid al-Adha.
+ EID_AL_ADHA = 24;
+
+ // Singles Day.
+ SINGLES_DAY = 25;
+
+ // Women's Day.
+ WOMENS_DAY = 26;
+
+ // Holi.
+ HOLI = 27;
+
+ // Parent's Day.
+ PARENTS_DAY = 28;
+
+ // St. Nicholas Day.
+ ST_NICHOLAS_DAY = 29;
+
+ // Carnival.
+ CARNIVAL = 30;
+
+ // Epiphany, also known as Three Kings' Day.
+ EPIPHANY = 31;
+
+ // Rosh Hashanah.
+ ROSH_HASHANAH = 32;
+
+ // Passover.
+ PASSOVER = 33;
+
+ // Hanukkah.
+ HANUKKAH = 34;
+
+ // Diwali.
+ DIWALI = 35;
+
+ // Navratri.
+ NAVRATRI = 36;
+
+ // Available in Thai: Songkran.
+ SONGKRAN = 37;
+
+ // Available in Japanese: Year-end Gift.
+ YEAR_END_GIFT = 38;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/promotion_placeholder_field.proto b/google/ads/googleads/v1/enums/promotion_placeholder_field.proto
new file mode 100644
index 000000000..d253abf44
--- /dev/null
+++ b/google/ads/googleads/v1/enums/promotion_placeholder_field.proto
@@ -0,0 +1,96 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "PromotionPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Promotion placeholder fields.
+
+// Values for Promotion placeholder fields.
+message PromotionPlaceholderFieldEnum {
+ // Possible values for Promotion placeholder fields.
+ enum PromotionPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The text that appears on the ad when the extension is
+ // shown.
+ PROMOTION_TARGET = 2;
+
+ // Data Type: STRING. Allows you to add "up to" phrase to the promotion,
+ // in case you have variable promotion rates.
+ DISCOUNT_MODIFIER = 3;
+
+ // Data Type: INT64. Takes a value in micros, where 1 million micros
+ // represents 1%, and is shown as a percentage when rendered.
+ PERCENT_OFF = 4;
+
+ // Data Type: MONEY. Requires a currency and an amount of money.
+ MONEY_AMOUNT_OFF = 5;
+
+ // Data Type: STRING. A string that the user enters to get the discount.
+ PROMOTION_CODE = 6;
+
+ // Data Type: MONEY. A minimum spend before the user qualifies for the
+ // promotion.
+ ORDERS_OVER_AMOUNT = 7;
+
+ // Data Type: DATE. The start date of the promotion.
+ PROMOTION_START = 8;
+
+ // Data Type: DATE. The end date of the promotion.
+ PROMOTION_END = 9;
+
+ // Data Type: STRING. Describes the associated event for the promotion using
+ // one of the PromotionExtensionOccasion enum values, for example NEW_YEARS.
+ OCCASION = 10;
+
+ // Data Type: URL_LIST. Final URLs to be used in the ad when using Upgraded
+ // URLs.
+ FINAL_URLS = 11;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 12;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 13;
+
+ // Data Type: STRING. A string represented by a language code for the
+ // promotion.
+ LANGUAGE = 14;
+
+ // Data Type: STRING. Final URL suffix for the ad when using parallel
+ // tracking.
+ FINAL_URL_SUFFIX = 15;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/proximity_radius_units.proto b/google/ads/googleads/v1/enums/proximity_radius_units.proto
new file mode 100644
index 000000000..bfd35f1f9
--- /dev/null
+++ b/google/ads/googleads/v1/enums/proximity_radius_units.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ProximityRadiusUnitsProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing proximity radius units.
+
+// Container for enum describing unit of radius in proximity.
+message ProximityRadiusUnitsEnum {
+ // The unit of radius distance in proximity (e.g. MILES)
+ enum ProximityRadiusUnits {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Miles
+ MILES = 2;
+
+ // Kilometers
+ KILOMETERS = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/quality_score_bucket.proto b/google/ads/googleads/v1/enums/quality_score_bucket.proto
new file mode 100644
index 000000000..4b845c0b8
--- /dev/null
+++ b/google/ads/googleads/v1/enums/quality_score_bucket.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "QualityScoreBucketProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing quality score buckets.
+
+// The relative performance compared to other advertisers.
+message QualityScoreBucketEnum {
+ // Enum listing the possible quality score buckets.
+ enum QualityScoreBucket {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Quality of the creative is below average.
+ BELOW_AVERAGE = 2;
+
+ // Quality of the creative is average.
+ AVERAGE = 3;
+
+ // Quality of the creative is above average.
+ ABOVE_AVERAGE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/real_estate_placeholder_field.proto b/google/ads/googleads/v1/enums/real_estate_placeholder_field.proto
new file mode 100644
index 000000000..f7df12d94
--- /dev/null
+++ b/google/ads/googleads/v1/enums/real_estate_placeholder_field.proto
@@ -0,0 +1,116 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "RealEstatePlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Real Estate placeholder fields.
+
+// Values for Real Estate placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message RealEstatePlaceholderFieldEnum {
+ // Possible values for Real Estate placeholder fields.
+ enum RealEstatePlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Unique ID.
+ LISTING_ID = 2;
+
+ // Data Type: STRING. Main headline with listing name to be shown in dynamic
+ // ad.
+ LISTING_NAME = 3;
+
+ // Data Type: STRING. City name to be shown in dynamic ad.
+ CITY_NAME = 4;
+
+ // Data Type: STRING. Description of listing to be shown in dynamic ad.
+ DESCRIPTION = 5;
+
+ // Data Type: STRING. Complete listing address, including postal code.
+ ADDRESS = 6;
+
+ // Data Type: STRING. Price to be shown in the ad.
+ // Example: "100.00 USD"
+ PRICE = 7;
+
+ // Data Type: STRING. Formatted price to be shown in the ad.
+ // Example: "Starting at $100.00 USD", "$80 - $100"
+ FORMATTED_PRICE = 8;
+
+ // Data Type: URL. Image to be displayed in the ad.
+ IMAGE_URL = 9;
+
+ // Data Type: STRING. Type of property (house, condo, apartment, etc.) used
+ // to group like items together for recommendation engine.
+ PROPERTY_TYPE = 10;
+
+ // Data Type: STRING. Type of listing (resale, rental, foreclosure, etc.)
+ // used to group like items together for recommendation engine.
+ LISTING_TYPE = 11;
+
+ // Data Type: STRING_LIST. Keywords used for product retrieval.
+ CONTEXTUAL_KEYWORDS = 12;
+
+ // Data Type: URL_LIST. Final URLs to be used in ad when using Upgraded
+ // URLs; the more specific the better (e.g. the individual URL of a specific
+ // listing and its location).
+ FINAL_URLS = 13;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 14;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 15;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 16;
+
+ // Data Type: STRING_LIST. List of recommended listing IDs to show together
+ // with this item.
+ SIMILAR_LISTING_IDS = 17;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 18;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 19;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/recommendation_type.proto b/google/ads/googleads/v1/enums/recommendation_type.proto
new file mode 100644
index 000000000..112bf8cc2
--- /dev/null
+++ b/google/ads/googleads/v1/enums/recommendation_type.proto
@@ -0,0 +1,84 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "RecommendationTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Recommendation types.
+
+// Container for enum describing types of recommendations.
+message RecommendationTypeEnum {
+ // Types of recommendations.
+ enum RecommendationType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Budget recommendation for budget constrained campaigns.
+ CAMPAIGN_BUDGET = 2;
+
+ // Keyword recommendation.
+ KEYWORD = 3;
+
+ // Recommendation to add a new text ad.
+ TEXT_AD = 4;
+
+ // Recommendation to update a campaign to use a Target CPA bidding strategy.
+ TARGET_CPA_OPT_IN = 5;
+
+ // Recommendation to update a campaign to use the Maximize Conversions
+ // bidding strategy.
+ MAXIMIZE_CONVERSIONS_OPT_IN = 6;
+
+ // Recommendation to enable Enhanced Cost Per Click for a campaign.
+ ENHANCED_CPC_OPT_IN = 7;
+
+ // Recommendation to start showing your campaign's ads on Google Search
+ // Partners Websites.
+ SEARCH_PARTNERS_OPT_IN = 8;
+
+ // Recommendation to update a campaign to use a Maximize Clicks bidding
+ // strategy.
+ MAXIMIZE_CLICKS_OPT_IN = 9;
+
+ // Recommendation to start using the "Optimize" ad rotation setting for the
+ // given ad group.
+ OPTIMIZE_AD_ROTATION = 10;
+
+ // Recommendation to change an existing keyword from one match type to a
+ // broader match type.
+ KEYWORD_MATCH_TYPE = 14;
+
+ // Recommendation to move unused budget from one budget to a constrained
+ // budget.
+ MOVE_UNUSED_BUDGET = 15;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/search_term_match_type.proto b/google/ads/googleads/v1/enums/search_term_match_type.proto
new file mode 100644
index 000000000..9b9fa73de
--- /dev/null
+++ b/google/ads/googleads/v1/enums/search_term_match_type.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SearchTermMatchTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing search term match types.
+
+// Container for enum describing match types for a keyword triggering an ad.
+message SearchTermMatchTypeEnum {
+ // Possible match types for a keyword triggering an ad, including variants.
+ enum SearchTermMatchType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Broad match.
+ BROAD = 2;
+
+ // Exact match.
+ EXACT = 3;
+
+ // Phrase match.
+ PHRASE = 4;
+
+ // Exact match (close variant).
+ NEAR_EXACT = 5;
+
+ // Phrase match (close variant).
+ NEAR_PHRASE = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/search_term_targeting_status.proto b/google/ads/googleads/v1/enums/search_term_targeting_status.proto
new file mode 100644
index 000000000..573aaac55
--- /dev/null
+++ b/google/ads/googleads/v1/enums/search_term_targeting_status.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SearchTermTargetingStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing search term targeting statuses.
+
+// Container for enum indicating whether a search term is one of your targeted
+// or excluded keywords.
+message SearchTermTargetingStatusEnum {
+ // Indicates whether the search term is one of your targeted or excluded
+ // keywords.
+ enum SearchTermTargetingStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Search term is added to targeted keywords.
+ ADDED = 2;
+
+ // Search term matches a negative keyword.
+ EXCLUDED = 3;
+
+ // Search term has been both added and excluded.
+ ADDED_EXCLUDED = 4;
+
+ // Search term is neither targeted nor excluded.
+ NONE = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/served_asset_field_type.proto b/google/ads/googleads/v1/enums/served_asset_field_type.proto
new file mode 100644
index 000000000..6df1a53fb
--- /dev/null
+++ b/google/ads/googleads/v1/enums/served_asset_field_type.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "ServedAssetFieldTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing policy review statuses.
+
+// Container for enum describing possible asset field types.
+message ServedAssetFieldTypeEnum {
+ // The possible asset field types.
+ enum ServedAssetFieldType {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // The received value is not known in this version.
+ //
+ // This is a response-only value.
+ UNKNOWN = 1;
+
+ // The asset is used in headline 1.
+ HEADLINE_1 = 2;
+
+ // The asset is used in headline 2.
+ HEADLINE_2 = 3;
+
+ // The asset is used in headline 3.
+ HEADLINE_3 = 4;
+
+ // The asset is used in description 1.
+ DESCRIPTION_1 = 5;
+
+ // The asset is used in description 2.
+ DESCRIPTION_2 = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/shared_set_status.proto b/google/ads/googleads/v1/enums/shared_set_status.proto
new file mode 100644
index 000000000..3baaee024
--- /dev/null
+++ b/google/ads/googleads/v1/enums/shared_set_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SharedSetStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing shared set statuses.
+
+// Container for enum describing types of shared set statuses.
+message SharedSetStatusEnum {
+ // Enum listing the possible shared set statuses.
+ enum SharedSetStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The shared set is enabled.
+ ENABLED = 2;
+
+ // The shared set is removed and can no longer be used.
+ REMOVED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/shared_set_type.proto b/google/ads/googleads/v1/enums/shared_set_type.proto
new file mode 100644
index 000000000..e6ee64f1e
--- /dev/null
+++ b/google/ads/googleads/v1/enums/shared_set_type.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SharedSetTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing shared set types.
+
+// Container for enum describing types of shared sets.
+message SharedSetTypeEnum {
+ // Enum listing the possible shared set types.
+ enum SharedSetType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // A set of keywords that can be excluded from targeting.
+ NEGATIVE_KEYWORDS = 2;
+
+ // A set of placements that can be excluded from targeting.
+ NEGATIVE_PLACEMENTS = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/sitelink_placeholder_field.proto b/google/ads/googleads/v1/enums/sitelink_placeholder_field.proto
new file mode 100644
index 000000000..09bc75114
--- /dev/null
+++ b/google/ads/googleads/v1/enums/sitelink_placeholder_field.proto
@@ -0,0 +1,70 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SitelinkPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Sitelink placeholder fields.
+
+// Values for Sitelink placeholder fields.
+message SitelinkPlaceholderFieldEnum {
+ // Possible values for Sitelink placeholder fields.
+ enum SitelinkPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The link text for your sitelink.
+ TEXT = 2;
+
+ // Data Type: STRING. First line of the sitelink description.
+ LINE_1 = 3;
+
+ // Data Type: STRING. Second line of the sitelink description.
+ LINE_2 = 4;
+
+ // Data Type: URL_LIST. Final URLs for the sitelink when using Upgraded
+ // URLs.
+ FINAL_URLS = 5;
+
+ // Data Type: URL_LIST. Final Mobile URLs for the sitelink when using
+ // Upgraded URLs.
+ FINAL_MOBILE_URLS = 6;
+
+ // Data Type: URL. Tracking template for the sitelink when using Upgraded
+ // URLs.
+ TRACKING_URL = 7;
+
+ // Data Type: STRING. Final URL suffix for sitelink when using parallel
+ // tracking.
+ FINAL_URL_SUFFIX = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/slot.proto b/google/ads/googleads/v1/enums/slot.proto
new file mode 100644
index 000000000..b3970b1e3
--- /dev/null
+++ b/google/ads/googleads/v1/enums/slot.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SlotProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing slots.
+
+// Container for enumeration of possible positions of the Ad.
+message SlotEnum {
+ // Enumerates possible positions of the Ad.
+ enum Slot {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The value is unknown in this version.
+ UNKNOWN = 1;
+
+ // Google search: Side.
+ SEARCH_SIDE = 2;
+
+ // Google search: Top.
+ SEARCH_TOP = 3;
+
+ // Google search: Other.
+ SEARCH_OTHER = 4;
+
+ // Google Display Network.
+ CONTENT = 5;
+
+ // Search partners: Top.
+ SEARCH_PARTNER_TOP = 6;
+
+ // Search partners: Other.
+ SEARCH_PARTNER_OTHER = 7;
+
+ // Cross-network.
+ MIXED = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/spending_limit_type.proto b/google/ads/googleads/v1/enums/spending_limit_type.proto
new file mode 100644
index 000000000..1072edcbd
--- /dev/null
+++ b/google/ads/googleads/v1/enums/spending_limit_type.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SpendingLimitTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing SpendingLimit types.
+
+// Message describing spending limit types.
+message SpendingLimitTypeEnum {
+ // The possible spending limit types used by certain resources as an
+ // alternative to absolute money values in micros.
+ enum SpendingLimitType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Infinite, indicates unlimited spending power.
+ INFINITE = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto b/google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto
new file mode 100644
index 000000000..43a7b4510
--- /dev/null
+++ b/google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "StructuredSnippetPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Structured Snippet placeholder fields.
+
+// Values for Structured Snippet placeholder fields.
+message StructuredSnippetPlaceholderFieldEnum {
+ // Possible values for Structured Snippet placeholder fields.
+ enum StructuredSnippetPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. The category of snippet of your products/services.
+ // Must match one of the predefined structured snippets headers exactly.
+ // See
+ // https://developers.google.com/adwords/api
+ // /docs/appendix/structured-snippet-headers
+ HEADER = 2;
+
+ // Data Type: STRING_LIST. Text values that describe your products/services.
+ // All text must be family safe. Special or non-ASCII characters are not
+ // permitted. A snippet can be at most 25 characters.
+ SNIPPETS = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/system_managed_entity_source.proto b/google/ads/googleads/v1/enums/system_managed_entity_source.proto
new file mode 100644
index 000000000..a8e404f3d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/system_managed_entity_source.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "SystemManagedEntitySourceProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing system managed entity sources.
+
+// Container for enum describing possible system managed entity sources.
+message SystemManagedResourceSourceEnum {
+ // Enum listing the possible system managed entity sources.
+ enum SystemManagedResourceSource {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Generated ad variations experiment ad.
+ AD_VARIATIONS = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto b/google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto
new file mode 100644
index 000000000..bbf9970ca
--- /dev/null
+++ b/google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto
@@ -0,0 +1,58 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "TargetCpaOptInRecommendationGoalProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing TargetCpaOptIn recommendation goals.
+
+// Container for enum describing goals for TargetCpaOptIn recommendation.
+message TargetCpaOptInRecommendationGoalEnum {
+ // Goal of TargetCpaOptIn recommendation.
+ enum TargetCpaOptInRecommendationGoal {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Recommendation to set Target CPA to maintain the same cost.
+ SAME_COST = 2;
+
+ // Recommendation to set Target CPA to maintain the same conversions.
+ SAME_CONVERSIONS = 3;
+
+ // Recommendation to set Target CPA to maintain the same CPA.
+ SAME_CPA = 4;
+
+ // Recommendation to set Target CPA to a value that is as close as possible
+ // to, yet lower than, the actual CPA (computed for past 28 days).
+ CLOSEST_CPA = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/target_impression_share_location.proto b/google/ads/googleads/v1/enums/target_impression_share_location.proto
new file mode 100644
index 000000000..e2f8b3281
--- /dev/null
+++ b/google/ads/googleads/v1/enums/target_impression_share_location.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "TargetImpressionShareLocationProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing target impression share goal.
+
+// Container for enum describing where on the first search results page the
+// automated bidding system should target impressions for the
+// TargetImpressionShare bidding strategy.
+message TargetImpressionShareLocationEnum {
+ // Enum describing possible goals.
+ enum TargetImpressionShareLocation {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Any location on the web page.
+ ANYWHERE_ON_PAGE = 2;
+
+ // Top box of ads.
+ TOP_OF_PAGE = 3;
+
+ // Top slot in the top box of ads.
+ ABSOLUTE_TOP_OF_PAGE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/targeting_dimension.proto b/google/ads/googleads/v1/enums/targeting_dimension.proto
new file mode 100644
index 000000000..9bb3045ea
--- /dev/null
+++ b/google/ads/googleads/v1/enums/targeting_dimension.proto
@@ -0,0 +1,75 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "TargetingDimensionProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing criteria types.
+
+// The dimensions that can be targeted.
+message TargetingDimensionEnum {
+ // Enum describing possible targeting dimensions.
+ enum TargetingDimension {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Keyword criteria, e.g. 'mars cruise'. KEYWORD may be used as a custom bid
+ // dimension. Keywords are always a targeting dimension, so may not be set
+ // as a target "ALL" dimension with TargetRestriction.
+ KEYWORD = 2;
+
+ // Audience criteria, which include user list, user interest, custom
+ // affinity, and custom in market.
+ AUDIENCE = 3;
+
+ // Topic criteria for targeting categories of content, e.g.
+ // 'category::Animals>Pets' Used for Display and Video targeting.
+ TOPIC = 4;
+
+ // Criteria for targeting gender.
+ GENDER = 5;
+
+ // Criteria for targeting age ranges.
+ AGE_RANGE = 6;
+
+ // Placement criteria, which include websites like 'www.flowers4sale.com',
+ // as well as mobile applications, mobile app categories, YouTube videos,
+ // and YouTube channels.
+ PLACEMENT = 7;
+
+ // Criteria for parental status targeting.
+ PARENTAL_STATUS = 8;
+
+ // Criteria for income range targeting.
+ INCOME_RANGE = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/time_type.proto b/google/ads/googleads/v1/enums/time_type.proto
new file mode 100644
index 000000000..6df17ddb8
--- /dev/null
+++ b/google/ads/googleads/v1/enums/time_type.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "TimeTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing TimeType types.
+
+// Message describing time types.
+message TimeTypeEnum {
+ // The possible time types used by certain resources as an alternative to
+ // absolute timestamps.
+ enum TimeType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // As soon as possible.
+ NOW = 2;
+
+ // An infinite point in the future.
+ FOREVER = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/tracking_code_page_format.proto b/google/ads/googleads/v1/enums/tracking_code_page_format.proto
new file mode 100644
index 000000000..0c006f7fa
--- /dev/null
+++ b/google/ads/googleads/v1/enums/tracking_code_page_format.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "TrackingCodePageFormatProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum describing the format of the web page where the tracking
+// tag and snippet will be installed.
+message TrackingCodePageFormatEnum {
+ // The format of the web page where the tracking tag and snippet will be
+ // installed.
+ enum TrackingCodePageFormat {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Standard HTML page format.
+ HTML = 2;
+
+ // Google AMP page format.
+ AMP = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/tracking_code_type.proto b/google/ads/googleads/v1/enums/tracking_code_type.proto
new file mode 100644
index 000000000..dd03bbb8a
--- /dev/null
+++ b/google/ads/googleads/v1/enums/tracking_code_type.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "TrackingCodeTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Container for enum describing the type of the generated tag snippets for
+// tracking conversions.
+message TrackingCodeTypeEnum {
+ // The type of the generated tag snippets for tracking conversions.
+ enum TrackingCodeType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The snippet that is fired as a result of a website page loading.
+ WEBPAGE = 2;
+
+ // The snippet contains a JavaScript function which fires the tag. This
+ // function is typically called from an onClick handler added to a link or
+ // button element on the page.
+ WEBPAGE_ONCLICK = 3;
+
+ // For embedding on a mobile webpage. The snippet contains a JavaScript
+ // function which fires the tag.
+ CLICK_TO_CALL = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/travel_placeholder_field.proto b/google/ads/googleads/v1/enums/travel_placeholder_field.proto
new file mode 100644
index 000000000..4c7bd3e19
--- /dev/null
+++ b/google/ads/googleads/v1/enums/travel_placeholder_field.proto
@@ -0,0 +1,129 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "TravelPlaceholderFieldProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing Travel placeholder fields.
+
+// Values for Travel placeholder fields.
+// For more information about dynamic remarketing feeds, see
+// https://support.google.com/google-ads/answer/6053288.
+message TravelPlaceholderFieldEnum {
+ // Possible values for Travel placeholder fields.
+ enum TravelPlaceholderField {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Data Type: STRING. Required. Destination id. Example: PAR, LON.
+ // For feed items that only have destination id, destination id must be a
+ // unique key. For feed items that have both destination id and origin id,
+ // then the combination must be a unique key.
+ DESTINATION_ID = 2;
+
+ // Data Type: STRING. Origin id. Example: PAR, LON.
+ // Combination of DESTINATION_ID and ORIGIN_ID must be
+ // unique per offer.
+ ORIGIN_ID = 3;
+
+ // Data Type: STRING. Required. Main headline with name to be shown in
+ // dynamic ad.
+ TITLE = 4;
+
+ // Data Type: STRING. The destination name. Shorter names are recommended.
+ DESTINATION_NAME = 5;
+
+ // Data Type: STRING. Origin name. Shorter names are recommended.
+ ORIGIN_NAME = 6;
+
+ // Data Type: STRING. Price to be shown in the ad. Highly recommended for
+ // dynamic ads.
+ // Example: "100.00 USD"
+ PRICE = 7;
+
+ // Data Type: STRING. Formatted price to be shown in the ad.
+ // Example: "Starting at $100.00 USD", "$80 - $100"
+ FORMATTED_PRICE = 8;
+
+ // Data Type: STRING. Sale price to be shown in the ad.
+ // Example: "80.00 USD"
+ SALE_PRICE = 9;
+
+ // Data Type: STRING. Formatted sale price to be shown in the ad.
+ // Example: "On sale for $80.00", "$60 - $80"
+ FORMATTED_SALE_PRICE = 10;
+
+ // Data Type: URL. Image to be displayed in the ad.
+ IMAGE_URL = 11;
+
+ // Data Type: STRING. Category of travel offer used to group like items
+ // together for recommendation engine.
+ CATEGORY = 12;
+
+ // Data Type: STRING_LIST. Keywords used for product retrieval.
+ CONTEXTUAL_KEYWORDS = 13;
+
+ // Data Type: STRING. Address of travel offer, including postal code.
+ DESTINATION_ADDRESS = 14;
+
+ // Data Type: URL_LIST. Required. Final URLs to be used in ad, when using
+ // Upgraded URLs; the more specific the better (e.g. the individual URL of a
+ // specific travel offer and its location).
+ FINAL_URL = 15;
+
+ // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
+ // URLs.
+ FINAL_MOBILE_URLS = 16;
+
+ // Data Type: URL. Tracking template for the ad when using Upgraded URLs.
+ TRACKING_URL = 17;
+
+ // Data Type: STRING. Android app link. Must be formatted as:
+ // android-app://{package_id}/{scheme}/{host_path}.
+ // The components are defined as follows:
+ // package_id: app ID as specified in Google Play.
+ // scheme: the scheme to pass to the application. Can be HTTP, or a custom
+ // scheme.
+ // host_path: identifies the specific content within your application.
+ ANDROID_APP_LINK = 18;
+
+ // Data Type: STRING_LIST. List of recommended destination IDs to show
+ // together with this item.
+ SIMILAR_DESTINATION_IDS = 19;
+
+ // Data Type: STRING. iOS app link.
+ IOS_APP_LINK = 20;
+
+ // Data Type: INT64. iOS app store ID.
+ IOS_APP_STORE_ID = 21;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto b/google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto
new file mode 100644
index 000000000..65e2c80be
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserInterestTaxonomyTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the UserInterest taxonomy type
+
+// Message describing a UserInterestTaxonomyType.
+message UserInterestTaxonomyTypeEnum {
+ // Enum containing the possible UserInterestTaxonomyTypes.
+ enum UserInterestTaxonomyType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The affinity for this user interest.
+ AFFINITY = 2;
+
+ // The market for this user interest.
+ IN_MARKET = 3;
+
+ // Users known to have installed applications in the specified categories.
+ MOBILE_APP_INSTALL_USER = 4;
+
+ // The geographical location of the interest-based vertical.
+ VERTICAL_GEO = 5;
+
+ // User interest criteria for new smart phone users.
+ NEW_SMART_PHONE_USER = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_access_status.proto b/google/ads/googleads/v1/enums/user_list_access_status.proto
new file mode 100644
index 000000000..72042eb0b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_access_status.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListAccessStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing user list access status.
+
+// Indicates if this client still has access to the list.
+message UserListAccessStatusEnum {
+ // Enum containing possible user list access statuses.
+ enum UserListAccessStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The access is enabled.
+ ENABLED = 2;
+
+ // The access is disabled.
+ DISABLED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_closing_reason.proto b/google/ads/googleads/v1/enums/user_list_closing_reason.proto
new file mode 100644
index 000000000..9155b04d4
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_closing_reason.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListClosingReasonProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing user list closing reason.
+
+// Indicates the reason why the userlist was closed.
+// This enum is only used when a list is auto-closed by the system.
+message UserListClosingReasonEnum {
+ // Enum describing possible user list closing reasons.
+ enum UserListClosingReason {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The userlist was closed because of not being used for over one year.
+ UNUSED = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto b/google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto
new file mode 100644
index 000000000..3c3a62182
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListCombinedRuleOperatorProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Logical operator connecting two rules.
+message UserListCombinedRuleOperatorEnum {
+ // Enum describing possible user list combined rule operators.
+ enum UserListCombinedRuleOperator {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // A AND B.
+ AND = 2;
+
+ // A AND NOT B.
+ AND_NOT = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto b/google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto
new file mode 100644
index 000000000..1542e180d
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListCrmDataSourceTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Indicates source of Crm upload data.
+message UserListCrmDataSourceTypeEnum {
+ // Enum describing possible user list crm data source type.
+ enum UserListCrmDataSourceType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The uploaded data is first-party data.
+ FIRST_PARTY = 2;
+
+ // The uploaded data is from a third-party credit bureau.
+ THIRD_PARTY_CREDIT_BUREAU = 3;
+
+ // The uploaded data is from a third-party voter file.
+ THIRD_PARTY_VOTER_FILE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto b/google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto
new file mode 100644
index 000000000..d2712238c
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListDateRuleItemOperatorProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Supported rule operator for date type.
+message UserListDateRuleItemOperatorEnum {
+ // Enum describing possible user list date rule item operators.
+ enum UserListDateRuleItemOperator {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Equals.
+ EQUALS = 2;
+
+ // Not Equals.
+ NOT_EQUALS = 3;
+
+ // Before.
+ BEFORE = 4;
+
+ // After.
+ AFTER = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto b/google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto
new file mode 100644
index 000000000..f9d96b424
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListLogicalRuleOperatorProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// The logical operator of the rule.
+message UserListLogicalRuleOperatorEnum {
+ // Enum describing possible user list logical rule operators.
+ enum UserListLogicalRuleOperator {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // And - all of the operands.
+ ALL = 2;
+
+ // Or - at least one of the operands.
+ ANY = 3;
+
+ // Not - none of the operands.
+ NONE = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_membership_status.proto b/google/ads/googleads/v1/enums/user_list_membership_status.proto
new file mode 100644
index 000000000..ca2d4d6c8
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_membership_status.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListMembershipStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing user list membership status.
+
+// Membership status of this user list. Indicates whether a user list is open
+// or active. Only open user lists can accumulate more users and can be used for
+// targeting.
+message UserListMembershipStatusEnum {
+ // Enum containing possible user list membership statuses.
+ enum UserListMembershipStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Open status - List is accruing members and can be targeted to.
+ OPEN = 2;
+
+ // Closed status - No new members being added. Cannot be used for targeting.
+ CLOSED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto b/google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto
new file mode 100644
index 000000000..ac462376b
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto
@@ -0,0 +1,61 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListNumberRuleItemOperatorProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Supported rule operator for number type.
+message UserListNumberRuleItemOperatorEnum {
+ // Enum describing possible user list number rule item operators.
+ enum UserListNumberRuleItemOperator {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Greater than.
+ GREATER_THAN = 2;
+
+ // Greater than or equal.
+ GREATER_THAN_OR_EQUAL = 3;
+
+ // Equals.
+ EQUALS = 4;
+
+ // Not equals.
+ NOT_EQUALS = 5;
+
+ // Less than.
+ LESS_THAN = 6;
+
+ // Less than or equal.
+ LESS_THAN_OR_EQUAL = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_prepopulation_status.proto b/google/ads/googleads/v1/enums/user_list_prepopulation_status.proto
new file mode 100644
index 000000000..e0377d8dc
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_prepopulation_status.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListPrepopulationStatusProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Indicates status of prepopulation based on the rule.
+message UserListPrepopulationStatusEnum {
+ // Enum describing possible user list prepopulation status.
+ enum UserListPrepopulationStatus {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Prepopoulation is being requested.
+ REQUESTED = 2;
+
+ // Prepopulation is finished.
+ FINISHED = 3;
+
+ // Prepopulation failed.
+ FAILED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_rule_type.proto b/google/ads/googleads/v1/enums/user_list_rule_type.proto
new file mode 100644
index 000000000..025e1c0e7
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_rule_type.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListRuleTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Rule based user list rule type.
+message UserListRuleTypeEnum {
+ // Enum describing possible user list rule types.
+ enum UserListRuleType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Conjunctive normal form.
+ AND_OF_ORS = 2;
+
+ // Disjunctive normal form.
+ OR_OF_ANDS = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_size_range.proto b/google/ads/googleads/v1/enums/user_list_size_range.proto
new file mode 100644
index 000000000..97301ef25
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_size_range.proto
@@ -0,0 +1,93 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListSizeRangeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing user list size range.
+
+// Size range in terms of number of users of a UserList.
+message UserListSizeRangeEnum {
+ // Enum containing possible user list size ranges.
+ enum UserListSizeRange {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // User list has less than 500 users.
+ LESS_THAN_FIVE_HUNDRED = 2;
+
+ // User list has number of users in range of 500 to 1000.
+ LESS_THAN_ONE_THOUSAND = 3;
+
+ // User list has number of users in range of 1000 to 10000.
+ ONE_THOUSAND_TO_TEN_THOUSAND = 4;
+
+ // User list has number of users in range of 10000 to 50000.
+ TEN_THOUSAND_TO_FIFTY_THOUSAND = 5;
+
+ // User list has number of users in range of 50000 to 100000.
+ FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND = 6;
+
+ // User list has number of users in range of 100000 to 300000.
+ ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND = 7;
+
+ // User list has number of users in range of 300000 to 500000.
+ THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND = 8;
+
+ // User list has number of users in range of 500000 to 1 million.
+ FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION = 9;
+
+ // User list has number of users in range of 1 to 2 millions.
+ ONE_MILLION_TO_TWO_MILLION = 10;
+
+ // User list has number of users in range of 2 to 3 millions.
+ TWO_MILLION_TO_THREE_MILLION = 11;
+
+ // User list has number of users in range of 3 to 5 millions.
+ THREE_MILLION_TO_FIVE_MILLION = 12;
+
+ // User list has number of users in range of 5 to 10 millions.
+ FIVE_MILLION_TO_TEN_MILLION = 13;
+
+ // User list has number of users in range of 10 to 20 millions.
+ TEN_MILLION_TO_TWENTY_MILLION = 14;
+
+ // User list has number of users in range of 20 to 30 millions.
+ TWENTY_MILLION_TO_THIRTY_MILLION = 15;
+
+ // User list has number of users in range of 30 to 50 millions.
+ THIRTY_MILLION_TO_FIFTY_MILLION = 16;
+
+ // User list has over 50 million users.
+ OVER_FIFTY_MILLION = 17;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto b/google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto
new file mode 100644
index 000000000..462b20c76
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto
@@ -0,0 +1,67 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListStringRuleItemOperatorProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Supported rule operator for string type.
+message UserListStringRuleItemOperatorEnum {
+ // Enum describing possible user list string rule item operators.
+ enum UserListStringRuleItemOperator {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Contains.
+ CONTAINS = 2;
+
+ // Equals.
+ EQUALS = 3;
+
+ // Starts with.
+ STARTS_WITH = 4;
+
+ // Ends with.
+ ENDS_WITH = 5;
+
+ // Not equals.
+ NOT_EQUALS = 6;
+
+ // Not contains.
+ NOT_CONTAINS = 7;
+
+ // Not starts with.
+ NOT_STARTS_WITH = 8;
+
+ // Not ends with.
+ NOT_ENDS_WITH = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/user_list_type.proto b/google/ads/googleads/v1/enums/user_list_type.proto
new file mode 100644
index 000000000..be881ab50
--- /dev/null
+++ b/google/ads/googleads/v1/enums/user_list_type.proto
@@ -0,0 +1,64 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "UserListTypeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing user list type.
+
+// The user list types.
+message UserListTypeEnum {
+ // Enum containing possible user list types.
+ enum UserListType {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // UserList represented as a collection of conversion types.
+ REMARKETING = 2;
+
+ // UserList represented as a combination of other user lists/interests.
+ LOGICAL = 3;
+
+ // UserList created in the Google Ad Manager platform.
+ EXTERNAL_REMARKETING = 4;
+
+ // UserList associated with a rule.
+ RULE_BASED = 5;
+
+ // UserList with users similar to users of another UserList.
+ SIMILAR = 6;
+
+ // UserList of first-party CRM data provided by advertiser in the form of
+ // emails or other formats.
+ CRM_BASED = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto b/google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto
new file mode 100644
index 000000000..330b9f577
--- /dev/null
+++ b/google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "VanityPharmaDisplayUrlModeProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing vanity pharma display url modes.
+
+// The display mode for vanity pharma URLs.
+message VanityPharmaDisplayUrlModeEnum {
+ // Enum describing possible display modes for vanity pharma URLs.
+ enum VanityPharmaDisplayUrlMode {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Replace vanity pharma URL with manufacturer website url.
+ MANUFACTURER_WEBSITE_URL = 2;
+
+ // Replace vanity pharma URL with description of the website.
+ WEBSITE_DESCRIPTION = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/vanity_pharma_text.proto b/google/ads/googleads/v1/enums/vanity_pharma_text.proto
new file mode 100644
index 000000000..f68c6554a
--- /dev/null
+++ b/google/ads/googleads/v1/enums/vanity_pharma_text.proto
@@ -0,0 +1,88 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "VanityPharmaTextProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing vanity pharma texts.
+
+// The text that will be displayed in display URL of the text ad when website
+// description is the selected display mode for vanity pharma URLs.
+message VanityPharmaTextEnum {
+ // Enum describing possible text.
+ enum VanityPharmaText {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Prescription treatment website with website content in English.
+ PRESCRIPTION_TREATMENT_WEBSITE_EN = 2;
+
+ // Prescription treatment website with website content in Spanish
+ // (Sitio de tratamientos con receta).
+ PRESCRIPTION_TREATMENT_WEBSITE_ES = 3;
+
+ // Prescription device website with website content in English.
+ PRESCRIPTION_DEVICE_WEBSITE_EN = 4;
+
+ // Prescription device website with website content in Spanish (Sitio de
+ // dispositivos con receta).
+ PRESCRIPTION_DEVICE_WEBSITE_ES = 5;
+
+ // Medical device website with website content in English.
+ MEDICAL_DEVICE_WEBSITE_EN = 6;
+
+ // Medical device website with website content in Spanish (Sitio de
+ // dispositivos médicos).
+ MEDICAL_DEVICE_WEBSITE_ES = 7;
+
+ // Preventative treatment website with website content in English.
+ PREVENTATIVE_TREATMENT_WEBSITE_EN = 8;
+
+ // Preventative treatment website with website content in Spanish (Sitio de
+ // tratamientos preventivos).
+ PREVENTATIVE_TREATMENT_WEBSITE_ES = 9;
+
+ // Prescription contraception website with website content in English.
+ PRESCRIPTION_CONTRACEPTION_WEBSITE_EN = 10;
+
+ // Prescription contraception website with website content in Spanish (Sitio
+ // de anticonceptivos con receta).
+ PRESCRIPTION_CONTRACEPTION_WEBSITE_ES = 11;
+
+ // Prescription vaccine website with website content in English.
+ PRESCRIPTION_VACCINE_WEBSITE_EN = 12;
+
+ // Prescription vaccine website with website content in Spanish (Sitio de
+ // vacunas con receta).
+ PRESCRIPTION_VACCINE_WEBSITE_ES = 13;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/webpage_condition_operand.proto b/google/ads/googleads/v1/enums/webpage_condition_operand.proto
new file mode 100644
index 000000000..7417159a0
--- /dev/null
+++ b/google/ads/googleads/v1/enums/webpage_condition_operand.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "WebpageConditionOperandProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing webpage condition operand.
+
+// Container for enum describing webpage condition operand in webpage criterion.
+message WebpageConditionOperandEnum {
+ // The webpage condition operand in webpage criterion.
+ enum WebpageConditionOperand {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Operand denoting a webpage URL targeting condition.
+ URL = 2;
+
+ // Operand denoting a webpage category targeting condition.
+ CATEGORY = 3;
+
+ // Operand denoting a webpage title targeting condition.
+ PAGE_TITLE = 4;
+
+ // Operand denoting a webpage content targeting condition.
+ PAGE_CONTENT = 5;
+
+ // Operand denoting a webpage custom label targeting condition.
+ CUSTOM_LABEL = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/enums/webpage_condition_operator.proto b/google/ads/googleads/v1/enums/webpage_condition_operator.proto
new file mode 100644
index 000000000..489c56de8
--- /dev/null
+++ b/google/ads/googleads/v1/enums/webpage_condition_operator.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.enums;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Enums";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/enums;enums";
+option java_multiple_files = true;
+option java_outer_classname = "WebpageConditionOperatorProto";
+option java_package = "com.google.ads.googleads.v1.enums";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Enums";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing webpage condition operator.
+
+// Container for enum describing webpage condition operator in webpage
+// criterion.
+message WebpageConditionOperatorEnum {
+ // The webpage condition operator in webpage criterion.
+ enum WebpageConditionOperator {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // The argument web condition is equal to the compared web condition.
+ EQUALS = 2;
+
+ // The argument web condition is part of the compared web condition.
+ CONTAINS = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/account_budget_proposal_error.proto b/google/ads/googleads/v1/errors/account_budget_proposal_error.proto
new file mode 100644
index 000000000..801970793
--- /dev/null
+++ b/google/ads/googleads/v1/errors/account_budget_proposal_error.proto
@@ -0,0 +1,115 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetProposalErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing account budget proposal errors.
+
+// Container for enum describing possible account budget proposal errors.
+message AccountBudgetProposalErrorEnum {
+ // Enum describing possible account budget proposal errors.
+ enum AccountBudgetProposalError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The field mask must be empty for create/end/remove proposals.
+ FIELD_MASK_NOT_ALLOWED = 2;
+
+ // The field cannot be set because of the proposal type.
+ IMMUTABLE_FIELD = 3;
+
+ // The field is required because of the proposal type.
+ REQUIRED_FIELD_MISSING = 4;
+
+ // Proposals that have been approved cannot be cancelled.
+ CANNOT_CANCEL_APPROVED_PROPOSAL = 5;
+
+ // Budgets that haven't been approved cannot be removed.
+ CANNOT_REMOVE_UNAPPROVED_BUDGET = 6;
+
+ // Budgets that are currently running cannot be removed.
+ CANNOT_REMOVE_RUNNING_BUDGET = 7;
+
+ // Budgets that haven't been approved cannot be truncated.
+ CANNOT_END_UNAPPROVED_BUDGET = 8;
+
+ // Only budgets that are currently running can be truncated.
+ CANNOT_END_INACTIVE_BUDGET = 9;
+
+ // All budgets must have names.
+ BUDGET_NAME_REQUIRED = 10;
+
+ // Expired budgets cannot be edited after a sufficient amount of time has
+ // passed.
+ CANNOT_UPDATE_OLD_BUDGET = 11;
+
+ // It is not permissible a propose a new budget that ends in the past.
+ CANNOT_END_IN_PAST = 12;
+
+ // An expired budget cannot be extended to overlap with the running budget.
+ CANNOT_EXTEND_END_TIME = 13;
+
+ // A purchase order number is required.
+ PURCHASE_ORDER_NUMBER_REQUIRED = 14;
+
+ // Budgets that have a pending update cannot be updated.
+ PENDING_UPDATE_PROPOSAL_EXISTS = 15;
+
+ // Cannot propose more than one budget when the corresponding billing setup
+ // hasn't been approved.
+ MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = 16;
+
+ // Cannot update the start time of a budget that has already started.
+ CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = 17;
+
+ // Cannot update the spending limit of a budget with an amount lower than
+ // what has already been spent.
+ SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = 18;
+
+ // Cannot propose a budget update without actually changing any fields.
+ UPDATE_IS_NO_OP = 19;
+
+ // The end time must come after the start time.
+ END_TIME_MUST_FOLLOW_START_TIME = 20;
+
+ // The budget's date range must fall within the date range of its billing
+ // setup.
+ BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = 21;
+
+ // The user is not authorized to mutate budgets for the given billing setup.
+ NOT_AUTHORIZED = 22;
+
+ // Mutates are not allowed for the given billing setup.
+ INVALID_BILLING_SETUP = 23;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_customizer_error.proto b/google/ads/googleads/v1/errors/ad_customizer_error.proto
new file mode 100644
index 000000000..c66e7ed87
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_customizer_error.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdCustomizerErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad customizer errors.
+
+// Container for enum describing possible ad customizer errors.
+message AdCustomizerErrorEnum {
+ // Enum describing possible ad customizer errors.
+ enum AdCustomizerError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Invalid date argument in countdown function.
+ COUNTDOWN_INVALID_DATE_FORMAT = 2;
+
+ // Countdown end date is in the past.
+ COUNTDOWN_DATE_IN_PAST = 3;
+
+ // Invalid locale string in countdown function.
+ COUNTDOWN_INVALID_LOCALE = 4;
+
+ // Days-before argument to countdown function is not positive.
+ COUNTDOWN_INVALID_START_DAYS_BEFORE = 5;
+
+ // A user list referenced in an IF function does not exist.
+ UNKNOWN_USER_LIST = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_error.proto b/google/ads/googleads/v1/errors/ad_error.proto
new file mode 100644
index 000000000..266432059
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_error.proto
@@ -0,0 +1,445 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad errors.
+
+// Container for enum describing possible ad errors.
+message AdErrorEnum {
+ // Enum describing possible ad errors.
+ enum AdError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Ad customizers are not supported for ad type.
+ AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE = 2;
+
+ // Estimating character sizes the string is too long.
+ APPROXIMATELY_TOO_LONG = 3;
+
+ // Estimating character sizes the string is too short.
+ APPROXIMATELY_TOO_SHORT = 4;
+
+ // There is a problem with the snippet.
+ BAD_SNIPPET = 5;
+
+ // Cannot modify an ad.
+ CANNOT_MODIFY_AD = 6;
+
+ // business name and url cannot be set at the same time
+ CANNOT_SET_BUSINESS_NAME_IF_URL_SET = 7;
+
+ // The specified field is incompatible with this ad's type or settings.
+ CANNOT_SET_FIELD = 8;
+
+ // Cannot set field when originAdId is set.
+ CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET = 9;
+
+ // Cannot set field when an existing ad id is set for sharing.
+ CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING = 10;
+
+ // Cannot set allowFlexibleColor false if no color is provided by user.
+ CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE = 11;
+
+ // When user select native, no color control is allowed because we will
+ // always respect publisher color for native format serving.
+ CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING = 12;
+
+ // Cannot specify a url for the ad type
+ CANNOT_SET_URL = 13;
+
+ // Cannot specify a tracking or mobile url without also setting final urls
+ CANNOT_SET_WITHOUT_FINAL_URLS = 14;
+
+ // Cannot specify a legacy url and a final url simultaneously
+ CANNOT_SET_WITH_FINAL_URLS = 15;
+
+ // Cannot specify a urls in UrlData and in template fields simultaneously.
+ CANNOT_SET_WITH_URL_DATA = 17;
+
+ // This operator cannot be used with a subclass of Ad.
+ CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR = 18;
+
+ // Customer is not approved for mobile ads.
+ CUSTOMER_NOT_APPROVED_MOBILEADS = 19;
+
+ // Customer is not approved for 3PAS richmedia ads.
+ CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS = 20;
+
+ // Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads.
+ CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS = 21;
+
+ // Not an eligible customer
+ CUSTOMER_NOT_ELIGIBLE = 22;
+
+ // Customer is not eligible for updating beacon url
+ CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL = 23;
+
+ // There already exists an ad with the same dimensions in the union.
+ DIMENSION_ALREADY_IN_UNION = 24;
+
+ // Ad's dimension must be set before setting union dimension.
+ DIMENSION_MUST_BE_SET = 25;
+
+ // Ad's dimension must be included in the union dimensions.
+ DIMENSION_NOT_IN_UNION = 26;
+
+ // Display Url cannot be specified (applies to Ad Exchange Ads)
+ DISPLAY_URL_CANNOT_BE_SPECIFIED = 27;
+
+ // Telephone number contains invalid characters or invalid format. Please
+ // re-enter your number using digits (0-9), dashes (-), and parentheses
+ // only.
+ DOMESTIC_PHONE_NUMBER_FORMAT = 28;
+
+ // Emergency telephone numbers are not allowed. Please enter a valid
+ // domestic phone number to connect customers to your business.
+ EMERGENCY_PHONE_NUMBER = 29;
+
+ // A required field was not specified or is an empty string.
+ EMPTY_FIELD = 30;
+
+ // A feed attribute referenced in an ad customizer tag is not in the ad
+ // customizer mapping for the feed.
+ FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID = 31;
+
+ // The ad customizer field mapping for the feed attribute does not match the
+ // expected field type.
+ FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH = 32;
+
+ // The use of ad customizer tags in the ad text is disallowed. Details in
+ // trigger.
+ ILLEGAL_AD_CUSTOMIZER_TAG_USE = 33;
+
+ // Tags of the form {PH_x}, where x is a number, are disallowed in ad text.
+ ILLEGAL_TAG_USE = 34;
+
+ // The dimensions of the ad are specified or derived in multiple ways and
+ // are not consistent.
+ INCONSISTENT_DIMENSIONS = 35;
+
+ // The status cannot differ among template ads of the same union.
+ INCONSISTENT_STATUS_IN_TEMPLATE_UNION = 36;
+
+ // The length of the string is not valid.
+ INCORRECT_LENGTH = 37;
+
+ // The ad is ineligible for upgrade.
+ INELIGIBLE_FOR_UPGRADE = 38;
+
+ // User cannot create mobile ad for countries targeted in specified
+ // campaign.
+ INVALID_AD_ADDRESS_CAMPAIGN_TARGET = 39;
+
+ // Invalid Ad type. A specific type of Ad is required.
+ INVALID_AD_TYPE = 40;
+
+ // Headline, description or phone cannot be present when creating mobile
+ // image ad.
+ INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE = 41;
+
+ // Image cannot be present when creating mobile text ad.
+ INVALID_ATTRIBUTES_FOR_MOBILE_TEXT = 42;
+
+ // Invalid call to action text.
+ INVALID_CALL_TO_ACTION_TEXT = 43;
+
+ // Invalid character in URL.
+ INVALID_CHARACTER_FOR_URL = 44;
+
+ // Creative's country code is not valid.
+ INVALID_COUNTRY_CODE = 45;
+
+ // Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.)
+ INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 47;
+
+ // An input error whose real reason was not properly mapped (should not
+ // happen).
+ INVALID_INPUT = 48;
+
+ // An invalid markup language was entered.
+ INVALID_MARKUP_LANGUAGE = 49;
+
+ // An invalid mobile carrier was entered.
+ INVALID_MOBILE_CARRIER = 50;
+
+ // Specified mobile carriers target a country not targeted by the campaign.
+ INVALID_MOBILE_CARRIER_TARGET = 51;
+
+ // Wrong number of elements for given element type
+ INVALID_NUMBER_OF_ELEMENTS = 52;
+
+ // The format of the telephone number is incorrect. Please re-enter the
+ // number using the correct format.
+ INVALID_PHONE_NUMBER_FORMAT = 53;
+
+ // The certified vendor format id is incorrect.
+ INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID = 54;
+
+ // The template ad data contains validation errors.
+ INVALID_TEMPLATE_DATA = 55;
+
+ // The template field doesn't have have the correct type.
+ INVALID_TEMPLATE_ELEMENT_FIELD_TYPE = 56;
+
+ // Invalid template id.
+ INVALID_TEMPLATE_ID = 57;
+
+ // After substituting replacement strings, the line is too wide.
+ LINE_TOO_WIDE = 58;
+
+ // The feed referenced must have ad customizer mapping to be used in a
+ // customizer tag.
+ MISSING_AD_CUSTOMIZER_MAPPING = 59;
+
+ // Missing address component in template element address field.
+ MISSING_ADDRESS_COMPONENT = 60;
+
+ // An ad name must be entered.
+ MISSING_ADVERTISEMENT_NAME = 61;
+
+ // Business name must be entered.
+ MISSING_BUSINESS_NAME = 62;
+
+ // Description (line 2) must be entered.
+ MISSING_DESCRIPTION1 = 63;
+
+ // Description (line 3) must be entered.
+ MISSING_DESCRIPTION2 = 64;
+
+ // The destination url must contain at least one tag (e.g. {lpurl})
+ MISSING_DESTINATION_URL_TAG = 65;
+
+ // The tracking url template of ExpandedDynamicSearchAd must contain at
+ // least one tag. (e.g. {lpurl})
+ MISSING_LANDING_PAGE_URL_TAG = 66;
+
+ // A valid dimension must be specified for this ad.
+ MISSING_DIMENSION = 67;
+
+ // A display URL must be entered.
+ MISSING_DISPLAY_URL = 68;
+
+ // Headline must be entered.
+ MISSING_HEADLINE = 69;
+
+ // A height must be entered.
+ MISSING_HEIGHT = 70;
+
+ // An image must be entered.
+ MISSING_IMAGE = 71;
+
+ // Marketing image or product videos are required.
+ MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS = 72;
+
+ // The markup language in which your site is written must be entered.
+ MISSING_MARKUP_LANGUAGES = 73;
+
+ // A mobile carrier must be entered.
+ MISSING_MOBILE_CARRIER = 74;
+
+ // Phone number must be entered.
+ MISSING_PHONE = 75;
+
+ // Missing required template fields
+ MISSING_REQUIRED_TEMPLATE_FIELDS = 76;
+
+ // Missing a required field value
+ MISSING_TEMPLATE_FIELD_VALUE = 77;
+
+ // The ad must have text.
+ MISSING_TEXT = 78;
+
+ // A visible URL must be entered.
+ MISSING_VISIBLE_URL = 79;
+
+ // A width must be entered.
+ MISSING_WIDTH = 80;
+
+ // Only 1 feed can be used as the source of ad customizer substitutions in a
+ // single ad.
+ MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED = 81;
+
+ // TempAdUnionId must be use when adding template ads.
+ MUST_USE_TEMP_AD_UNION_ID_ON_ADD = 82;
+
+ // The string has too many characters.
+ TOO_LONG = 83;
+
+ // The string has too few characters.
+ TOO_SHORT = 84;
+
+ // Ad union dimensions cannot change for saved ads.
+ UNION_DIMENSIONS_CANNOT_CHANGE = 85;
+
+ // Address component is not {country, lat, lng}.
+ UNKNOWN_ADDRESS_COMPONENT = 86;
+
+ // Unknown unique field name
+ UNKNOWN_FIELD_NAME = 87;
+
+ // Unknown unique name (template element type specifier)
+ UNKNOWN_UNIQUE_NAME = 88;
+
+ // Unsupported ad dimension
+ UNSUPPORTED_DIMENSIONS = 89;
+
+ // URL starts with an invalid scheme.
+ URL_INVALID_SCHEME = 90;
+
+ // URL ends with an invalid top-level domain name.
+ URL_INVALID_TOP_LEVEL_DOMAIN = 91;
+
+ // URL contains illegal characters.
+ URL_MALFORMED = 92;
+
+ // URL must contain a host name.
+ URL_NO_HOST = 93;
+
+ // URL not equivalent during upgrade.
+ URL_NOT_EQUIVALENT = 94;
+
+ // URL host name too long to be stored as visible URL (applies to Ad
+ // Exchange ads)
+ URL_HOST_NAME_TOO_LONG = 95;
+
+ // URL must start with a scheme.
+ URL_NO_SCHEME = 96;
+
+ // URL should end in a valid domain extension, such as .com or .net.
+ URL_NO_TOP_LEVEL_DOMAIN = 97;
+
+ // URL must not end with a path.
+ URL_PATH_NOT_ALLOWED = 98;
+
+ // URL must not specify a port.
+ URL_PORT_NOT_ALLOWED = 99;
+
+ // URL must not contain a query.
+ URL_QUERY_NOT_ALLOWED = 100;
+
+ // A url scheme is not allowed in front of tag in tracking url template
+ // (e.g. http://{lpurl})
+ URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 102;
+
+ // The user does not have permissions to create a template ad for the given
+ // template.
+ USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE = 103;
+
+ // Expandable setting is inconsistent/wrong. For example, an AdX ad is
+ // invalid if it has a expandable vendor format but no expanding directions
+ // specified, or expanding directions is specified, but the vendor format is
+ // not expandable.
+ INCONSISTENT_EXPANDABLE_SETTINGS = 104;
+
+ // Format is invalid
+ INVALID_FORMAT = 105;
+
+ // The text of this field did not match a pattern of allowed values.
+ INVALID_FIELD_TEXT = 106;
+
+ // Template element is mising
+ ELEMENT_NOT_PRESENT = 107;
+
+ // Error occurred during image processing
+ IMAGE_ERROR = 108;
+
+ // The value is not within the valid range
+ VALUE_NOT_IN_RANGE = 109;
+
+ // Template element field is not present
+ FIELD_NOT_PRESENT = 110;
+
+ // Address is incomplete
+ ADDRESS_NOT_COMPLETE = 111;
+
+ // Invalid address
+ ADDRESS_INVALID = 112;
+
+ // Error retrieving specified video
+ VIDEO_RETRIEVAL_ERROR = 113;
+
+ // Error processing audio
+ AUDIO_ERROR = 114;
+
+ // Display URL is incorrect for YouTube PYV ads
+ INVALID_YOUTUBE_DISPLAY_URL = 115;
+
+ // Too many product Images in GmailAd
+ TOO_MANY_PRODUCT_IMAGES = 116;
+
+ // Too many product Videos in GmailAd
+ TOO_MANY_PRODUCT_VIDEOS = 117;
+
+ // The device preference is not compatible with the ad type
+ INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE = 118;
+
+ // Call tracking is not supported for specified country.
+ CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 119;
+
+ // Carrier specific short number is not allowed.
+ CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 120;
+
+ // Specified phone number type is disallowed.
+ DISALLOWED_NUMBER_TYPE = 121;
+
+ // Phone number not supported for country.
+ PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 122;
+
+ // Phone number not supported with call tracking enabled for country.
+ PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 123;
+
+ // Premium rate phone number is not allowed.
+ PREMIUM_RATE_NUMBER_NOT_ALLOWED = 124;
+
+ // Vanity phone number is not allowed.
+ VANITY_PHONE_NUMBER_NOT_ALLOWED = 125;
+
+ // Invalid call conversion type id.
+ INVALID_CALL_CONVERSION_TYPE_ID = 126;
+
+ // Cannot disable call conversion and set conversion type id.
+ CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID = 127;
+
+ // Cannot set path2 without path1.
+ CANNOT_SET_PATH2_WITHOUT_PATH1 = 128;
+
+ // Missing domain name in campaign setting when adding expanded dynamic
+ // search ad.
+ MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME = 129;
+
+ // The associated ad is not compatible with restriction type.
+ INCOMPATIBLE_WITH_RESTRICTION_TYPE = 130;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_group_ad_error.proto b/google/ads/googleads/v1/errors/ad_group_ad_error.proto
new file mode 100644
index 000000000..017ed7f5e
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_group_ad_error.proto
@@ -0,0 +1,71 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAdErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad group ad errors.
+
+// Container for enum describing possible ad group ad errors.
+message AdGroupAdErrorEnum {
+ // Enum describing possible ad group ad errors.
+ enum AdGroupAdError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // No link found between the adgroup ad and the label.
+ AD_GROUP_AD_LABEL_DOES_NOT_EXIST = 2;
+
+ // The label has already been attached to the adgroup ad.
+ AD_GROUP_AD_LABEL_ALREADY_EXISTS = 3;
+
+ // The specified ad was not found in the adgroup
+ AD_NOT_UNDER_ADGROUP = 4;
+
+ // Removed ads may not be modified
+ CANNOT_OPERATE_ON_REMOVED_ADGROUPAD = 5;
+
+ // An ad of this type is deprecated and cannot be created. Only deletions
+ // are permitted.
+ CANNOT_CREATE_DEPRECATED_ADS = 6;
+
+ // Text ads are deprecated and cannot be created. Use expanded text ads
+ // instead.
+ CANNOT_CREATE_TEXT_ADS = 7;
+
+ // A required field was not specified or is an empty string.
+ EMPTY_FIELD = 8;
+
+ // An ad may only be modified once per call
+ RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto b/google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto
new file mode 100644
index 000000000..49e039890
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupBidModifierErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad group bid modifier errors.
+
+// Container for enum describing possible ad group bid modifier errors.
+message AdGroupBidModifierErrorEnum {
+ // Enum describing possible ad group bid modifier errors.
+ enum AdGroupBidModifierError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The criterion ID does not support bid modification.
+ CRITERION_ID_NOT_SUPPORTED = 2;
+
+ // Cannot override the bid modifier for the given criterion ID if the parent
+ // campaign is opted out of the same criterion.
+ CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_group_criterion_error.proto b/google/ads/googleads/v1/errors/ad_group_criterion_error.proto
new file mode 100644
index 000000000..394b42017
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_group_criterion_error.proto
@@ -0,0 +1,166 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupCriterionErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad group criterion errors.
+
+// Container for enum describing possible ad group criterion errors.
+message AdGroupCriterionErrorEnum {
+ // Enum describing possible ad group criterion errors.
+ enum AdGroupCriterionError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // No link found between the AdGroupCriterion and the label.
+ AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2;
+
+ // The label has already been attached to the AdGroupCriterion.
+ AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3;
+
+ // Negative AdGroupCriterion cannot have labels.
+ CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4;
+
+ // Too many operations for a single call.
+ TOO_MANY_OPERATIONS = 5;
+
+ // Negative ad group criteria are not updateable.
+ CANT_UPDATE_NEGATIVE = 6;
+
+ // Concrete type of criterion (keyword v.s. placement) is required for ADD
+ // and SET operations.
+ CONCRETE_TYPE_REQUIRED = 7;
+
+ // Bid is incompatible with ad group's bidding settings.
+ BID_INCOMPATIBLE_WITH_ADGROUP = 8;
+
+ // Cannot target and exclude the same criterion at once.
+ CANNOT_TARGET_AND_EXCLUDE = 9;
+
+ // The URL of a placement is invalid.
+ ILLEGAL_URL = 10;
+
+ // Keyword text was invalid.
+ INVALID_KEYWORD_TEXT = 11;
+
+ // Destination URL was invalid.
+ INVALID_DESTINATION_URL = 12;
+
+ // The destination url must contain at least one tag (e.g. {lpurl})
+ MISSING_DESTINATION_URL_TAG = 13;
+
+ // Keyword-level cpm bid is not supported
+ KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14;
+
+ // For example, cannot add a biddable ad group criterion that had been
+ // removed.
+ INVALID_USER_STATUS = 15;
+
+ // Criteria type cannot be targeted for the ad group. Either the account is
+ // restricted to keywords only, the criteria type is incompatible with the
+ // campaign's bidding strategy, or the criteria type can only be applied to
+ // campaigns.
+ CANNOT_ADD_CRITERIA_TYPE = 16;
+
+ // Criteria type cannot be excluded for the ad group. Refer to the
+ // documentation for a specific criterion to check if it is excludable.
+ CANNOT_EXCLUDE_CRITERIA_TYPE = 17;
+
+ // Partial failure is not supported for shopping campaign mutate operations.
+ CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27;
+
+ // Operations in the mutate request changes too many shopping ad groups.
+ // Please split requests for multiple shopping ad groups across multiple
+ // requests.
+ OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28;
+
+ // Not allowed to modify url fields of an ad group criterion if there are
+ // duplicate elements for that ad group criterion in the request.
+ CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29;
+
+ // Cannot set url fields without also setting final urls.
+ CANNOT_SET_WITHOUT_FINAL_URLS = 30;
+
+ // Cannot clear final urls if final mobile urls exist.
+ CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31;
+
+ // Cannot clear final urls if final app urls exist.
+ CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32;
+
+ // Cannot clear final urls if tracking url template exists.
+ CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33;
+
+ // Cannot clear final urls if url custom parameters exist.
+ CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34;
+
+ // Cannot set both destination url and final urls.
+ CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35;
+
+ // Cannot set both destination url and tracking url template.
+ CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36;
+
+ // Final urls are not supported for this criterion type.
+ FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37;
+
+ // Final mobile urls are not supported for this criterion type.
+ FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38;
+
+ // Ad group is invalid due to the listing groups it contains.
+ INVALID_LISTING_GROUP_HIERARCHY = 39;
+
+ // Listing group unit cannot have children.
+ LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 40;
+
+ // Subdivided listing groups must have an "others" case.
+ LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 41;
+
+ // Dimension type of listing group must be the same as that of its siblings.
+ LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 42;
+
+ // Listing group cannot be added to the ad group because it already exists.
+ LISTING_GROUP_ALREADY_EXISTS = 43;
+
+ // Listing group referenced in the operation was not found in the ad group.
+ LISTING_GROUP_DOES_NOT_EXIST = 44;
+
+ // Recursive removal failed because listing group subdivision is being
+ // created or modified in this request.
+ LISTING_GROUP_CANNOT_BE_REMOVED = 45;
+
+ // Listing group type is not allowed for specified ad group criterion type.
+ INVALID_LISTING_GROUP_TYPE = 46;
+
+ // Listing group in an ADD operation specifies a non temporary criterion id.
+ LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 47;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_group_error.proto b/google/ads/googleads/v1/errors/ad_group_error.proto
new file mode 100644
index 000000000..96cb7f511
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_group_error.proto
@@ -0,0 +1,84 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad group errors.
+
+// Container for enum describing possible ad group errors.
+message AdGroupErrorEnum {
+ // Enum describing possible ad group errors.
+ enum AdGroupError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // AdGroup with the same name already exists for the campaign.
+ DUPLICATE_ADGROUP_NAME = 2;
+
+ // AdGroup name is not valid.
+ INVALID_ADGROUP_NAME = 3;
+
+ // Advertiser is not allowed to target sites or set site bids that are not
+ // on the Google Search Network.
+ ADVERTISER_NOT_ON_CONTENT_NETWORK = 5;
+
+ // Bid amount is too big.
+ BID_TOO_BIG = 6;
+
+ // AdGroup bid does not match the campaign's bidding strategy.
+ BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH = 7;
+
+ // AdGroup name is required for Add.
+ MISSING_ADGROUP_NAME = 8;
+
+ // No link found between the ad group and the label.
+ ADGROUP_LABEL_DOES_NOT_EXIST = 9;
+
+ // The label has already been attached to the ad group.
+ ADGROUP_LABEL_ALREADY_EXISTS = 10;
+
+ // The CriterionTypeGroup is not supported for the content bid dimension.
+ INVALID_CONTENT_BID_CRITERION_TYPE_GROUP = 11;
+
+ // The ad group type is not compatible with the campaign channel type.
+ AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE = 12;
+
+ // The ad group type is not supported in the country of sale of the
+ // campaign.
+ ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY = 13;
+
+ // Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to
+ // campaigns that have DynamicSearchAdsSetting attached.
+ CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING = 14;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_group_feed_error.proto b/google/ads/googleads/v1/errors/ad_group_feed_error.proto
new file mode 100644
index 000000000..7f9b4c8e8
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_group_feed_error.proto
@@ -0,0 +1,68 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupFeedErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad group feed errors.
+
+// Container for enum describing possible ad group feed errors.
+message AdGroupFeedErrorEnum {
+ // Enum describing possible ad group feed errors.
+ enum AdGroupFeedError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // An active feed already exists for this ad group and place holder type.
+ FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2;
+
+ // The specified feed is removed.
+ CANNOT_CREATE_FOR_REMOVED_FEED = 3;
+
+ // The AdGroupFeed already exists. UPDATE operation should be used to modify
+ // the existing AdGroupFeed.
+ ADGROUP_FEED_ALREADY_EXISTS = 4;
+
+ // Cannot operate on removed AdGroupFeed.
+ CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED = 5;
+
+ // Invalid placeholder type.
+ INVALID_PLACEHOLDER_TYPE = 6;
+
+ // Feed mapping for this placeholder type does not exist.
+ MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7;
+
+ // Location AdGroupFeeds cannot be created unless there is a location
+ // CustomerFeed for the specified feed.
+ NO_EXISTING_LOCATION_CUSTOMER_FEED = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_parameter_error.proto b/google/ads/googleads/v1/errors/ad_parameter_error.proto
new file mode 100644
index 000000000..4e740e412
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_parameter_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdParameterErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad parameter errors.
+
+// Container for enum describing possible ad parameter errors.
+message AdParameterErrorEnum {
+ // Enum describing possible ad parameter errors.
+ enum AdParameterError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The ad group criterion must be a keyword criterion.
+ AD_GROUP_CRITERION_MUST_BE_KEYWORD = 2;
+
+ // The insertion text is invalid.
+ INVALID_INSERTION_TEXT_FORMAT = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/ad_sharing_error.proto b/google/ads/googleads/v1/errors/ad_sharing_error.proto
new file mode 100644
index 000000000..a9af16798
--- /dev/null
+++ b/google/ads/googleads/v1/errors/ad_sharing_error.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdSharingErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing ad sharing errors.
+
+// Container for enum describing possible ad sharing errors.
+message AdSharingErrorEnum {
+ // Enum describing possible ad sharing errors.
+ enum AdSharingError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Error resulting in attempting to add an Ad to an AdGroup that already
+ // contains the Ad.
+ AD_GROUP_ALREADY_CONTAINS_AD = 2;
+
+ // Ad is not compatible with the AdGroup it is being shared with.
+ INCOMPATIBLE_AD_UNDER_AD_GROUP = 3;
+
+ // Cannot add AdGroupAd on inactive Ad.
+ CANNOT_SHARE_INACTIVE_AD = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/adx_error.proto b/google/ads/googleads/v1/errors/adx_error.proto
new file mode 100644
index 000000000..0fed7fce0
--- /dev/null
+++ b/google/ads/googleads/v1/errors/adx_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AdxErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing adx errors.
+
+// Container for enum describing possible adx errors.
+message AdxErrorEnum {
+ // Enum describing possible adx errors.
+ enum AdxError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Attempt to use non-AdX feature by AdX customer.
+ UNSUPPORTED_FEATURE = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/asset_error.proto b/google/ads/googleads/v1/errors/asset_error.proto
new file mode 100644
index 000000000..a085fd8b0
--- /dev/null
+++ b/google/ads/googleads/v1/errors/asset_error.proto
@@ -0,0 +1,58 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AssetErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing asset errors.
+
+// Container for enum describing possible asset errors.
+message AssetErrorEnum {
+ // Enum describing possible asset errors.
+ enum AssetError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The customer is not whitelisted for this asset type.
+ CUSTOMER_NOT_WHITELISTED_FOR_ASSET_TYPE = 2;
+
+ // Assets are duplicated across operations.
+ DUPLICATE_ASSET = 3;
+
+ // The asset name is duplicated, either across operations or with an
+ // existing asset.
+ DUPLICATE_ASSET_NAME = 4;
+
+ // The Asset.asset_data oneof is empty.
+ ASSET_DATA_IS_MISSING = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/authentication_error.proto b/google/ads/googleads/v1/errors/authentication_error.proto
new file mode 100644
index 000000000..8ee76b40c
--- /dev/null
+++ b/google/ads/googleads/v1/errors/authentication_error.proto
@@ -0,0 +1,104 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AuthenticationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing authentication errors.
+
+// Container for enum describing possible authentication errors.
+message AuthenticationErrorEnum {
+ // Enum describing possible authentication errors.
+ enum AuthenticationError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Authentication of the request failed.
+ AUTHENTICATION_ERROR = 2;
+
+ // Client Customer Id is not a number.
+ CLIENT_CUSTOMER_ID_INVALID = 5;
+
+ // No customer found for the provided customer id.
+ CUSTOMER_NOT_FOUND = 8;
+
+ // Client's Google Account is deleted.
+ GOOGLE_ACCOUNT_DELETED = 9;
+
+ // Google account login token in the cookie is invalid.
+ GOOGLE_ACCOUNT_COOKIE_INVALID = 10;
+
+ // A problem occurred during Google account authentication.
+ GOOGLE_ACCOUNT_AUTHENTICATION_FAILED = 25;
+
+ // The user in the google account login token does not match the UserId in
+ // the cookie.
+ GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH = 12;
+
+ // Login cookie is required for authentication.
+ LOGIN_COOKIE_REQUIRED = 13;
+
+ // User in the cookie is not a valid Ads user.
+ NOT_ADS_USER = 14;
+
+ // Oauth token in the header is not valid.
+ OAUTH_TOKEN_INVALID = 15;
+
+ // Oauth token in the header has expired.
+ OAUTH_TOKEN_EXPIRED = 16;
+
+ // Oauth token in the header has been disabled.
+ OAUTH_TOKEN_DISABLED = 17;
+
+ // Oauth token in the header has been revoked.
+ OAUTH_TOKEN_REVOKED = 18;
+
+ // Oauth token HTTP header is malformed.
+ OAUTH_TOKEN_HEADER_INVALID = 19;
+
+ // Login cookie is not valid.
+ LOGIN_COOKIE_INVALID = 20;
+
+ // User Id in the header is not a valid id.
+ USER_ID_INVALID = 22;
+
+ // An account administrator changed this account's authentication settings.
+ // To access this Google Ads account, enable 2-Step Verification in your
+ // Google account at https://www.google.com/landing/2step.
+ TWO_STEP_VERIFICATION_NOT_ENROLLED = 23;
+
+ // An account administrator changed this account's authentication settings.
+ // To access this Google Ads account, enable Advanced Protection in your
+ // Google account at https://landing.google.com/advancedprotection.
+ ADVANCED_PROTECTION_NOT_ENROLLED = 24;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/authorization_error.proto b/google/ads/googleads/v1/errors/authorization_error.proto
new file mode 100644
index 000000000..f846b3d95
--- /dev/null
+++ b/google/ads/googleads/v1/errors/authorization_error.proto
@@ -0,0 +1,79 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "AuthorizationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing authorization errors.
+
+// Container for enum describing possible authorization errors.
+message AuthorizationErrorEnum {
+ // Enum describing possible authorization errors.
+ enum AuthorizationError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // User doesn't have permission to access customer.
+ USER_PERMISSION_DENIED = 2;
+
+ // The developer token is not whitelisted.
+ DEVELOPER_TOKEN_NOT_WHITELISTED = 3;
+
+ // The developer token is not allowed with the project sent in the request.
+ DEVELOPER_TOKEN_PROHIBITED = 4;
+
+ // The Google Cloud project sent in the request does not have permission to
+ // access the api.
+ PROJECT_DISABLED = 5;
+
+ // Authorization of the client failed.
+ AUTHORIZATION_ERROR = 6;
+
+ // The user does not have permission to perform this action
+ // (e.g., ADD, UPDATE, REMOVE) on the resource or call a method.
+ ACTION_NOT_PERMITTED = 7;
+
+ // Signup not complete.
+ INCOMPLETE_SIGNUP = 8;
+
+ // The customer can't be used because it isn't enabled.
+ CUSTOMER_NOT_ENABLED = 24;
+
+ // The developer must sign the terms of service. They can be found here:
+ // ads.google.com/aw/apicenter
+ MISSING_TOS = 9;
+
+ // The developer token is not approved. Non-approved developer tokens can
+ // only be used with test accounts.
+ DEVELOPER_TOKEN_NOT_APPROVED = 10;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/bidding_error.proto b/google/ads/googleads/v1/errors/bidding_error.proto
new file mode 100644
index 000000000..cc4dd5cb9
--- /dev/null
+++ b/google/ads/googleads/v1/errors/bidding_error.proto
@@ -0,0 +1,116 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing bidding errors.
+
+// Container for enum describing possible bidding errors.
+message BiddingErrorEnum {
+ // Enum describing possible bidding errors.
+ enum BiddingError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Cannot transition to new bidding strategy.
+ BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED = 2;
+
+ // Cannot attach bidding strategy to campaign.
+ CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN = 7;
+
+ // Bidding strategy is not supported or cannot be used as anonymous.
+ INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE = 10;
+
+ // The type does not match the named strategy's type.
+ INVALID_BIDDING_STRATEGY_TYPE = 14;
+
+ // The bid is invalid.
+ INVALID_BID = 17;
+
+ // Bidding strategy is not available for the account type.
+ BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 18;
+
+ // Conversion tracking is not enabled for the campaign for VBB transition.
+ CONVERSION_TRACKING_NOT_ENABLED = 19;
+
+ // Not enough conversions tracked for VBB transitions.
+ NOT_ENOUGH_CONVERSIONS = 20;
+
+ // Campaign can not be created with given bidding strategy. It can be
+ // transitioned to the strategy, once eligible.
+ CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY = 21;
+
+ // Cannot target content network only as campaign uses Page One Promoted
+ // bidding strategy.
+ CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY = 23;
+
+ // Budget Optimizer and Target Spend bidding strategies are not supported
+ // for campaigns with AdSchedule targeting.
+ BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE = 24;
+
+ // Pay per conversion is not available to all the customer, only few
+ // whitelisted customers can use this.
+ PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER = 25;
+
+ // Pay per conversion is not allowed with Target CPA.
+ PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA = 26;
+
+ // Cannot set bidding strategy to Manual CPM for search network only
+ // campaigns.
+ BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS = 27;
+
+ // The bidding strategy is not supported for use in drafts or experiments.
+ BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS = 28;
+
+ // Bidding strategy type does not support product type ad group criterion.
+ BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION = 29;
+
+ // Bid amount is too small.
+ BID_TOO_SMALL = 30;
+
+ // Bid amount is too big.
+ BID_TOO_BIG = 31;
+
+ // Bid has too many fractional digit precision.
+ BID_TOO_MANY_FRACTIONAL_DIGITS = 32;
+
+ // Invalid domain name specified.
+ INVALID_DOMAIN_NAME = 33;
+
+ // The field is not compatible with payment mode.
+ NOT_COMPATIBLE_WITH_PAYMENT_MODE = 34;
+
+ // Bidding strategy is incompatible with the budget type.
+ NOT_COMPATIBLE_WITH_BUDGET_TYPE = 35;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/bidding_strategy_error.proto b/google/ads/googleads/v1/errors/bidding_strategy_error.proto
new file mode 100644
index 000000000..d58fcd948
--- /dev/null
+++ b/google/ads/googleads/v1/errors/bidding_strategy_error.proto
@@ -0,0 +1,58 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingStrategyErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing bidding strategy errors.
+
+// Container for enum describing possible bidding strategy errors.
+message BiddingStrategyErrorEnum {
+ // Enum describing possible bidding strategy errors.
+ enum BiddingStrategyError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Each bidding strategy must have a unique name.
+ DUPLICATE_NAME = 2;
+
+ // Bidding strategy type is immutable.
+ CANNOT_CHANGE_BIDDING_STRATEGY_TYPE = 3;
+
+ // Only bidding strategies not linked to campaigns, adgroups or adgroup
+ // criteria can be removed.
+ CANNOT_REMOVE_ASSOCIATED_STRATEGY = 4;
+
+ // The specified bidding strategy is not supported.
+ BIDDING_STRATEGY_NOT_SUPPORTED = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/billing_setup_error.proto b/google/ads/googleads/v1/errors/billing_setup_error.proto
new file mode 100644
index 000000000..7ec6d87c7
--- /dev/null
+++ b/google/ads/googleads/v1/errors/billing_setup_error.proto
@@ -0,0 +1,102 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "BillingSetupErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing billing setup errors.
+
+// Container for enum describing possible billing setup errors.
+message BillingSetupErrorEnum {
+ // Enum describing possible billing setup errors.
+ enum BillingSetupError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Cannot use both an existing Payments account and a new Payments account
+ // when setting up billing.
+ CANNOT_USE_EXISTING_AND_NEW_ACCOUNT = 2;
+
+ // Cannot cancel an APPROVED billing setup whose start time has passed.
+ CANNOT_REMOVE_STARTED_BILLING_SETUP = 3;
+
+ // Cannot perform a Change of Bill-To (CBT) to the same Payments account.
+ CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT = 4;
+
+ // Billing Setups can only be used by customers with ENABLED or DRAFT
+ // status.
+ BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS = 5;
+
+ // Billing Setups must either include a correctly formatted existing
+ // Payments account id, or a non-empty new Payments account name.
+ INVALID_PAYMENTS_ACCOUNT = 6;
+
+ // Only billable and third-party customers can create billing setups.
+ BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY = 7;
+
+ // Billing Setup creations can only use NOW for start time type.
+ INVALID_START_TIME_TYPE = 8;
+
+ // Billing Setups can only be created for a third-party customer if they do
+ // not already have a setup.
+ THIRD_PARTY_ALREADY_HAS_BILLING = 9;
+
+ // Billing Setups cannot be created if there is already a pending billing in
+ // progress, ie. a billing known to Payments.
+ BILLING_SETUP_IN_PROGRESS = 10;
+
+ // Billing Setups can only be created by customers who have permission to
+ // setup billings. Users can contact a representative for help setting up
+ // permissions.
+ NO_SIGNUP_PERMISSION = 11;
+
+ // Billing Setups cannot be created if there is already a future-approved
+ // billing.
+ CHANGE_OF_BILL_TO_IN_PROGRESS = 12;
+
+ // Billing Setup creation failed because Payments could not find the
+ // requested Payments profile.
+ PAYMENTS_PROFILE_NOT_FOUND = 13;
+
+ // Billing Setup creation failed because Payments could not find the
+ // requested Payments account.
+ PAYMENTS_ACCOUNT_NOT_FOUND = 14;
+
+ // Billing Setup creation failed because Payments considers requested
+ // Payments profile ineligible.
+ PAYMENTS_PROFILE_INELIGIBLE = 15;
+
+ // Billing Setup creation failed because Payments considers requested
+ // Payments account ineligible.
+ PAYMENTS_ACCOUNT_INELIGIBLE = 16;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/campaign_budget_error.proto b/google/ads/googleads/v1/errors/campaign_budget_error.proto
new file mode 100644
index 000000000..f827eec9b
--- /dev/null
+++ b/google/ads/googleads/v1/errors/campaign_budget_error.proto
@@ -0,0 +1,95 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignBudgetErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing campaign budget errors.
+
+// Container for enum describing possible campaign budget errors.
+message CampaignBudgetErrorEnum {
+ // Enum describing possible campaign budget errors.
+ enum CampaignBudgetError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The campaign budget cannot be shared.
+ CAMPAIGN_BUDGET_CANNOT_BE_SHARED = 17;
+
+ // The requested campaign budget no longer exists.
+ CAMPAIGN_BUDGET_REMOVED = 2;
+
+ // The campaign budget is associated with at least one campaign, and so the
+ // campaign budget cannot be removed.
+ CAMPAIGN_BUDGET_IN_USE = 3;
+
+ // Customer is not whitelisted for this campaign budget period.
+ CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE = 4;
+
+ // This field is not mutable on implicitly shared campaign budgets
+ CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET = 6;
+
+ // Cannot change explicitly shared campaign budgets back to implicitly
+ // shared ones.
+ CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED = 7;
+
+ // An implicit campaign budget without a name cannot be changed to
+ // explicitly shared campaign budget.
+ CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME = 8;
+
+ // Cannot change an implicitly shared campaign budget to an explicitly
+ // shared one.
+ CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED = 9;
+
+ // Only explicitly shared campaign budgets can be used with multiple
+ // campaigns.
+ CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS = 10;
+
+ // A campaign budget with this name already exists.
+ DUPLICATE_NAME = 11;
+
+ // A money amount was not in the expected currency.
+ MONEY_AMOUNT_IN_WRONG_CURRENCY = 12;
+
+ // A money amount was less than the minimum CPC for currency.
+ MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC = 13;
+
+ // A money amount was greater than the maximum allowed.
+ MONEY_AMOUNT_TOO_LARGE = 14;
+
+ // A money amount was negative.
+ NEGATIVE_MONEY_AMOUNT = 15;
+
+ // A money amount was not a multiple of a minimum unit.
+ NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT = 16;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/campaign_criterion_error.proto b/google/ads/googleads/v1/errors/campaign_criterion_error.proto
new file mode 100644
index 000000000..929f5344b
--- /dev/null
+++ b/google/ads/googleads/v1/errors/campaign_criterion_error.proto
@@ -0,0 +1,82 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignCriterionErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing campaign criterion errors.
+
+// Container for enum describing possible campaign criterion errors.
+message CampaignCriterionErrorEnum {
+ // Enum describing possible campaign criterion errors.
+ enum CampaignCriterionError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Concrete type of criterion (keyword v.s. placement) is required for
+ // CREATE and UPDATE operations.
+ CONCRETE_TYPE_REQUIRED = 2;
+
+ // Invalid placement URL.
+ INVALID_PLACEMENT_URL = 3;
+
+ // Criteria type can not be excluded for the campaign by the customer. like
+ // AOL account type cannot target site type criteria
+ CANNOT_EXCLUDE_CRITERIA_TYPE = 4;
+
+ // Cannot set the campaign criterion status for this criteria type.
+ CANNOT_SET_STATUS_FOR_CRITERIA_TYPE = 5;
+
+ // Cannot set the campaign criterion status for an excluded criteria.
+ CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA = 6;
+
+ // Cannot target and exclude the same criterion.
+ CANNOT_TARGET_AND_EXCLUDE = 7;
+
+ // The mutate contained too many operations.
+ TOO_MANY_OPERATIONS = 8;
+
+ // This operator cannot be applied to a criterion of this type.
+ OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE = 9;
+
+ // The Shopping campaign sales country is not supported for
+ // ProductSalesChannel targeting.
+ SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL = 10;
+
+ // The existing field can't be updated with CREATE operation. It can be
+ // updated with UPDATE operation only.
+ CANNOT_ADD_EXISTING_FIELD = 11;
+
+ // Negative criteria are immutable, so updates are not allowed.
+ CANNOT_UPDATE_NEGATIVE_CRITERION = 12;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/campaign_error.proto b/google/ads/googleads/v1/errors/campaign_error.proto
new file mode 100644
index 000000000..8721a0646
--- /dev/null
+++ b/google/ads/googleads/v1/errors/campaign_error.proto
@@ -0,0 +1,168 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing campaign errors.
+
+// Container for enum describing possible campaign errors.
+message CampaignErrorEnum {
+ // Enum describing possible campaign errors.
+ enum CampaignError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Cannot target content network.
+ CANNOT_TARGET_CONTENT_NETWORK = 3;
+
+ // Cannot target search network.
+ CANNOT_TARGET_SEARCH_NETWORK = 4;
+
+ // Cannot cover search network without google search network.
+ CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5;
+
+ // Cannot target Google Search network for a CPM campaign.
+ CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6;
+
+ // Must target at least one network.
+ CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7;
+
+ // Only some Google partners are allowed to target partner search network.
+ CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8;
+
+ // Cannot target content network only as campaign has criteria-level bidding
+ // strategy.
+ CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9;
+
+ // Cannot modify the start or end date such that the campaign duration would
+ // not contain the durations of all runnable trials.
+ CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10;
+
+ // Cannot modify dates, budget or campaign name of a trial campaign.
+ CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11;
+
+ // Trying to modify the name of an active or paused campaign, where the name
+ // is already assigned to another active or paused campaign.
+ DUPLICATE_CAMPAIGN_NAME = 12;
+
+ // Two fields are in conflicting modes.
+ INCOMPATIBLE_CAMPAIGN_FIELD = 13;
+
+ // Campaign name cannot be used.
+ INVALID_CAMPAIGN_NAME = 14;
+
+ // Given status is invalid.
+ INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15;
+
+ // Error in the campaign level tracking url.
+ INVALID_TRACKING_URL = 16;
+
+ // Cannot set both tracking url template and tracking setting. An user has
+ // to clear legacy tracking setting in order to add tracking url template.
+ CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17;
+
+ // The maximum number of impressions for Frequency Cap should be an integer
+ // greater than 0.
+ MAX_IMPRESSIONS_NOT_IN_RANGE = 18;
+
+ // Only the Day, Week and Month time units are supported.
+ TIME_UNIT_NOT_SUPPORTED = 19;
+
+ // Operation not allowed on a campaign whose serving status has ended
+ INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20;
+
+ // This budget is exclusively linked to a Campaign that is using experiments
+ // so it cannot be shared.
+ BUDGET_CANNOT_BE_SHARED = 21;
+
+ // Campaigns using experiments cannot use a shared budget.
+ CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22;
+
+ // A different budget cannot be assigned to a campaign when there are
+ // running or scheduled trials.
+ CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23;
+
+ // No link found between the campaign and the label.
+ CAMPAIGN_LABEL_DOES_NOT_EXIST = 24;
+
+ // The label has already been attached to the campaign.
+ CAMPAIGN_LABEL_ALREADY_EXISTS = 25;
+
+ // A ShoppingSetting was not found when creating a shopping campaign.
+ MISSING_SHOPPING_SETTING = 26;
+
+ // The country in shopping setting is not an allowed country.
+ INVALID_SHOPPING_SALES_COUNTRY = 27;
+
+ // A Campaign with channel sub type UNIVERSAL_APP_CAMPAIGN must have a
+ // UniversalAppCampaignSetting specified.
+ MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING = 30;
+
+ // The requested channel type is not available according to the customer's
+ // account setting.
+ ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31;
+
+ // The AdvertisingChannelSubType is not a valid subtype of the primary
+ // channel type.
+ INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32;
+
+ // At least one conversion must be selected.
+ AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33;
+
+ // Setting ad rotation mode for a campaign is not allowed. Ad rotation mode
+ // at campaign is deprecated.
+ CANNOT_SET_AD_ROTATION_MODE = 34;
+
+ // Trying to change start date on a campaign that has started.
+ CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35;
+
+ // Trying to modify a date into the past.
+ CANNOT_SET_DATE_TO_PAST = 36;
+
+ // Hotel center id in the hotel setting does not match any customer links.
+ MISSING_HOTEL_CUSTOMER_LINK = 37;
+
+ // Hotel center id in the hotel setting must match an active customer link.
+ INVALID_HOTEL_CUSTOMER_LINK = 38;
+
+ // Hotel setting was not found when creating a hotel ads campaign.
+ MISSING_HOTEL_SETTING = 39;
+
+ // A Campaign cannot use shared campaign budgets and be part of a campaign
+ // group.
+ CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP = 40;
+
+ // The app ID was not found.
+ APP_NOT_FOUND = 41;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/campaign_feed_error.proto b/google/ads/googleads/v1/errors/campaign_feed_error.proto
new file mode 100644
index 000000000..4e274b3dc
--- /dev/null
+++ b/google/ads/googleads/v1/errors/campaign_feed_error.proto
@@ -0,0 +1,64 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignFeedErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing campaign feed errors.
+
+// Container for enum describing possible campaign feed errors.
+message CampaignFeedErrorEnum {
+ // Enum describing possible campaign feed errors.
+ enum CampaignFeedError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // An active feed already exists for this campaign and placeholder type.
+ FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2;
+
+ // The specified feed is removed.
+ CANNOT_CREATE_FOR_REMOVED_FEED = 4;
+
+ // The CampaignFeed already exists. UPDATE should be used to modify the
+ // existing CampaignFeed.
+ CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED = 5;
+
+ // Cannot update removed campaign feed.
+ CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED = 6;
+
+ // Invalid placeholder type.
+ INVALID_PLACEHOLDER_TYPE = 7;
+
+ // Feed mapping for this placeholder type does not exist.
+ MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/campaign_shared_set_error.proto b/google/ads/googleads/v1/errors/campaign_shared_set_error.proto
new file mode 100644
index 000000000..41cc8d711
--- /dev/null
+++ b/google/ads/googleads/v1/errors/campaign_shared_set_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignSharedSetErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing campaign shared set errors.
+
+// Container for enum describing possible campaign shared set errors.
+message CampaignSharedSetErrorEnum {
+ // Enum describing possible campaign shared set errors.
+ enum CampaignSharedSetError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The shared set belongs to another customer and permission isn't granted.
+ SHARED_SET_ACCESS_DENIED = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/change_status_error.proto b/google/ads/googleads/v1/errors/change_status_error.proto
new file mode 100644
index 000000000..75985c6a9
--- /dev/null
+++ b/google/ads/googleads/v1/errors/change_status_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ChangeStatusErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing change status errors.
+
+// Container for enum describing possible change status errors.
+message ChangeStatusErrorEnum {
+ // Enum describing possible change status errors.
+ enum ChangeStatusError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The requested start date is too old.
+ START_DATE_TOO_OLD = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/collection_size_error.proto b/google/ads/googleads/v1/errors/collection_size_error.proto
new file mode 100644
index 000000000..0fc0583f0
--- /dev/null
+++ b/google/ads/googleads/v1/errors/collection_size_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CollectionSizeErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing collection size errors.
+
+// Container for enum describing possible collection size errors.
+message CollectionSizeErrorEnum {
+ // Enum describing possible collection size errors.
+ enum CollectionSizeError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Too few.
+ TOO_FEW = 2;
+
+ // Too many.
+ TOO_MANY = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/context_error.proto b/google/ads/googleads/v1/errors/context_error.proto
new file mode 100644
index 000000000..660fb20c4
--- /dev/null
+++ b/google/ads/googleads/v1/errors/context_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ContextErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing context errors.
+
+// Container for enum describing possible context errors.
+message ContextErrorEnum {
+ // Enum describing possible context errors.
+ enum ContextError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The operation is not allowed for the given context.
+ OPERATION_NOT_PERMITTED_FOR_CONTEXT = 2;
+
+ // The operation is not allowed for removed resources.
+ OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/conversion_action_error.proto b/google/ads/googleads/v1/errors/conversion_action_error.proto
new file mode 100644
index 000000000..5b76ab118
--- /dev/null
+++ b/google/ads/googleads/v1/errors/conversion_action_error.proto
@@ -0,0 +1,76 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionActionErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing conversion action errors.
+
+// Container for enum describing possible conversion action errors.
+message ConversionActionErrorEnum {
+ // Enum describing possible conversion action errors.
+ enum ConversionActionError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The specified conversion action name already exists.
+ DUPLICATE_NAME = 2;
+
+ // Another conversion action with the specified app id already exists.
+ DUPLICATE_APP_ID = 3;
+
+ // Android first open action conflicts with Google play codeless download
+ // action tracking the same app.
+ TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD = 4;
+
+ // Android first open action conflicts with Google play codeless download
+ // action tracking the same app.
+ BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION = 5;
+
+ // The attribution model cannot be set to DATA_DRIVEN because a data-driven
+ // model has never been generated.
+ DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED = 6;
+
+ // The attribution model cannot be set to DATA_DRIVEN because the
+ // data-driven model is expired.
+ DATA_DRIVEN_MODEL_EXPIRED = 7;
+
+ // The attribution model cannot be set to DATA_DRIVEN because the
+ // data-driven model is stale.
+ DATA_DRIVEN_MODEL_STALE = 8;
+
+ // The attribution model cannot be set to DATA_DRIVEN because the
+ // data-driven model is unavailable or the conversion action was newly
+ // added.
+ DATA_DRIVEN_MODEL_UNKNOWN = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto b/google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto
new file mode 100644
index 000000000..79a4e4a9b
--- /dev/null
+++ b/google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto
@@ -0,0 +1,80 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionAdjustmentUploadErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing conversion adjustment upload errors.
+
+// Container for enum describing possible conversion adjustment upload errors.
+message ConversionAdjustmentUploadErrorEnum {
+ // Enum describing possible conversion adjustment upload errors.
+ enum ConversionAdjustmentUploadError {
+ // Not specified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The specified conversion action was created too recently.
+ // Please try the upload again after 4-6 hours have passed since the
+ // conversion action was created.
+ TOO_RECENT_CONVERSION_ACTION = 2;
+
+ // No conversion action of a supported ConversionActionType that matches the
+ // provided information can be found for the customer.
+ INVALID_CONVERSION_ACTION = 3;
+
+ // A retraction was already reported for this conversion.
+ CONVERSION_ALREADY_RETRACTED = 4;
+
+ // A conversion for the supplied combination of conversion
+ // action and conversion identifier could not be found.
+ CONVERSION_NOT_FOUND = 5;
+
+ // The specified conversion has already expired. Conversions expire after 55
+ // days, after which adjustments cannot be reported against them.
+ CONVERSION_EXPIRED = 6;
+
+ // The supplied adjustment date time precedes that of the original
+ // conversion.
+ ADJUSTMENT_PRECEDES_CONVERSION = 7;
+
+ // A restatement with a more recent adjustment date time was already
+ // reported for this conversion.
+ MORE_RECENT_RESTATEMENT_FOUND = 8;
+
+ // The conversion was created too recently.
+ TOO_RECENT_CONVERSION = 9;
+
+ // Restatements cannot be reported for a conversion action that always uses
+ // the default value.
+ CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE = 10;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/conversion_upload_error.proto b/google/ads/googleads/v1/errors/conversion_upload_error.proto
new file mode 100644
index 000000000..0267f21cd
--- /dev/null
+++ b/google/ads/googleads/v1/errors/conversion_upload_error.proto
@@ -0,0 +1,131 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionUploadErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing conversion upload errors.
+
+// Container for enum describing possible conversion upload errors.
+message ConversionUploadErrorEnum {
+ // Enum describing possible conversion upload errors.
+ enum ConversionUploadError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The request contained more than 2000 conversions.
+ TOO_MANY_CONVERSIONS_IN_REQUEST = 2;
+
+ // The specified gclid could not be decoded.
+ UNPARSEABLE_GCLID = 3;
+
+ // The specified conversion_date_time is before the event time
+ // associated with the given gclid.
+ CONVERSION_PRECEDES_GCLID = 4;
+
+ // The click associated with the given gclid is either too old to be
+ // imported or occurred outside of the click through lookback window for the
+ // specified conversion action.
+ EXPIRED_GCLID = 5;
+
+ // The click associated with the given gclid occurred too recently. Please
+ // try uploading again after 24 hours have passed since the click occurred.
+ TOO_RECENT_GCLID = 6;
+
+ // The click associated with the given gclid could not be found in the
+ // system. This can happen if Google Click IDs are collected for non Google
+ // Ads clicks.
+ GCLID_NOT_FOUND = 7;
+
+ // The click associated with the given gclid is owned by a customer
+ // account that the uploading customer does not manage.
+ UNAUTHORIZED_CUSTOMER = 8;
+
+ // No upload eligible conversion action that matches the provided
+ // information can be found for the customer.
+ INVALID_CONVERSION_ACTION = 9;
+
+ // The specified conversion action was created too recently.
+ // Please try the upload again after 4-6 hours have passed since the
+ // conversion action was created.
+ TOO_RECENT_CONVERSION_ACTION = 10;
+
+ // The click associated with the given gclid does not contain conversion
+ // tracking information.
+ CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME = 11;
+
+ // The specified conversion action does not use an external attribution
+ // model, but external_attribution_data was set.
+ EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 12;
+
+ // The specified conversion action uses an external attribution model, but
+ // external_attribution_data or one of its contained fields was not set.
+ // Both external_attribution_credit and external_attribution_model must be
+ // set for externally attributed conversion actions.
+ EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 13;
+
+ // Order IDs are not supported for conversion actions which use an external
+ // attribution model.
+ ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 14;
+
+ // A conversion with the same order id and conversion action combination
+ // already exists in our system.
+ ORDER_ID_ALREADY_IN_USE = 15;
+
+ // The request contained two or more conversions with the same order id and
+ // conversion action combination.
+ DUPLICATE_ORDER_ID = 16;
+
+ // The call occurred too recently. Please try uploading again after 24 hours
+ // have passed since the call occurred.
+ TOO_RECENT_CALL = 17;
+
+ // The click that initiated the call is too old for this conversion to be
+ // imported.
+ EXPIRED_CALL = 18;
+
+ // The call or the click leading to the call was not found.
+ CALL_NOT_FOUND = 19;
+
+ // The specified conversion_date_time is before the call_start_date_time.
+ CONVERSION_PRECEDES_CALL = 20;
+
+ // The click associated with the call does not contain conversion tracking
+ // information.
+ CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME = 21;
+
+ // The caller’s phone number cannot be parsed. It should be formatted either
+ // as E.164 "+16502531234", International "+64 3-331 6005" or US national
+ // number "6502531234".
+ UNPARSEABLE_CALLERS_PHONE_NUMBER = 22;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/country_code_error.proto b/google/ads/googleads/v1/errors/country_code_error.proto
new file mode 100644
index 000000000..59f65dc97
--- /dev/null
+++ b/google/ads/googleads/v1/errors/country_code_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CountryCodeErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing country code errors.
+
+// Container for enum describing country code errors.
+message CountryCodeErrorEnum {
+ // Enum describing country code errors.
+ enum CountryCodeError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The country code is invalid.
+ INVALID_COUNTRY_CODE = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/criterion_error.proto b/google/ads/googleads/v1/errors/criterion_error.proto
new file mode 100644
index 000000000..06bb814e7
--- /dev/null
+++ b/google/ads/googleads/v1/errors/criterion_error.proto
@@ -0,0 +1,367 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CriterionErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing criterion errors.
+
+// Container for enum describing possible criterion errors.
+message CriterionErrorEnum {
+ // Enum describing possible criterion errors.
+ enum CriterionError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Concrete type of criterion is required for CREATE and UPDATE operations.
+ CONCRETE_TYPE_REQUIRED = 2;
+
+ // The category requested for exclusion is invalid.
+ INVALID_EXCLUDED_CATEGORY = 3;
+
+ // Invalid keyword criteria text.
+ INVALID_KEYWORD_TEXT = 4;
+
+ // Keyword text should be less than 80 chars.
+ KEYWORD_TEXT_TOO_LONG = 5;
+
+ // Keyword text has too many words.
+ KEYWORD_HAS_TOO_MANY_WORDS = 6;
+
+ // Keyword text has invalid characters or symbols.
+ KEYWORD_HAS_INVALID_CHARS = 7;
+
+ // Invalid placement URL.
+ INVALID_PLACEMENT_URL = 8;
+
+ // Invalid user list criterion.
+ INVALID_USER_LIST = 9;
+
+ // Invalid user interest criterion.
+ INVALID_USER_INTEREST = 10;
+
+ // Placement URL has wrong format.
+ INVALID_FORMAT_FOR_PLACEMENT_URL = 11;
+
+ // Placement URL is too long.
+ PLACEMENT_URL_IS_TOO_LONG = 12;
+
+ // Indicates the URL contains an illegal character.
+ PLACEMENT_URL_HAS_ILLEGAL_CHAR = 13;
+
+ // Indicates the URL contains multiple comma separated URLs.
+ PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE = 14;
+
+ // Indicates the domain is blacklisted.
+ PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION = 15;
+
+ // Invalid topic path.
+ INVALID_TOPIC_PATH = 16;
+
+ // The YouTube Channel Id is invalid.
+ INVALID_YOUTUBE_CHANNEL_ID = 17;
+
+ // The YouTube Video Id is invalid.
+ INVALID_YOUTUBE_VIDEO_ID = 18;
+
+ // Indicates the placement is a YouTube vertical channel, which is no longer
+ // supported.
+ YOUTUBE_VERTICAL_CHANNEL_DEPRECATED = 19;
+
+ // Indicates the placement is a YouTube demographic channel, which is no
+ // longer supported.
+ YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED = 20;
+
+ // YouTube urls are not supported in Placement criterion. Use YouTubeChannel
+ // and YouTubeVideo criterion instead.
+ YOUTUBE_URL_UNSUPPORTED = 21;
+
+ // Criteria type can not be excluded by the customer, like AOL account type
+ // cannot target site type criteria.
+ CANNOT_EXCLUDE_CRITERIA_TYPE = 22;
+
+ // Criteria type can not be targeted.
+ CANNOT_ADD_CRITERIA_TYPE = 23;
+
+ // Product filter in the product criteria has invalid characters. Operand
+ // and the argument in the filter can not have "==" or "&+".
+ INVALID_PRODUCT_FILTER = 24;
+
+ // Product filter in the product criteria is translated to a string as
+ // operand1==argument1&+operand2==argument2, maximum allowed length for the
+ // string is 255 chars.
+ PRODUCT_FILTER_TOO_LONG = 25;
+
+ // Not allowed to exclude similar user list.
+ CANNOT_EXCLUDE_SIMILAR_USER_LIST = 26;
+
+ // Not allowed to target a closed user list.
+ CANNOT_ADD_CLOSED_USER_LIST = 27;
+
+ // Not allowed to add display only UserLists to search only campaigns.
+ CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS = 28;
+
+ // Not allowed to add display only UserLists to search plus campaigns.
+ CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS = 29;
+
+ // Not allowed to add display only UserLists to shopping campaigns.
+ CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS = 30;
+
+ // Not allowed to add User interests to search only campaigns.
+ CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS = 31;
+
+ // Not allowed to set bids for this criterion type in search campaigns
+ CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS = 32;
+
+ // Final URLs, URL Templates and CustomParameters cannot be set for the
+ // criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and
+ // MobileAppCategory in search campaigns and shopping campaigns.
+ CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE = 33;
+
+ // Invalid custom affinity criterion.
+ INVALID_CUSTOM_AFFINITY = 96;
+
+ // Invalid custom intent criterion.
+ INVALID_CUSTOM_INTENT = 97;
+
+ // IP address is not valid.
+ INVALID_IP_ADDRESS = 34;
+
+ // IP format is not valid.
+ INVALID_IP_FORMAT = 35;
+
+ // Mobile application is not valid.
+ INVALID_MOBILE_APP = 36;
+
+ // Mobile application category is not valid.
+ INVALID_MOBILE_APP_CATEGORY = 37;
+
+ // The CriterionId does not exist or is of the incorrect type.
+ INVALID_CRITERION_ID = 38;
+
+ // The Criterion is not allowed to be targeted.
+ CANNOT_TARGET_CRITERION = 39;
+
+ // The criterion is not allowed to be targeted as it is deprecated.
+ CANNOT_TARGET_OBSOLETE_CRITERION = 40;
+
+ // The CriterionId is not valid for the type.
+ CRITERION_ID_AND_TYPE_MISMATCH = 41;
+
+ // Distance for the radius for the proximity criterion is invalid.
+ INVALID_PROXIMITY_RADIUS = 42;
+
+ // Units for the distance for the radius for the proximity criterion is
+ // invalid.
+ INVALID_PROXIMITY_RADIUS_UNITS = 43;
+
+ // Street address in the address is not valid.
+ INVALID_STREETADDRESS_LENGTH = 44;
+
+ // City name in the address is not valid.
+ INVALID_CITYNAME_LENGTH = 45;
+
+ // Region code in the address is not valid.
+ INVALID_REGIONCODE_LENGTH = 46;
+
+ // Region name in the address is not valid.
+ INVALID_REGIONNAME_LENGTH = 47;
+
+ // Postal code in the address is not valid.
+ INVALID_POSTALCODE_LENGTH = 48;
+
+ // Country code in the address is not valid.
+ INVALID_COUNTRY_CODE = 49;
+
+ // Latitude for the GeoPoint is not valid.
+ INVALID_LATITUDE = 50;
+
+ // Longitude for the GeoPoint is not valid.
+ INVALID_LONGITUDE = 51;
+
+ // The Proximity input is not valid. Both address and geoPoint cannot be
+ // null.
+ PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL = 52;
+
+ // The Proximity address cannot be geocoded to a valid lat/long.
+ INVALID_PROXIMITY_ADDRESS = 53;
+
+ // User domain name is not valid.
+ INVALID_USER_DOMAIN_NAME = 54;
+
+ // Length of serialized criterion parameter exceeded size limit.
+ CRITERION_PARAMETER_TOO_LONG = 55;
+
+ // Time interval in the AdSchedule overlaps with another AdSchedule.
+ AD_SCHEDULE_TIME_INTERVALS_OVERLAP = 56;
+
+ // AdSchedule time interval cannot span multiple days.
+ AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS = 57;
+
+ // AdSchedule time interval specified is invalid, endTime cannot be earlier
+ // than startTime.
+ AD_SCHEDULE_INVALID_TIME_INTERVAL = 58;
+
+ // The number of AdSchedule entries in a day exceeds the limit.
+ AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT = 59;
+
+ // CriteriaId does not match the interval of the AdSchedule specified.
+ AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS = 60;
+
+ // Cannot set bid modifier for this criterion type.
+ CANNOT_BID_MODIFY_CRITERION_TYPE = 61;
+
+ // Cannot bid modify criterion, since it is opted out of the campaign.
+ CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT = 62;
+
+ // Cannot set bid modifier for a negative criterion.
+ CANNOT_BID_MODIFY_NEGATIVE_CRITERION = 63;
+
+ // Bid Modifier already exists. Use SET operation to update.
+ BID_MODIFIER_ALREADY_EXISTS = 64;
+
+ // Feed Id is not allowed in these Location Groups.
+ FEED_ID_NOT_ALLOWED = 65;
+
+ // The account may not use the requested criteria type. For example, some
+ // accounts are restricted to keywords only.
+ ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE = 66;
+
+ // The requested criteria type cannot be used with campaign or ad group
+ // bidding strategy.
+ CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY = 67;
+
+ // The Criterion is not allowed to be excluded.
+ CANNOT_EXCLUDE_CRITERION = 68;
+
+ // The criterion is not allowed to be removed. For example, we cannot remove
+ // any of the device criterion.
+ CANNOT_REMOVE_CRITERION = 69;
+
+ // The combined length of product dimension values of the product scope
+ // criterion is too long.
+ PRODUCT_SCOPE_TOO_LONG = 70;
+
+ // Product scope contains too many dimensions.
+ PRODUCT_SCOPE_TOO_MANY_DIMENSIONS = 71;
+
+ // The combined length of product dimension values of the product partition
+ // criterion is too long.
+ PRODUCT_PARTITION_TOO_LONG = 72;
+
+ // Product partition contains too many dimensions.
+ PRODUCT_PARTITION_TOO_MANY_DIMENSIONS = 73;
+
+ // The product dimension is invalid (e.g. dimension contains illegal value,
+ // dimension type is represented with wrong class, etc). Product dimension
+ // value can not contain "==" or "&+".
+ INVALID_PRODUCT_DIMENSION = 74;
+
+ // Product dimension type is either invalid for campaigns of this type or
+ // cannot be used in the current context. BIDDING_CATEGORY_Lx and
+ // PRODUCT_TYPE_Lx product dimensions must be used in ascending order of
+ // their levels: L1, L2, L3, L4, L5... The levels must be specified
+ // sequentially and start from L1. Furthermore, an "others" product
+ // partition cannot be subdivided with a dimension of the same type but of a
+ // higher level ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND
+ // but not with BIDDING_CATEGORY_L4).
+ INVALID_PRODUCT_DIMENSION_TYPE = 75;
+
+ // Bidding categories do not form a valid path in the Shopping bidding
+ // category taxonomy.
+ INVALID_PRODUCT_BIDDING_CATEGORY = 76;
+
+ // ShoppingSetting must be added to the campaign before ProductScope
+ // criteria can be added.
+ MISSING_SHOPPING_SETTING = 77;
+
+ // Matching function is invalid.
+ INVALID_MATCHING_FUNCTION = 78;
+
+ // Filter parameters not allowed for location groups targeting.
+ LOCATION_FILTER_NOT_ALLOWED = 79;
+
+ // Given location filter parameter is invalid for location groups targeting.
+ LOCATION_FILTER_INVALID = 80;
+
+ // Criteria type cannot be associated with a campaign and its ad group(s)
+ // simultaneously.
+ CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP = 81;
+
+ // Range represented by hotel length of stay's min nights and max nights
+ // overlaps with an existing criterion.
+ HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION = 82;
+
+ // Range represented by hotel advance booking window's min days and max days
+ // overlaps with an existing criterion.
+ HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION = 83;
+
+ // The field is not allowed to be set when the negative field is set to
+ // true, e.g. we don't allow bids in negative ad group or campaign criteria.
+ FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING = 84;
+
+ // The combination of operand and operator in webpage condition is invalid.
+ INVALID_WEBPAGE_CONDITION = 85;
+
+ // The URL of webpage condition is invalid.
+ INVALID_WEBPAGE_CONDITION_URL = 86;
+
+ // The URL of webpage condition cannot be empty or contain white space.
+ WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY = 87;
+
+ // The URL of webpage condition contains an unsupported protocol.
+ WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL = 88;
+
+ // The URL of webpage condition cannot be an IP address.
+ WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS = 89;
+
+ // The domain of the URL is not consistent with the domain in campaign
+ // setting.
+ WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING = 90;
+
+ // The URL of webpage condition cannot be a public suffix itself.
+ WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX = 91;
+
+ // The URL of webpage condition has an invalid public suffix.
+ WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX = 92;
+
+ // Value track parameter is not supported in webpage condition URL.
+ WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED = 93;
+
+ // Only one URL-EQUALS webpage condition is allowed in a webpage
+ // criterion and it cannot be combined with other conditions.
+ WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION = 94;
+
+ // A webpage criterion cannot be added to a non-DSA ad group.
+ WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP = 95;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/custom_interest_error.proto b/google/ads/googleads/v1/errors/custom_interest_error.proto
new file mode 100644
index 000000000..ec37b91e1
--- /dev/null
+++ b/google/ads/googleads/v1/errors/custom_interest_error.proto
@@ -0,0 +1,67 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CustomInterestErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing custom interest errors.
+
+// Container for enum describing possible custom interest errors.
+message CustomInterestErrorEnum {
+ // Enum describing possible custom interest errors.
+ enum CustomInterestError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Duplicate custom interest name ignoring case.
+ NAME_ALREADY_USED = 2;
+
+ // In the remove custom interest member operation, both member ID and
+ // pair [type, parameter] are not present.
+ CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE = 3;
+
+ // The pair of [type, parameter] does not exist.
+ TYPE_AND_PARAMETER_NOT_FOUND = 4;
+
+ // The pair of [type, parameter] already exists.
+ TYPE_AND_PARAMETER_ALREADY_EXISTED = 5;
+
+ // Unsupported custom interest member type.
+ INVALID_CUSTOM_INTEREST_MEMBER_TYPE = 6;
+
+ // Cannot remove a custom interest while it's still being targeted.
+ CANNOT_REMOVE_WHILE_IN_USE = 7;
+
+ // Cannot mutate custom interest type.
+ CANNOT_CHANGE_TYPE = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/customer_client_link_error.proto b/google/ads/googleads/v1/errors/customer_client_link_error.proto
new file mode 100644
index 000000000..784375352
--- /dev/null
+++ b/google/ads/googleads/v1/errors/customer_client_link_error.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerClientLinkErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing CustomerClientLink errors.
+
+// Container for enum describing possible CustomeClientLink errors.
+message CustomerClientLinkErrorEnum {
+ // Enum describing possible CustomerClientLink errors.
+ enum CustomerClientLinkError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Trying to manage a client that already in being managed by customer.
+ CLIENT_ALREADY_INVITED_BY_THIS_MANAGER = 2;
+
+ // Already managed by some other manager in the hierarchy.
+ CLIENT_ALREADY_MANAGED_IN_HIERARCHY = 3;
+
+ // Attempt to create a cycle in the hierarchy.
+ CYCLIC_LINK_NOT_ALLOWED = 4;
+
+ // Managed accounts has the maximum number of linked accounts.
+ CUSTOMER_HAS_TOO_MANY_ACCOUNTS = 5;
+
+ // Invitor has the maximum pending invitations.
+ CLIENT_HAS_TOO_MANY_INVITATIONS = 6;
+
+ // Attempt to change hidden status of a link that is not active.
+ CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS = 7;
+
+ // Parent manager account has the maximum number of linked accounts.
+ CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/customer_error.proto b/google/ads/googleads/v1/errors/customer_error.proto
new file mode 100644
index 000000000..af58fb563
--- /dev/null
+++ b/google/ads/googleads/v1/errors/customer_error.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Container for enum describing possible customer errors.
+message CustomerErrorEnum {
+ // Set of errors that are related to requests dealing with Customer.
+ // Next id: 26
+ enum CustomerError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Customer status is not allowed to be changed from DRAFT and CLOSED.
+ // Currency code and at least one of country code and time zone needs to be
+ // set when status is changed to ENABLED.
+ STATUS_CHANGE_DISALLOWED = 2;
+
+ // CustomerService cannot get a customer that has not been fully set up.
+ ACCOUNT_NOT_SET_UP = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/customer_feed_error.proto b/google/ads/googleads/v1/errors/customer_feed_error.proto
new file mode 100644
index 000000000..df8aca2e6
--- /dev/null
+++ b/google/ads/googleads/v1/errors/customer_feed_error.proto
@@ -0,0 +1,67 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerFeedErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing customer feed errors.
+
+// Container for enum describing possible customer feed errors.
+message CustomerFeedErrorEnum {
+ // Enum describing possible customer feed errors.
+ enum CustomerFeedError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // An active feed already exists for this customer and place holder type.
+ FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2;
+
+ // The specified feed is removed.
+ CANNOT_CREATE_FOR_REMOVED_FEED = 3;
+
+ // The CustomerFeed already exists. Update should be used to modify the
+ // existing CustomerFeed.
+ CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED = 4;
+
+ // Cannot update removed customer feed.
+ CANNOT_MODIFY_REMOVED_CUSTOMER_FEED = 5;
+
+ // Invalid placeholder type.
+ INVALID_PLACEHOLDER_TYPE = 6;
+
+ // Feed mapping for this placeholder type does not exist.
+ MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7;
+
+ // Placeholder not allowed at the account level.
+ PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/customer_manager_link_error.proto b/google/ads/googleads/v1/errors/customer_manager_link_error.proto
new file mode 100644
index 000000000..bef7806bc
--- /dev/null
+++ b/google/ads/googleads/v1/errors/customer_manager_link_error.proto
@@ -0,0 +1,72 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerManagerLinkErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing CustomerManagerLink errors.
+
+// Container for enum describing possible CustomerManagerLink errors.
+message CustomerManagerLinkErrorEnum {
+ // Enum describing possible CustomerManagerLink errors.
+ enum CustomerManagerLinkError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // No pending invitation.
+ NO_PENDING_INVITE = 2;
+
+ // Attempt to operate on the same client more than once in the same call.
+ SAME_CLIENT_MORE_THAN_ONCE_PER_CALL = 3;
+
+ // Manager account has the maximum number of linked accounts.
+ MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS = 4;
+
+ // If no active user on account it cannot be unlinked from its manager.
+ CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER = 5;
+
+ // Account should have at least one active owner on it before being
+ // unlinked.
+ CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER = 6;
+
+ // Only account owners may change their permission role.
+ CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER = 7;
+
+ // When a client's link to its manager is not active, the link role cannot
+ // be changed.
+ CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT = 8;
+
+ // Attempt to link a child to a parent that contains or will contain
+ // duplicate children.
+ DUPLICATE_CHILD_FOUND = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/database_error.proto b/google/ads/googleads/v1/errors/database_error.proto
new file mode 100644
index 000000000..dce28412c
--- /dev/null
+++ b/google/ads/googleads/v1/errors/database_error.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "DatabaseErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing database errors.
+
+// Container for enum describing possible database errors.
+message DatabaseErrorEnum {
+ // Enum describing possible database errors.
+ enum DatabaseError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Multiple requests were attempting to modify the same resource at once.
+ // Please retry the request.
+ CONCURRENT_MODIFICATION = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/date_error.proto b/google/ads/googleads/v1/errors/date_error.proto
new file mode 100644
index 000000000..7d2847145
--- /dev/null
+++ b/google/ads/googleads/v1/errors/date_error.proto
@@ -0,0 +1,75 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "DateErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing date errors.
+
+// Container for enum describing possible date errors.
+message DateErrorEnum {
+ // Enum describing possible date errors.
+ enum DateError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Given field values do not correspond to a valid date.
+ INVALID_FIELD_VALUES_IN_DATE = 2;
+
+ // Given field values do not correspond to a valid date time.
+ INVALID_FIELD_VALUES_IN_DATE_TIME = 3;
+
+ // The string date's format should be yyyy-mm-dd.
+ INVALID_STRING_DATE = 4;
+
+ // The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss.
+ INVALID_STRING_DATE_TIME_MICROS = 6;
+
+ // The string date time's format should be yyyy-mm-dd hh:mm:ss.
+ INVALID_STRING_DATE_TIME_SECONDS = 11;
+
+ // The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.
+ INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET = 12;
+
+ // Date is before allowed minimum.
+ EARLIER_THAN_MINIMUM_DATE = 7;
+
+ // Date is after allowed maximum.
+ LATER_THAN_MAXIMUM_DATE = 8;
+
+ // Date range bounds are not in order.
+ DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE = 9;
+
+ // Both dates in range are null.
+ DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL = 10;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/date_range_error.proto b/google/ads/googleads/v1/errors/date_range_error.proto
new file mode 100644
index 000000000..aceaf730e
--- /dev/null
+++ b/google/ads/googleads/v1/errors/date_range_error.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "DateRangeErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing date range errors.
+
+// Container for enum describing possible date range errors.
+message DateRangeErrorEnum {
+ // Enum describing possible date range errors.
+ enum DateRangeError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Invalid date.
+ INVALID_DATE = 2;
+
+ // The start date was after the end date.
+ START_DATE_AFTER_END_DATE = 3;
+
+ // Cannot set date to past time
+ CANNOT_SET_DATE_TO_PAST = 4;
+
+ // A date was used that is past the system "last" date.
+ AFTER_MAXIMUM_ALLOWABLE_DATE = 5;
+
+ // Trying to change start date on a campaign that has started.
+ CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/distinct_error.proto b/google/ads/googleads/v1/errors/distinct_error.proto
new file mode 100644
index 000000000..e786d71d4
--- /dev/null
+++ b/google/ads/googleads/v1/errors/distinct_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "DistinctErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing distinct errors.
+
+// Container for enum describing possible distinct errors.
+message DistinctErrorEnum {
+ // Enum describing possible distinct errors.
+ enum DistinctError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Duplicate element.
+ DUPLICATE_ELEMENT = 2;
+
+ // Duplicate type.
+ DUPLICATE_TYPE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/enum_error.proto b/google/ads/googleads/v1/errors/enum_error.proto
new file mode 100644
index 000000000..48a31c5a4
--- /dev/null
+++ b/google/ads/googleads/v1/errors/enum_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "EnumErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing enum errors.
+
+// Container for enum describing possible enum errors.
+message EnumErrorEnum {
+ // Enum describing possible enum errors.
+ enum EnumError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The enum value is not permitted.
+ ENUM_VALUE_NOT_PERMITTED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/errors.proto b/google/ads/googleads/v1/errors/errors.proto
new file mode 100644
index 000000000..17d0cd78f
--- /dev/null
+++ b/google/ads/googleads/v1/errors/errors.proto
@@ -0,0 +1,502 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/ads/googleads/v1/common/policy.proto";
+import "google/ads/googleads/v1/common/value.proto";
+import "google/ads/googleads/v1/errors/account_budget_proposal_error.proto";
+import "google/ads/googleads/v1/errors/ad_customizer_error.proto";
+import "google/ads/googleads/v1/errors/ad_error.proto";
+import "google/ads/googleads/v1/errors/ad_group_ad_error.proto";
+import "google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto";
+import "google/ads/googleads/v1/errors/ad_group_criterion_error.proto";
+import "google/ads/googleads/v1/errors/ad_group_error.proto";
+import "google/ads/googleads/v1/errors/ad_group_feed_error.proto";
+import "google/ads/googleads/v1/errors/ad_parameter_error.proto";
+import "google/ads/googleads/v1/errors/ad_sharing_error.proto";
+import "google/ads/googleads/v1/errors/adx_error.proto";
+import "google/ads/googleads/v1/errors/asset_error.proto";
+import "google/ads/googleads/v1/errors/authentication_error.proto";
+import "google/ads/googleads/v1/errors/authorization_error.proto";
+import "google/ads/googleads/v1/errors/bidding_error.proto";
+import "google/ads/googleads/v1/errors/bidding_strategy_error.proto";
+import "google/ads/googleads/v1/errors/billing_setup_error.proto";
+import "google/ads/googleads/v1/errors/campaign_budget_error.proto";
+import "google/ads/googleads/v1/errors/campaign_criterion_error.proto";
+import "google/ads/googleads/v1/errors/campaign_error.proto";
+import "google/ads/googleads/v1/errors/campaign_feed_error.proto";
+import "google/ads/googleads/v1/errors/campaign_shared_set_error.proto";
+import "google/ads/googleads/v1/errors/change_status_error.proto";
+import "google/ads/googleads/v1/errors/collection_size_error.proto";
+import "google/ads/googleads/v1/errors/context_error.proto";
+import "google/ads/googleads/v1/errors/conversion_action_error.proto";
+import "google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto";
+import "google/ads/googleads/v1/errors/conversion_upload_error.proto";
+import "google/ads/googleads/v1/errors/country_code_error.proto";
+import "google/ads/googleads/v1/errors/criterion_error.proto";
+import "google/ads/googleads/v1/errors/custom_interest_error.proto";
+import "google/ads/googleads/v1/errors/customer_client_link_error.proto";
+import "google/ads/googleads/v1/errors/customer_error.proto";
+import "google/ads/googleads/v1/errors/customer_feed_error.proto";
+import "google/ads/googleads/v1/errors/customer_manager_link_error.proto";
+import "google/ads/googleads/v1/errors/database_error.proto";
+import "google/ads/googleads/v1/errors/date_error.proto";
+import "google/ads/googleads/v1/errors/date_range_error.proto";
+import "google/ads/googleads/v1/errors/distinct_error.proto";
+import "google/ads/googleads/v1/errors/enum_error.proto";
+import "google/ads/googleads/v1/errors/extension_feed_item_error.proto";
+import "google/ads/googleads/v1/errors/extension_setting_error.proto";
+import "google/ads/googleads/v1/errors/feed_attribute_reference_error.proto";
+import "google/ads/googleads/v1/errors/feed_error.proto";
+import "google/ads/googleads/v1/errors/feed_item_error.proto";
+import "google/ads/googleads/v1/errors/feed_item_target_error.proto";
+import "google/ads/googleads/v1/errors/feed_item_validation_error.proto";
+import "google/ads/googleads/v1/errors/feed_mapping_error.proto";
+import "google/ads/googleads/v1/errors/field_error.proto";
+import "google/ads/googleads/v1/errors/field_mask_error.proto";
+import "google/ads/googleads/v1/errors/function_error.proto";
+import "google/ads/googleads/v1/errors/function_parsing_error.proto";
+import "google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto";
+import "google/ads/googleads/v1/errors/header_error.proto";
+import "google/ads/googleads/v1/errors/id_error.proto";
+import "google/ads/googleads/v1/errors/image_error.proto";
+import "google/ads/googleads/v1/errors/internal_error.proto";
+import "google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto";
+import "google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto";
+import "google/ads/googleads/v1/errors/keyword_plan_error.proto";
+import "google/ads/googleads/v1/errors/keyword_plan_idea_error.proto";
+import "google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto";
+import "google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto";
+import "google/ads/googleads/v1/errors/label_error.proto";
+import "google/ads/googleads/v1/errors/language_code_error.proto";
+import "google/ads/googleads/v1/errors/list_operation_error.proto";
+import "google/ads/googleads/v1/errors/media_bundle_error.proto";
+import "google/ads/googleads/v1/errors/media_file_error.proto";
+import "google/ads/googleads/v1/errors/multiplier_error.proto";
+import "google/ads/googleads/v1/errors/mutate_error.proto";
+import "google/ads/googleads/v1/errors/mutate_job_error.proto";
+import "google/ads/googleads/v1/errors/new_resource_creation_error.proto";
+import "google/ads/googleads/v1/errors/not_empty_error.proto";
+import "google/ads/googleads/v1/errors/null_error.proto";
+import "google/ads/googleads/v1/errors/operation_access_denied_error.proto";
+import "google/ads/googleads/v1/errors/operator_error.proto";
+import "google/ads/googleads/v1/errors/partial_failure_error.proto";
+import "google/ads/googleads/v1/errors/policy_finding_error.proto";
+import "google/ads/googleads/v1/errors/policy_validation_parameter_error.proto";
+import "google/ads/googleads/v1/errors/policy_violation_error.proto";
+import "google/ads/googleads/v1/errors/query_error.proto";
+import "google/ads/googleads/v1/errors/quota_error.proto";
+import "google/ads/googleads/v1/errors/range_error.proto";
+import "google/ads/googleads/v1/errors/recommendation_error.proto";
+import "google/ads/googleads/v1/errors/region_code_error.proto";
+import "google/ads/googleads/v1/errors/request_error.proto";
+import "google/ads/googleads/v1/errors/resource_access_denied_error.proto";
+import "google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto";
+import "google/ads/googleads/v1/errors/setting_error.proto";
+import "google/ads/googleads/v1/errors/shared_criterion_error.proto";
+import "google/ads/googleads/v1/errors/shared_set_error.proto";
+import "google/ads/googleads/v1/errors/string_format_error.proto";
+import "google/ads/googleads/v1/errors/string_length_error.proto";
+import "google/ads/googleads/v1/errors/url_field_error.proto";
+import "google/ads/googleads/v1/errors/user_list_error.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ErrorsProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing the common error protos
+
+// Describes how a GoogleAds API call failed. It's returned inside
+// google.rpc.Status.details when a call fails.
+message GoogleAdsFailure {
+ // The list of errors that occurred.
+ repeated GoogleAdsError errors = 1;
+}
+
+// GoogleAds-specific error.
+message GoogleAdsError {
+ // An enum value that indicates which error occurred.
+ ErrorCode error_code = 1;
+
+ // A human-readable description of the error.
+ string message = 2;
+
+ // The value that triggered the error.
+ google.ads.googleads.v1.common.Value trigger = 3;
+
+ // Describes the part of the request proto that caused the error.
+ ErrorLocation location = 4;
+
+ // Additional error details, which are returned by certain error codes. Most
+ // error codes do not include details.
+ ErrorDetails details = 5;
+}
+
+// The error reason represented by type and enum.
+message ErrorCode {
+ // The list of error enums
+ oneof error_code {
+ // An error caused by the request
+ RequestErrorEnum.RequestError request_error = 1;
+
+ // An error with a Bidding Strategy mutate.
+ BiddingStrategyErrorEnum.BiddingStrategyError bidding_strategy_error = 2;
+
+ // An error with a URL field mutate.
+ UrlFieldErrorEnum.UrlFieldError url_field_error = 3;
+
+ // An error with a list operation.
+ ListOperationErrorEnum.ListOperationError list_operation_error = 4;
+
+ // An error with an AWQL query
+ QueryErrorEnum.QueryError query_error = 5;
+
+ // An error with a mutate
+ MutateErrorEnum.MutateError mutate_error = 7;
+
+ // An error with a field mask
+ FieldMaskErrorEnum.FieldMaskError field_mask_error = 8;
+
+ // An error encountered when trying to authorize a user.
+ AuthorizationErrorEnum.AuthorizationError authorization_error = 9;
+
+ // An unexpected server-side error.
+ InternalErrorEnum.InternalError internal_error = 10;
+
+ // An error with the amonut of quota remaining.
+ QuotaErrorEnum.QuotaError quota_error = 11;
+
+ // An error with an Ad Group Ad mutate.
+ AdErrorEnum.AdError ad_error = 12;
+
+ // An error with an Ad Group mutate.
+ AdGroupErrorEnum.AdGroupError ad_group_error = 13;
+
+ // An error with a Campaign Budget mutate.
+ CampaignBudgetErrorEnum.CampaignBudgetError campaign_budget_error = 14;
+
+ // An error with a Campaign mutate.
+ CampaignErrorEnum.CampaignError campaign_error = 15;
+
+ // Indicates failure to properly authenticate user.
+ AuthenticationErrorEnum.AuthenticationError authentication_error = 17;
+
+ // Indicates failure to properly authenticate user.
+ AdGroupCriterionErrorEnum.AdGroupCriterionError ad_group_criterion_error = 18;
+
+ // The reasons for the ad customizer error
+ AdCustomizerErrorEnum.AdCustomizerError ad_customizer_error = 19;
+
+ // The reasons for the ad group ad error
+ AdGroupAdErrorEnum.AdGroupAdError ad_group_ad_error = 21;
+
+ // The reasons for the ad sharing error
+ AdSharingErrorEnum.AdSharingError ad_sharing_error = 24;
+
+ // The reasons for the adx error
+ AdxErrorEnum.AdxError adx_error = 25;
+
+ // The reasons for the asset error
+ AssetErrorEnum.AssetError asset_error = 107;
+
+ // The reasons for the bidding errors
+ BiddingErrorEnum.BiddingError bidding_error = 26;
+
+ // The reasons for the campaign criterion error
+ CampaignCriterionErrorEnum.CampaignCriterionError campaign_criterion_error = 29;
+
+ // The reasons for the collection size error
+ CollectionSizeErrorEnum.CollectionSizeError collection_size_error = 31;
+
+ // The reasons for the country code error
+ CountryCodeErrorEnum.CountryCodeError country_code_error = 109;
+
+ // The reasons for the criterion error
+ CriterionErrorEnum.CriterionError criterion_error = 32;
+
+ // The reasons for the customer error
+ CustomerErrorEnum.CustomerError customer_error = 90;
+
+ // The reasons for the date error
+ DateErrorEnum.DateError date_error = 33;
+
+ // The reasons for the date range error
+ DateRangeErrorEnum.DateRangeError date_range_error = 34;
+
+ // The reasons for the distinct error
+ DistinctErrorEnum.DistinctError distinct_error = 35;
+
+ // The reasons for the feed attribute reference error
+ FeedAttributeReferenceErrorEnum.FeedAttributeReferenceError feed_attribute_reference_error = 36;
+
+ // The reasons for the function error
+ FunctionErrorEnum.FunctionError function_error = 37;
+
+ // The reasons for the function parsing error
+ FunctionParsingErrorEnum.FunctionParsingError function_parsing_error = 38;
+
+ // The reasons for the id error
+ IdErrorEnum.IdError id_error = 39;
+
+ // The reasons for the image error
+ ImageErrorEnum.ImageError image_error = 40;
+
+ // The reasons for the language code error
+ LanguageCodeErrorEnum.LanguageCodeError language_code_error = 110;
+
+ // The reasons for the media bundle error
+ MediaBundleErrorEnum.MediaBundleError media_bundle_error = 42;
+
+ // The reasons for the media file error
+ MediaFileErrorEnum.MediaFileError media_file_error = 86;
+
+ // The reasons for the multiplier error
+ MultiplierErrorEnum.MultiplierError multiplier_error = 44;
+
+ // The reasons for the new resource creation error
+ NewResourceCreationErrorEnum.NewResourceCreationError new_resource_creation_error = 45;
+
+ // The reasons for the not empty error
+ NotEmptyErrorEnum.NotEmptyError not_empty_error = 46;
+
+ // The reasons for the null error
+ NullErrorEnum.NullError null_error = 47;
+
+ // The reasons for the operator error
+ OperatorErrorEnum.OperatorError operator_error = 48;
+
+ // The reasons for the range error
+ RangeErrorEnum.RangeError range_error = 49;
+
+ // The reasons for error in applying a recommendation
+ RecommendationErrorEnum.RecommendationError recommendation_error = 58;
+
+ // The reasons for the region code error
+ RegionCodeErrorEnum.RegionCodeError region_code_error = 51;
+
+ // The reasons for the setting error
+ SettingErrorEnum.SettingError setting_error = 52;
+
+ // The reasons for the string format error
+ StringFormatErrorEnum.StringFormatError string_format_error = 53;
+
+ // The reasons for the string length error
+ StringLengthErrorEnum.StringLengthError string_length_error = 54;
+
+ // The reasons for the operation access denied error
+ OperationAccessDeniedErrorEnum.OperationAccessDeniedError operation_access_denied_error = 55;
+
+ // The reasons for the resource access denied error
+ ResourceAccessDeniedErrorEnum.ResourceAccessDeniedError resource_access_denied_error = 56;
+
+ // The reasons for the resource count limit exceeded error
+ ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededError resource_count_limit_exceeded_error = 57;
+
+ // The reasons for the ad group bid modifier error
+ AdGroupBidModifierErrorEnum.AdGroupBidModifierError ad_group_bid_modifier_error = 59;
+
+ // The reasons for the context error
+ ContextErrorEnum.ContextError context_error = 60;
+
+ // The reasons for the field error
+ FieldErrorEnum.FieldError field_error = 61;
+
+ // The reasons for the shared set error
+ SharedSetErrorEnum.SharedSetError shared_set_error = 62;
+
+ // The reasons for the shared criterion error
+ SharedCriterionErrorEnum.SharedCriterionError shared_criterion_error = 63;
+
+ // The reasons for the campaign shared set error
+ CampaignSharedSetErrorEnum.CampaignSharedSetError campaign_shared_set_error = 64;
+
+ // The reasons for the conversion action error
+ ConversionActionErrorEnum.ConversionActionError conversion_action_error = 65;
+
+ // The reasons for the conversion adjustment upload error
+ ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError conversion_adjustment_upload_error = 115;
+
+ // The reasons for the conversion upload error
+ ConversionUploadErrorEnum.ConversionUploadError conversion_upload_error = 111;
+
+ // The reasons for the header error.
+ HeaderErrorEnum.HeaderError header_error = 66;
+
+ // The reasons for the database error.
+ DatabaseErrorEnum.DatabaseError database_error = 67;
+
+ // The reasons for the policy finding error.
+ PolicyFindingErrorEnum.PolicyFindingError policy_finding_error = 68;
+
+ // The reason for enum error.
+ EnumErrorEnum.EnumError enum_error = 70;
+
+ // The reason for keyword plan error.
+ KeywordPlanErrorEnum.KeywordPlanError keyword_plan_error = 71;
+
+ // The reason for keyword plan campaign error.
+ KeywordPlanCampaignErrorEnum.KeywordPlanCampaignError keyword_plan_campaign_error = 72;
+
+ // The reason for keyword plan negative keyword error.
+ KeywordPlanNegativeKeywordErrorEnum.KeywordPlanNegativeKeywordError keyword_plan_negative_keyword_error = 73;
+
+ // The reason for keyword plan ad group error.
+ KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupError keyword_plan_ad_group_error = 74;
+
+ // The reason for keyword plan keyword error.
+ KeywordPlanKeywordErrorEnum.KeywordPlanKeywordError keyword_plan_keyword_error = 75;
+
+ // The reason for keyword idea error.
+ KeywordPlanIdeaErrorEnum.KeywordPlanIdeaError keyword_plan_idea_error = 76;
+
+ // The reasons for account budget proposal errors.
+ AccountBudgetProposalErrorEnum.AccountBudgetProposalError account_budget_proposal_error = 77;
+
+ // The reasons for the user list error
+ UserListErrorEnum.UserListError user_list_error = 78;
+
+ // The reasons for the change status error
+ ChangeStatusErrorEnum.ChangeStatusError change_status_error = 79;
+
+ // The reasons for the feed error
+ FeedErrorEnum.FeedError feed_error = 80;
+
+ // The reasons for the geo target constant suggestion error.
+ GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionError geo_target_constant_suggestion_error = 81;
+
+ // The reasons for the feed item error
+ FeedItemErrorEnum.FeedItemError feed_item_error = 83;
+
+ // The reason for the label error.
+ LabelErrorEnum.LabelError label_error = 84;
+
+ // The reasons for the billing setup error
+ BillingSetupErrorEnum.BillingSetupError billing_setup_error = 87;
+
+ // The reasons for the customer client link error
+ CustomerClientLinkErrorEnum.CustomerClientLinkError customer_client_link_error = 88;
+
+ // The reasons for the customer manager link error
+ CustomerManagerLinkErrorEnum.CustomerManagerLinkError customer_manager_link_error = 91;
+
+ // The reasons for the feed mapping error
+ FeedMappingErrorEnum.FeedMappingError feed_mapping_error = 92;
+
+ // The reasons for the customer feed error
+ CustomerFeedErrorEnum.CustomerFeedError customer_feed_error = 93;
+
+ // The reasons for the ad group feed error
+ AdGroupFeedErrorEnum.AdGroupFeedError ad_group_feed_error = 94;
+
+ // The reasons for the campaign feed error
+ CampaignFeedErrorEnum.CampaignFeedError campaign_feed_error = 96;
+
+ // The reasons for the custom interest error
+ CustomInterestErrorEnum.CustomInterestError custom_interest_error = 97;
+
+ // The reasons for the extension feed item error
+ ExtensionFeedItemErrorEnum.ExtensionFeedItemError extension_feed_item_error = 100;
+
+ // The reasons for the ad parameter error
+ AdParameterErrorEnum.AdParameterError ad_parameter_error = 101;
+
+ // The reasons for the feed item validation error
+ FeedItemValidationErrorEnum.FeedItemValidationError feed_item_validation_error = 102;
+
+ // The reasons for the extension setting error
+ ExtensionSettingErrorEnum.ExtensionSettingError extension_setting_error = 103;
+
+ // The reasons for the feed item target error
+ FeedItemTargetErrorEnum.FeedItemTargetError feed_item_target_error = 104;
+
+ // The reasons for the policy violation error
+ PolicyViolationErrorEnum.PolicyViolationError policy_violation_error = 105;
+
+ // The reasons for the mutate job error
+ MutateJobErrorEnum.MutateJobError mutate_job_error = 108;
+
+ // The reasons for the mutate job error
+ PartialFailureErrorEnum.PartialFailureError partial_failure_error = 112;
+
+ // The reasons for the policy validation parameter error
+ PolicyValidationParameterErrorEnum.PolicyValidationParameterError policy_validation_parameter_error = 114;
+ }
+}
+
+// Describes the part of the request proto that caused the error.
+message ErrorLocation {
+ // A part of a field path.
+ message FieldPathElement {
+ // The name of a field or a oneof
+ string field_name = 1;
+
+ // If field_name is a repeated field, this is the element that failed
+ google.protobuf.Int64Value index = 2;
+ }
+
+ // A field path that indicates which field was invalid in the request.
+ repeated FieldPathElement field_path_elements = 2;
+}
+
+// Additional error details.
+message ErrorDetails {
+ // The error code that should have been returned, but wasn't. This is used
+ // when the error code is InternalError.ERROR_CODE_NOT_PUBLISHED.
+ string unpublished_error_code = 1;
+
+ // Describes an ad policy violation.
+ PolicyViolationDetails policy_violation_details = 2;
+
+ // Describes policy violation findings.
+ PolicyFindingDetails policy_finding_details = 3;
+}
+
+// Error returned as part of a mutate response.
+// This error indicates single policy violation by some text
+// in one of the fields.
+message PolicyViolationDetails {
+ // Human readable description of policy violation.
+ string external_policy_description = 2;
+
+ // Unique identifier for this violation.
+ // If policy is exemptible, this key may be used to request exemption.
+ google.ads.googleads.v1.common.PolicyViolationKey key = 4;
+
+ // Human readable name of the policy.
+ string external_policy_name = 5;
+
+ // Whether user can file an exemption request for this violation.
+ bool is_exemptible = 6;
+}
+
+// Error returned as part of a mutate response.
+// This error indicates one or more policy findings in the fields of a
+// resource.
+message PolicyFindingDetails {
+ // The list of policy topics for the resource. Contains the PROHIBITED or
+ // FULLY_LIMITED policy topic entries that prevented the resource from being
+ // saved (among any other entries the resource may also have).
+ repeated google.ads.googleads.v1.common.PolicyTopicEntry policy_topic_entries = 1;
+}
diff --git a/google/ads/googleads/v1/errors/extension_feed_item_error.proto b/google/ads/googleads/v1/errors/extension_feed_item_error.proto
new file mode 100644
index 000000000..dbe3e0cf6
--- /dev/null
+++ b/google/ads/googleads/v1/errors/extension_feed_item_error.proto
@@ -0,0 +1,188 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionFeedItemErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing extension feed item errors.
+
+// Container for enum describing possible extension feed item error.
+message ExtensionFeedItemErrorEnum {
+ // Enum describing possible extension feed item errors.
+ enum ExtensionFeedItemError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Value is not within the accepted range.
+ VALUE_OUT_OF_RANGE = 2;
+
+ // Url list is too long.
+ URL_LIST_TOO_LONG = 3;
+
+ // Cannot have a geo targeting restriction without having geo targeting.
+ CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING = 4;
+
+ // Cannot simultaneously set sitelink field with final urls.
+ CANNOT_SET_WITH_FINAL_URLS = 5;
+
+ // Must set field with final urls.
+ CANNOT_SET_WITHOUT_FINAL_URLS = 6;
+
+ // Phone number for a call extension is invalid.
+ INVALID_PHONE_NUMBER = 7;
+
+ // Phone number for a call extension is not supported for the given country
+ // code.
+ PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 8;
+
+ // A carrier specific number in short format is not allowed for call
+ // extensions.
+ CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 9;
+
+ // Premium rate numbers are not allowed for call extensions.
+ PREMIUM_RATE_NUMBER_NOT_ALLOWED = 10;
+
+ // Phone number type for a call extension is not allowed.
+ // For example, personal number is not allowed for a call extension in
+ // most regions.
+ DISALLOWED_NUMBER_TYPE = 11;
+
+ // Phone number for a call extension does not meet domestic format
+ // requirements.
+ INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 12;
+
+ // Vanity phone numbers (i.e. those including letters) are not allowed for
+ // call extensions.
+ VANITY_PHONE_NUMBER_NOT_ALLOWED = 13;
+
+ // Call conversion action provided for a call extension is invalid.
+ INVALID_CALL_CONVERSION_ACTION = 14;
+
+ // For a call extension, the customer is not whitelisted for call tracking.
+ CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING = 15;
+
+ // Call tracking is not supported for the given country for a call
+ // extension.
+ CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 16;
+
+ // Customer hasn't consented for call recording, which is required for
+ // creating/updating call feed items.
+ CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 17;
+
+ // App id provided for an app extension is invalid.
+ INVALID_APP_ID = 18;
+
+ // Quotation marks present in the review text for a review extension.
+ QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 19;
+
+ // Hyphen character present in the review text for a review extension.
+ HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 20;
+
+ // A blacklisted review source name or url was provided for a review
+ // extension.
+ REVIEW_EXTENSION_SOURCE_INELIGIBLE = 21;
+
+ // Review source name should not be found in the review text.
+ SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 22;
+
+ // Inconsistent currency codes.
+ INCONSISTENT_CURRENCY_CODES = 23;
+
+ // Price extension cannot have duplicated headers.
+ PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 24;
+
+ // Price item cannot have duplicated header and description.
+ PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 25;
+
+ // Price extension has too few items.
+ PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 26;
+
+ // Price extension has too many items.
+ PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 27;
+
+ // The input value is not currently supported.
+ UNSUPPORTED_VALUE = 28;
+
+ // The input value is not currently supported in the selected language of an
+ // extension.
+ UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 29;
+
+ // Unknown or unsupported device preference.
+ INVALID_DEVICE_PREFERENCE = 30;
+
+ // Invalid feed item schedule end time (i.e., endHour = 24 and endMinute !=
+ // 0).
+ INVALID_SCHEDULE_END = 31;
+
+ // Date time zone does not match the account's time zone.
+ DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 32;
+
+ // Invalid structured snippet header.
+ INVALID_SNIPPETS_HEADER = 33;
+
+ // Cannot operate on removed feed item.
+ CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 34;
+
+ // Phone number not supported when call tracking enabled for country.
+ PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 35;
+
+ // Cannot set call_conversion_action while call_conversion_tracking_enabled
+ // is set to true.
+ CONFLICTING_CALL_CONVERSION_SETTINGS = 36;
+
+ // The type of the input extension feed item doesn't match the existing
+ // extension feed item.
+ EXTENSION_TYPE_MISMATCH = 37;
+
+ // The oneof field extension i.e. subtype of extension feed item is
+ // required.
+ EXTENSION_SUBTYPE_REQUIRED = 38;
+
+ // The referenced feed item is not mapped to a supported extension type.
+ EXTENSION_TYPE_UNSUPPORTED = 39;
+
+ // Cannot operate on a Feed with more than one active FeedMapping.
+ CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS = 40;
+
+ // Cannot operate on a Feed that has key attributes.
+ CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES = 41;
+
+ // Input price is not in a valid format.
+ INVALID_PRICE_FORMAT = 42;
+
+ // The promotion time is invalid.
+ PROMOTION_INVALID_TIME = 43;
+
+ // This field has too many decimal places specified.
+ TOO_MANY_DECIMAL_PLACES_SPECIFIED = 44;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/extension_setting_error.proto b/google/ads/googleads/v1/errors/extension_setting_error.proto
new file mode 100644
index 000000000..80a7715ef
--- /dev/null
+++ b/google/ads/googleads/v1/errors/extension_setting_error.proto
@@ -0,0 +1,257 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionSettingErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing extension setting validation errors.
+
+// Container for enum describing validation errors of extension settings.
+message ExtensionSettingErrorEnum {
+ // Enum describing possible extension setting errors.
+ enum ExtensionSettingError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // A platform restriction was provided without input extensions or existing
+ // extensions.
+ EXTENSIONS_REQUIRED = 2;
+
+ // The provided feed type does not correspond to the provided extensions.
+ FEED_TYPE_EXTENSION_TYPE_MISMATCH = 3;
+
+ // The provided feed type cannot be used.
+ INVALID_FEED_TYPE = 4;
+
+ // The provided feed type cannot be used at the customer level.
+ INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING = 5;
+
+ // Cannot change a feed item field on a CREATE operation.
+ CANNOT_CHANGE_FEED_ITEM_ON_CREATE = 6;
+
+ // Cannot update an extension that is not already in this setting.
+ CANNOT_UPDATE_NEWLY_CREATED_EXTENSION = 7;
+
+ // There is no existing AdGroupExtensionSetting for this type.
+ NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE = 8;
+
+ // There is no existing CampaignExtensionSetting for this type.
+ NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE = 9;
+
+ // There is no existing CustomerExtensionSetting for this type.
+ NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE = 10;
+
+ // The AdGroupExtensionSetting already exists. UPDATE should be used to
+ // modify the existing AdGroupExtensionSetting.
+ AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS = 11;
+
+ // The CampaignExtensionSetting already exists. UPDATE should be used to
+ // modify the existing CampaignExtensionSetting.
+ CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS = 12;
+
+ // The CustomerExtensionSetting already exists. UPDATE should be used to
+ // modify the existing CustomerExtensionSetting.
+ CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS = 13;
+
+ // An active ad group feed already exists for this place holder type.
+ AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 14;
+
+ // An active campaign feed already exists for this place holder type.
+ CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 15;
+
+ // An active customer feed already exists for this place holder type.
+ CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 16;
+
+ // Value is not within the accepted range.
+ VALUE_OUT_OF_RANGE = 17;
+
+ // Cannot simultaneously set specified field with final urls.
+ CANNOT_SET_FIELD_WITH_FINAL_URLS = 18;
+
+ // Must set field with final urls.
+ FINAL_URLS_NOT_SET = 19;
+
+ // Phone number for a call extension is invalid.
+ INVALID_PHONE_NUMBER = 20;
+
+ // Phone number for a call extension is not supported for the given country
+ // code.
+ PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 21;
+
+ // A carrier specific number in short format is not allowed for call
+ // extensions.
+ CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 22;
+
+ // Premium rate numbers are not allowed for call extensions.
+ PREMIUM_RATE_NUMBER_NOT_ALLOWED = 23;
+
+ // Phone number type for a call extension is not allowed.
+ DISALLOWED_NUMBER_TYPE = 24;
+
+ // Phone number for a call extension does not meet domestic format
+ // requirements.
+ INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 25;
+
+ // Vanity phone numbers (i.e. those including letters) are not allowed for
+ // call extensions.
+ VANITY_PHONE_NUMBER_NOT_ALLOWED = 26;
+
+ // Country code provided for a call extension is invalid.
+ INVALID_COUNTRY_CODE = 27;
+
+ // Call conversion type id provided for a call extension is invalid.
+ INVALID_CALL_CONVERSION_TYPE_ID = 28;
+
+ // For a call extension, the customer is not whitelisted for call tracking.
+ CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING = 29;
+
+ // Call tracking is not supported for the given country for a call
+ // extension.
+ CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 30;
+
+ // App id provided for an app extension is invalid.
+ INVALID_APP_ID = 31;
+
+ // Quotation marks present in the review text for a review extension.
+ QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 32;
+
+ // Hyphen character present in the review text for a review extension.
+ HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 33;
+
+ // A blacklisted review source name or url was provided for a review
+ // extension.
+ REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE = 34;
+
+ // Review source name should not be found in the review text.
+ SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 35;
+
+ // Field must be set.
+ MISSING_FIELD = 36;
+
+ // Inconsistent currency codes.
+ INCONSISTENT_CURRENCY_CODES = 37;
+
+ // Price extension cannot have duplicated headers.
+ PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 38;
+
+ // Price item cannot have duplicated header and description.
+ PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 39;
+
+ // Price extension has too few items
+ PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 40;
+
+ // Price extension has too many items
+ PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 41;
+
+ // The input value is not currently supported.
+ UNSUPPORTED_VALUE = 42;
+
+ // Unknown or unsupported device preference.
+ INVALID_DEVICE_PREFERENCE = 43;
+
+ // Invalid feed item schedule end time (i.e., endHour = 24 and
+ // endMinute != 0).
+ INVALID_SCHEDULE_END = 45;
+
+ // Date time zone does not match the account's time zone.
+ DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 47;
+
+ // Overlapping feed item schedule times (e.g., 7-10AM and 8-11AM) are not
+ // allowed.
+ OVERLAPPING_SCHEDULES_NOT_ALLOWED = 48;
+
+ // Feed item schedule end time must be after start time.
+ SCHEDULE_END_NOT_AFTER_START = 49;
+
+ // There are too many feed item schedules per day.
+ TOO_MANY_SCHEDULES_PER_DAY = 50;
+
+ // Cannot edit the same extension feed item more than once in the same
+ // request.
+ DUPLICATE_EXTENSION_FEED_ITEM_EDIT = 51;
+
+ // Invalid structured snippet header.
+ INVALID_SNIPPETS_HEADER = 52;
+
+ // Phone number with call tracking enabled is not supported for the
+ // specified country.
+ PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 53;
+
+ // The targeted adgroup must belong to the targeted campaign.
+ CAMPAIGN_TARGETING_MISMATCH = 54;
+
+ // The feed used by the ExtensionSetting is removed and cannot be operated
+ // on. Remove the ExtensionSetting to allow a new one to be created using
+ // an active feed.
+ CANNOT_OPERATE_ON_REMOVED_FEED = 55;
+
+ // The ExtensionFeedItem type is required for this operation.
+ EXTENSION_TYPE_REQUIRED = 56;
+
+ // The matching function that links the extension feed to the customer,
+ // campaign, or ad group is not compatible with the ExtensionSetting
+ // services.
+ INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION = 57;
+
+ // Start date must be before end date.
+ START_DATE_AFTER_END_DATE = 58;
+
+ // Input price is not in a valid format.
+ INVALID_PRICE_FORMAT = 59;
+
+ // The promotion time is invalid.
+ PROMOTION_INVALID_TIME = 60;
+
+ // Cannot set both percent discount and money discount fields.
+ PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT = 61;
+
+ // Cannot set both promotion code and orders over amount fields.
+ PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 62;
+
+ // This field has too many decimal places specified.
+ TOO_MANY_DECIMAL_PLACES_SPECIFIED = 63;
+
+ // The language code is not valid.
+ INVALID_LANGUAGE_CODE = 64;
+
+ // The language is not supported.
+ UNSUPPORTED_LANGUAGE = 65;
+
+ // Customer hasn't consented for call recording, which is required for
+ // adding/updating call extensions.
+ CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 66;
+
+ // The UPDATE operation does not specify any fields other than the resource
+ // name in the update mask.
+ EXTENSION_SETTING_UPDATE_IS_A_NOOP = 67;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/feed_attribute_reference_error.proto b/google/ads/googleads/v1/errors/feed_attribute_reference_error.proto
new file mode 100644
index 000000000..2dbeb730e
--- /dev/null
+++ b/google/ads/googleads/v1/errors/feed_attribute_reference_error.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FeedAttributeReferenceErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing feed attribute reference errors.
+
+// Container for enum describing possible feed attribute reference errors.
+message FeedAttributeReferenceErrorEnum {
+ // Enum describing possible feed attribute reference errors.
+ enum FeedAttributeReferenceError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // A feed referenced by ID has been removed.
+ CANNOT_REFERENCE_REMOVED_FEED = 2;
+
+ // There is no enabled feed with the given name.
+ INVALID_FEED_NAME = 3;
+
+ // There is no feed attribute in an enabled feed with the given name.
+ INVALID_FEED_ATTRIBUTE_NAME = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/feed_error.proto b/google/ads/googleads/v1/errors/feed_error.proto
new file mode 100644
index 000000000..34b63b53b
--- /dev/null
+++ b/google/ads/googleads/v1/errors/feed_error.proto
@@ -0,0 +1,103 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FeedErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing feed errors.
+
+// Container for enum describing possible feed errors.
+message FeedErrorEnum {
+ // Enum describing possible feed errors.
+ enum FeedError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The names of the FeedAttributes must be unique.
+ ATTRIBUTE_NAMES_NOT_UNIQUE = 2;
+
+ // The attribute list must be an exact copy of the existing list if the
+ // attribute ID's are present.
+ ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES = 3;
+
+ // Cannot specify USER origin for a system generated feed.
+ CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED = 4;
+
+ // Cannot specify GOOGLE origin for a non-system generated feed.
+ CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED = 5;
+
+ // Cannot specify feed attributes for system feed.
+ CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED = 6;
+
+ // Cannot update FeedAttributes on feed with origin GOOGLE.
+ CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE = 7;
+
+ // The given ID refers to a removed Feed. Removed Feeds are immutable.
+ FEED_REMOVED = 8;
+
+ // The origin of the feed is not valid for the client.
+ INVALID_ORIGIN_VALUE = 9;
+
+ // A user can only create and modify feeds with USER origin.
+ FEED_ORIGIN_IS_NOT_USER = 10;
+
+ // Invalid auth token for the given email.
+ INVALID_AUTH_TOKEN_FOR_EMAIL = 11;
+
+ // Invalid email specified.
+ INVALID_EMAIL = 12;
+
+ // Feed name matches that of another active Feed.
+ DUPLICATE_FEED_NAME = 13;
+
+ // Name of feed is not allowed.
+ INVALID_FEED_NAME = 14;
+
+ // Missing OAuthInfo.
+ MISSING_OAUTH_INFO = 15;
+
+ // New FeedAttributes must not affect the unique key.
+ NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY = 16;
+
+ // Too many FeedAttributes for a Feed.
+ TOO_MANY_ATTRIBUTES = 17;
+
+ // The business account is not valid.
+ INVALID_BUSINESS_ACCOUNT = 18;
+
+ // Business account cannot access Google My Business account.
+ BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT = 19;
+
+ // Invalid chain ID provided for affiliate location feed.
+ INVALID_AFFILIATE_CHAIN_ID = 20;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/feed_item_error.proto b/google/ads/googleads/v1/errors/feed_item_error.proto
new file mode 100644
index 000000000..e88b8a764
--- /dev/null
+++ b/google/ads/googleads/v1/errors/feed_item_error.proto
@@ -0,0 +1,72 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing feed item errors.
+
+// Container for enum describing possible feed item errors.
+message FeedItemErrorEnum {
+ // Enum describing possible feed item errors.
+ enum FeedItemError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Cannot convert the feed attribute value from string to its real type.
+ CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING = 2;
+
+ // Cannot operate on removed feed item.
+ CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 3;
+
+ // Date time zone does not match the account's time zone.
+ DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 4;
+
+ // Feed item with the key attributes could not be found.
+ KEY_ATTRIBUTES_NOT_FOUND = 5;
+
+ // Url feed attribute value is not valid.
+ INVALID_URL = 6;
+
+ // Some key attributes are missing.
+ MISSING_KEY_ATTRIBUTES = 7;
+
+ // Feed item has same key attributes as another feed item.
+ KEY_ATTRIBUTES_NOT_UNIQUE = 8;
+
+ // Cannot modify key attributes on an existing feed item.
+ CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE = 9;
+
+ // The feed attribute value is too large.
+ SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE = 10;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/feed_item_target_error.proto b/google/ads/googleads/v1/errors/feed_item_target_error.proto
new file mode 100644
index 000000000..9e7508228
--- /dev/null
+++ b/google/ads/googleads/v1/errors/feed_item_target_error.proto
@@ -0,0 +1,65 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemTargetErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing feed item target errors.
+
+// Container for enum describing possible feed item target errors.
+message FeedItemTargetErrorEnum {
+ // Enum describing possible feed item target errors.
+ enum FeedItemTargetError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // On CREATE, the FeedItemTarget must have a populated field in the oneof
+ // target.
+ MUST_SET_TARGET_ONEOF_ON_CREATE = 2;
+
+ // The specified feed item target already exists, so it cannot be added.
+ FEED_ITEM_TARGET_ALREADY_EXISTS = 3;
+
+ // The schedules for a given feed item cannot overlap.
+ FEED_ITEM_SCHEDULES_CANNOT_OVERLAP = 4;
+
+ // Too many targets of a given type were added for a single feed item.
+ TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE = 5;
+
+ // Too many AdSchedules are enabled for the feed item for the given day.
+ TOO_MANY_SCHEDULES_PER_DAY = 6;
+
+ // A feed item may either have an enabled campaign target or an enabled ad
+ // group target.
+ CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/feed_item_validation_error.proto b/google/ads/googleads/v1/errors/feed_item_validation_error.proto
new file mode 100644
index 000000000..390619015
--- /dev/null
+++ b/google/ads/googleads/v1/errors/feed_item_validation_error.proto
@@ -0,0 +1,329 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemValidationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing feed item validation errors.
+
+// Container for enum describing possible validation errors of a feed item.
+message FeedItemValidationErrorEnum {
+ // The possible validation errors of a feed item.
+ enum FeedItemValidationError {
+ // No value has been specified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // String is too short.
+ STRING_TOO_SHORT = 2;
+
+ // String is too long.
+ STRING_TOO_LONG = 3;
+
+ // Value is not provided.
+ VALUE_NOT_SPECIFIED = 4;
+
+ // Phone number format is invalid for region.
+ INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 5;
+
+ // String does not represent a phone number.
+ INVALID_PHONE_NUMBER = 6;
+
+ // Phone number format is not compatible with country code.
+ PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 7;
+
+ // Premium rate number is not allowed.
+ PREMIUM_RATE_NUMBER_NOT_ALLOWED = 8;
+
+ // Phone number type is not allowed.
+ DISALLOWED_NUMBER_TYPE = 9;
+
+ // Specified value is outside of the valid range.
+ VALUE_OUT_OF_RANGE = 10;
+
+ // Call tracking is not supported in the selected country.
+ CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 11;
+
+ // Customer is not whitelisted for call tracking.
+ CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING = 12;
+
+ // Country code is invalid.
+ INVALID_COUNTRY_CODE = 13;
+
+ // The specified mobile app id is invalid.
+ INVALID_APP_ID = 14;
+
+ // Some required field attributes are missing.
+ MISSING_ATTRIBUTES_FOR_FIELDS = 15;
+
+ // Invalid email button type for email extension.
+ INVALID_TYPE_ID = 16;
+
+ // Email address is invalid.
+ INVALID_EMAIL_ADDRESS = 17;
+
+ // The HTTPS URL in email extension is invalid.
+ INVALID_HTTPS_URL = 18;
+
+ // Delivery address is missing from email extension.
+ MISSING_DELIVERY_ADDRESS = 19;
+
+ // FeedItem scheduling start date comes after end date.
+ START_DATE_AFTER_END_DATE = 20;
+
+ // FeedItem scheduling start time is missing.
+ MISSING_FEED_ITEM_START_TIME = 21;
+
+ // FeedItem scheduling end time is missing.
+ MISSING_FEED_ITEM_END_TIME = 22;
+
+ // Cannot compute system attributes on a FeedItem that has no FeedItemId.
+ MISSING_FEED_ITEM_ID = 23;
+
+ // Call extension vanity phone numbers are not supported.
+ VANITY_PHONE_NUMBER_NOT_ALLOWED = 24;
+
+ // Invalid review text.
+ INVALID_REVIEW_EXTENSION_SNIPPET = 25;
+
+ // Invalid format for numeric value in ad parameter.
+ INVALID_NUMBER_FORMAT = 26;
+
+ // Invalid format for date value in ad parameter.
+ INVALID_DATE_FORMAT = 27;
+
+ // Invalid format for price value in ad parameter.
+ INVALID_PRICE_FORMAT = 28;
+
+ // Unrecognized type given for value in ad parameter.
+ UNKNOWN_PLACEHOLDER_FIELD = 29;
+
+ // Enhanced sitelinks must have both description lines specified.
+ MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE = 30;
+
+ // Review source is ineligible.
+ REVIEW_EXTENSION_SOURCE_INELIGIBLE = 31;
+
+ // Review text cannot contain hyphens or dashes.
+ HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 32;
+
+ // Review text cannot contain double quote characters.
+ DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 33;
+
+ // Review text cannot contain quote characters.
+ QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 34;
+
+ // Parameters are encoded in the wrong format.
+ INVALID_FORM_ENCODED_PARAMS = 35;
+
+ // URL parameter name must contain only letters, numbers, underscores, and
+ // dashes.
+ INVALID_URL_PARAMETER_NAME = 36;
+
+ // Cannot find address location.
+ NO_GEOCODING_RESULT = 37;
+
+ // Review extension text has source name.
+ SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 38;
+
+ // Some phone numbers can be shorter than usual. Some of these short numbers
+ // are carrier-specific, and we disallow those in ad extensions because they
+ // will not be available to all users.
+ CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 39;
+
+ // Triggered when a request references a placeholder field id that does not
+ // exist.
+ INVALID_PLACEHOLDER_FIELD_ID = 40;
+
+ // URL contains invalid ValueTrack tags or format.
+ INVALID_URL_TAG = 41;
+
+ // Provided list exceeds acceptable size.
+ LIST_TOO_LONG = 42;
+
+ // Certain combinations of attributes aren't allowed to be specified in the
+ // same feed item.
+ INVALID_ATTRIBUTES_COMBINATION = 43;
+
+ // An attribute has the same value repeatedly.
+ DUPLICATE_VALUES = 44;
+
+ // Advertisers can link a conversion action with a phone number to indicate
+ // that sufficiently long calls forwarded to that phone number should be
+ // counted as conversions of the specified type. This is an error message
+ // indicating that the conversion action specified is invalid (e.g., the
+ // conversion action does not exist within the appropriate Google Ads
+ // account, or it is a type of conversion not appropriate to phone call
+ // conversions).
+ INVALID_CALL_CONVERSION_ACTION_ID = 45;
+
+ // Tracking template requires final url to be set.
+ CANNOT_SET_WITHOUT_FINAL_URLS = 46;
+
+ // An app id was provided that doesn't exist in the given app store.
+ APP_ID_DOESNT_EXIST_IN_APP_STORE = 47;
+
+ // Invalid U2 final url.
+ INVALID_FINAL_URL = 48;
+
+ // Invalid U2 tracking url.
+ INVALID_TRACKING_URL = 49;
+
+ // Final URL should start from App download URL.
+ INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 50;
+
+ // List provided is too short.
+ LIST_TOO_SHORT = 51;
+
+ // User Action field has invalid value.
+ INVALID_USER_ACTION = 52;
+
+ // Type field has invalid value.
+ INVALID_TYPE_NAME = 53;
+
+ // Change status for event is invalid.
+ INVALID_EVENT_CHANGE_STATUS = 54;
+
+ // The header of a structured snippets extension is not one of the valid
+ // headers.
+ INVALID_SNIPPETS_HEADER = 55;
+
+ // Android app link is not formatted correctly
+ INVALID_ANDROID_APP_LINK = 56;
+
+ // Phone number incompatible with call tracking for country.
+ NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 57;
+
+ // The input is identical to a reserved keyword
+ RESERVED_KEYWORD_OTHER = 58;
+
+ // Each option label in the message extension must be unique.
+ DUPLICATE_OPTION_LABELS = 59;
+
+ // Each option prefill in the message extension must be unique.
+ DUPLICATE_OPTION_PREFILLS = 60;
+
+ // In message extensions, the number of optional labels and optional
+ // prefills must be the same.
+ UNEQUAL_LIST_LENGTHS = 61;
+
+ // All currency codes in an ad extension must be the same.
+ INCONSISTENT_CURRENCY_CODES = 62;
+
+ // Headers in price extension are not unique.
+ PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 63;
+
+ // Header and description in an item are the same.
+ ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 64;
+
+ // Price extension has too few items.
+ PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 65;
+
+ // The given value is not supported.
+ UNSUPPORTED_VALUE = 66;
+
+ // Invalid final mobile url.
+ INVALID_FINAL_MOBILE_URL = 67;
+
+ // The given string value of Label contains invalid characters
+ INVALID_KEYWORDLESS_AD_RULE_LABEL = 68;
+
+ // The given URL contains value track parameters.
+ VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 69;
+
+ // The given value is not supported in the selected language of an
+ // extension.
+ UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 70;
+
+ // The iOS app link is not formatted correctly.
+ INVALID_IOS_APP_LINK = 71;
+
+ // iOS app link or iOS app store id is missing.
+ MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID = 72;
+
+ // Promotion time is invalid.
+ PROMOTION_INVALID_TIME = 73;
+
+ // Both the percent off and money amount off fields are set.
+ PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 74;
+
+ // Both the promotion code and orders over amount fields are set.
+ PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 75;
+
+ // Too many decimal places are specified.
+ TOO_MANY_DECIMAL_PLACES_SPECIFIED = 76;
+
+ // Ad Customizers are present and not allowed.
+ AD_CUSTOMIZERS_NOT_ALLOWED = 77;
+
+ // Language code is not valid.
+ INVALID_LANGUAGE_CODE = 78;
+
+ // Language is not supported.
+ UNSUPPORTED_LANGUAGE = 79;
+
+ // IF Function is present and not allowed.
+ IF_FUNCTION_NOT_ALLOWED = 80;
+
+ // Final url suffix is not valid.
+ INVALID_FINAL_URL_SUFFIX = 81;
+
+ // Final url suffix contains an invalid tag.
+ INVALID_TAG_IN_FINAL_URL_SUFFIX = 82;
+
+ // Final url suffix is formatted incorrectly.
+ INVALID_FINAL_URL_SUFFIX_FORMAT = 83;
+
+ // Consent for call recording, which is required for the use of call
+ // extensions, was not provided by the advertiser.
+ CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 84;
+
+ // Multiple message delivery options are set.
+ ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED = 85;
+
+ // No message delivery option is set.
+ NO_DELIVERY_OPTION_IS_SET = 86;
+
+ // String value of conversion reporting state field is not valid.
+ INVALID_CONVERSION_REPORTING_STATE = 87;
+
+ // Image size is not right.
+ IMAGE_SIZE_WRONG = 88;
+
+ // Email delivery is not supported in the country specified in the country
+ // code field.
+ EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY = 89;
+
+ // Auto reply is not supported in the country specified in the country code
+ // field.
+ AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY = 90;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/feed_mapping_error.proto b/google/ads/googleads/v1/errors/feed_mapping_error.proto
new file mode 100644
index 000000000..58c481977
--- /dev/null
+++ b/google/ads/googleads/v1/errors/feed_mapping_error.proto
@@ -0,0 +1,98 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FeedMappingErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing feed item errors.
+
+// Container for enum describing possible feed item errors.
+message FeedMappingErrorEnum {
+ // Enum describing possible feed item errors.
+ enum FeedMappingError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The given placeholder field does not exist.
+ INVALID_PLACEHOLDER_FIELD = 2;
+
+ // The given criterion field does not exist.
+ INVALID_CRITERION_FIELD = 3;
+
+ // The given placeholder type does not exist.
+ INVALID_PLACEHOLDER_TYPE = 4;
+
+ // The given criterion type does not exist.
+ INVALID_CRITERION_TYPE = 5;
+
+ // A feed mapping must contain at least one attribute field mapping.
+ NO_ATTRIBUTE_FIELD_MAPPINGS = 7;
+
+ // The type of the feed attribute referenced in the attribute field mapping
+ // must match the type of the placeholder field.
+ FEED_ATTRIBUTE_TYPE_MISMATCH = 8;
+
+ // A feed mapping for a system generated feed cannot be operated on.
+ CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED = 9;
+
+ // Only one feed mapping for a placeholder type is allowed per feed or
+ // customer (depending on the placeholder type).
+ MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE = 10;
+
+ // Only one feed mapping for a criterion type is allowed per customer.
+ MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE = 11;
+
+ // Only one feed attribute mapping for a placeholder field is allowed
+ // (depending on the placeholder type).
+ MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD = 12;
+
+ // Only one feed attribute mapping for a criterion field is allowed
+ // (depending on the criterion type).
+ MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD = 13;
+
+ // This feed mapping may not contain any explicit attribute field mappings.
+ UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS = 14;
+
+ // Location placeholder feed mappings can only be created for Places feeds.
+ LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS = 15;
+
+ // Mappings for typed feeds cannot be modified.
+ CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED = 16;
+
+ // The given placeholder type can only be mapped to system generated feeds.
+ INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED = 17;
+
+ // The given placeholder type cannot be mapped to a system generated feed
+ // with the given type.
+ INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE = 18;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/field_error.proto b/google/ads/googleads/v1/errors/field_error.proto
new file mode 100644
index 000000000..d6ee6fbfc
--- /dev/null
+++ b/google/ads/googleads/v1/errors/field_error.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FieldErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing field errors.
+
+// Container for enum describing possible field errors.
+message FieldErrorEnum {
+ // Enum describing possible field errors.
+ enum FieldError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The required field was not present in the resource.
+ REQUIRED = 2;
+
+ // The field attempted to be mutated is immutable.
+ IMMUTABLE_FIELD = 3;
+
+ // The field's value is invalid.
+ INVALID_VALUE = 4;
+
+ // The field cannot be set.
+ VALUE_MUST_BE_UNSET = 5;
+
+ // The required repeated field was empty.
+ REQUIRED_NONEMPTY_LIST = 6;
+
+ // The field cannot be cleared.
+ FIELD_CANNOT_BE_CLEARED = 7;
+
+ // The field's value is on a blacklist for this field.
+ BLACKLISTED_VALUE = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/field_mask_error.proto b/google/ads/googleads/v1/errors/field_mask_error.proto
new file mode 100644
index 000000000..12b933c55
--- /dev/null
+++ b/google/ads/googleads/v1/errors/field_mask_error.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FieldMaskErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing field mask errors.
+
+// Container for enum describing possible field mask errors.
+message FieldMaskErrorEnum {
+ // Enum describing possible field mask errors.
+ enum FieldMaskError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The field mask must be provided for update operations.
+ FIELD_MASK_MISSING = 5;
+
+ // The field mask must be empty for create and remove operations.
+ FIELD_MASK_NOT_ALLOWED = 4;
+
+ // The field mask contained an invalid field.
+ FIELD_NOT_FOUND = 2;
+
+ // The field mask updated a field with subfields. Fields with subfields may
+ // be cleared, but not updated. To fix this, the field mask should select
+ // all the subfields of the invalid field.
+ FIELD_HAS_SUBFIELDS = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/function_error.proto b/google/ads/googleads/v1/errors/function_error.proto
new file mode 100644
index 000000000..91647d356
--- /dev/null
+++ b/google/ads/googleads/v1/errors/function_error.proto
@@ -0,0 +1,94 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FunctionErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing function errors.
+
+// Container for enum describing possible function errors.
+message FunctionErrorEnum {
+ // Enum describing possible function errors.
+ enum FunctionError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The format of the function is not recognized as a supported function
+ // format.
+ INVALID_FUNCTION_FORMAT = 2;
+
+ // Operand data types do not match.
+ DATA_TYPE_MISMATCH = 3;
+
+ // The operands cannot be used together in a conjunction.
+ INVALID_CONJUNCTION_OPERANDS = 4;
+
+ // Invalid numer of Operands.
+ INVALID_NUMBER_OF_OPERANDS = 5;
+
+ // Operand Type not supported.
+ INVALID_OPERAND_TYPE = 6;
+
+ // Operator not supported.
+ INVALID_OPERATOR = 7;
+
+ // Request context type not supported.
+ INVALID_REQUEST_CONTEXT_TYPE = 8;
+
+ // The matching function is not allowed for call placeholders
+ INVALID_FUNCTION_FOR_CALL_PLACEHOLDER = 9;
+
+ // The matching function is not allowed for the specified placeholder
+ INVALID_FUNCTION_FOR_PLACEHOLDER = 10;
+
+ // Invalid operand.
+ INVALID_OPERAND = 11;
+
+ // Missing value for the constant operand.
+ MISSING_CONSTANT_OPERAND_VALUE = 12;
+
+ // The value of the constant operand is invalid.
+ INVALID_CONSTANT_OPERAND_VALUE = 13;
+
+ // Invalid function nesting.
+ INVALID_NESTING = 14;
+
+ // The Feed ID was different from another Feed ID in the same function.
+ MULTIPLE_FEED_IDS_NOT_SUPPORTED = 15;
+
+ // The matching function is invalid for use with a feed with a fixed schema.
+ INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA = 16;
+
+ // Invalid attribute name.
+ INVALID_ATTRIBUTE_NAME = 17;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/function_parsing_error.proto b/google/ads/googleads/v1/errors/function_parsing_error.proto
new file mode 100644
index 000000000..915df46a6
--- /dev/null
+++ b/google/ads/googleads/v1/errors/function_parsing_error.proto
@@ -0,0 +1,78 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "FunctionParsingErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing function parsing errors.
+
+// Container for enum describing possible function parsing errors.
+message FunctionParsingErrorEnum {
+ // Enum describing possible function parsing errors.
+ enum FunctionParsingError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Unexpected end of function string.
+ NO_MORE_INPUT = 2;
+
+ // Could not find an expected character.
+ EXPECTED_CHARACTER = 3;
+
+ // Unexpected separator character.
+ UNEXPECTED_SEPARATOR = 4;
+
+ // Unmatched left bracket or parenthesis.
+ UNMATCHED_LEFT_BRACKET = 5;
+
+ // Unmatched right bracket or parenthesis.
+ UNMATCHED_RIGHT_BRACKET = 6;
+
+ // Functions are nested too deeply.
+ TOO_MANY_NESTED_FUNCTIONS = 7;
+
+ // Missing right-hand-side operand.
+ MISSING_RIGHT_HAND_OPERAND = 8;
+
+ // Invalid operator/function name.
+ INVALID_OPERATOR_NAME = 9;
+
+ // Feed attribute operand's argument is not an integer.
+ FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER = 10;
+
+ // Missing function operands.
+ NO_OPERANDS = 11;
+
+ // Function had too many operands.
+ TOO_MANY_OPERANDS = 12;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto b/google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto
new file mode 100644
index 000000000..19291f3d9
--- /dev/null
+++ b/google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "GeoTargetConstantSuggestionErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Container for enum describing possible geo target constant suggestion errors.
+message GeoTargetConstantSuggestionErrorEnum {
+ // Enum describing possible geo target constant suggestion errors.
+ enum GeoTargetConstantSuggestionError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // A location name cannot be greater than 300 characters.
+ LOCATION_NAME_SIZE_LIMIT = 2;
+
+ // At most 25 location names can be specified in a SuggestGeoTargetConstants
+ // method.
+ LOCATION_NAME_LIMIT = 3;
+
+ // The country code is invalid.
+ INVALID_COUNTRY_CODE = 4;
+
+ // Geo target constant resource names or location names must be provided in
+ // the request.
+ REQUEST_PARAMETERS_UNSET = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/header_error.proto b/google/ads/googleads/v1/errors/header_error.proto
new file mode 100644
index 000000000..da0d41ebf
--- /dev/null
+++ b/google/ads/googleads/v1/errors/header_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "HeaderErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing header errors.
+
+// Container for enum describing possible header errors.
+message HeaderErrorEnum {
+ // Enum describing possible header errors.
+ enum HeaderError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The login customer id could not be validated.
+ INVALID_LOGIN_CUSTOMER_ID = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/id_error.proto b/google/ads/googleads/v1/errors/id_error.proto
new file mode 100644
index 000000000..421cdc0e4
--- /dev/null
+++ b/google/ads/googleads/v1/errors/id_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "IdErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing id errors.
+
+// Container for enum describing possible id errors.
+message IdErrorEnum {
+ // Enum describing possible id errors.
+ enum IdError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Id not found
+ NOT_FOUND = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/image_error.proto b/google/ads/googleads/v1/errors/image_error.proto
new file mode 100644
index 000000000..ba5505de7
--- /dev/null
+++ b/google/ads/googleads/v1/errors/image_error.proto
@@ -0,0 +1,157 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ImageErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing image errors.
+
+// Container for enum describing possible image errors.
+message ImageErrorEnum {
+ // Enum describing possible image errors.
+ enum ImageError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The image is not valid.
+ INVALID_IMAGE = 2;
+
+ // The image could not be stored.
+ STORAGE_ERROR = 3;
+
+ // There was a problem with the request.
+ BAD_REQUEST = 4;
+
+ // The image is not of legal dimensions.
+ UNEXPECTED_SIZE = 5;
+
+ // Animated image are not permitted.
+ ANIMATED_NOT_ALLOWED = 6;
+
+ // Animation is too long.
+ ANIMATION_TOO_LONG = 7;
+
+ // There was an error on the server.
+ SERVER_ERROR = 8;
+
+ // Image cannot be in CMYK color format.
+ CMYK_JPEG_NOT_ALLOWED = 9;
+
+ // Flash images are not permitted.
+ FLASH_NOT_ALLOWED = 10;
+
+ // Flash images must support clickTag.
+ FLASH_WITHOUT_CLICKTAG = 11;
+
+ // A flash error has occurred after fixing the click tag.
+ FLASH_ERROR_AFTER_FIXING_CLICK_TAG = 12;
+
+ // Unacceptable visual effects.
+ ANIMATED_VISUAL_EFFECT = 13;
+
+ // There was a problem with the flash image.
+ FLASH_ERROR = 14;
+
+ // Incorrect image layout.
+ LAYOUT_PROBLEM = 15;
+
+ // There was a problem reading the image file.
+ PROBLEM_READING_IMAGE_FILE = 16;
+
+ // There was an error storing the image.
+ ERROR_STORING_IMAGE = 17;
+
+ // The aspect ratio of the image is not allowed.
+ ASPECT_RATIO_NOT_ALLOWED = 18;
+
+ // Flash cannot have network objects.
+ FLASH_HAS_NETWORK_OBJECTS = 19;
+
+ // Flash cannot have network methods.
+ FLASH_HAS_NETWORK_METHODS = 20;
+
+ // Flash cannot have a Url.
+ FLASH_HAS_URL = 21;
+
+ // Flash cannot use mouse tracking.
+ FLASH_HAS_MOUSE_TRACKING = 22;
+
+ // Flash cannot have a random number.
+ FLASH_HAS_RANDOM_NUM = 23;
+
+ // Ad click target cannot be '_self'.
+ FLASH_SELF_TARGETS = 24;
+
+ // GetUrl method should only use '_blank'.
+ FLASH_BAD_GETURL_TARGET = 25;
+
+ // Flash version is not supported.
+ FLASH_VERSION_NOT_SUPPORTED = 26;
+
+ // Flash movies need to have hard coded click URL or clickTAG
+ FLASH_WITHOUT_HARD_CODED_CLICK_URL = 27;
+
+ // Uploaded flash file is corrupted.
+ INVALID_FLASH_FILE = 28;
+
+ // Uploaded flash file can be parsed, but the click tag can not be fixed
+ // properly.
+ FAILED_TO_FIX_CLICK_TAG_IN_FLASH = 29;
+
+ // Flash movie accesses network resources
+ FLASH_ACCESSES_NETWORK_RESOURCES = 30;
+
+ // Flash movie attempts to call external javascript code
+ FLASH_EXTERNAL_JS_CALL = 31;
+
+ // Flash movie attempts to call flash system commands
+ FLASH_EXTERNAL_FS_CALL = 32;
+
+ // Image file is too large.
+ FILE_TOO_LARGE = 33;
+
+ // Image data is too large.
+ IMAGE_DATA_TOO_LARGE = 34;
+
+ // Error while processing the image.
+ IMAGE_PROCESSING_ERROR = 35;
+
+ // Image is too small.
+ IMAGE_TOO_SMALL = 36;
+
+ // Input was invalid.
+ INVALID_INPUT = 37;
+
+ // There was a problem reading the image file.
+ PROBLEM_READING_FILE = 38;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/internal_error.proto b/google/ads/googleads/v1/errors/internal_error.proto
new file mode 100644
index 000000000..0af9c82f9
--- /dev/null
+++ b/google/ads/googleads/v1/errors/internal_error.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "InternalErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing internal errors.
+
+// Container for enum describing possible internal errors.
+message InternalErrorEnum {
+ // Enum describing possible internal errors.
+ enum InternalError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Google Ads API encountered unexpected internal error.
+ INTERNAL_ERROR = 2;
+
+ // The intended error code doesn't exist in any API version. This will be
+ // fixed by adding a new error code as soon as possible.
+ ERROR_CODE_NOT_PUBLISHED = 3;
+
+ // Google Ads API encountered an unexpected transient error. The user
+ // should retry their request in these cases.
+ TRANSIENT_ERROR = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto b/google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto
new file mode 100644
index 000000000..5f6066637
--- /dev/null
+++ b/google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanAdGroupErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing errors from applying a keyword plan ad group.
+
+// Container for enum describing possible errors from applying a keyword plan
+// ad group.
+message KeywordPlanAdGroupErrorEnum {
+ // Enum describing possible errors from applying a keyword plan ad group.
+ enum KeywordPlanAdGroupError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The keyword plan ad group name is missing, empty, longer than allowed
+ // limit or contains invalid chars.
+ INVALID_NAME = 2;
+
+ // The keyword plan ad group name is duplicate to an existing keyword plan
+ // AdGroup name or other keyword plan AdGroup name in the request.
+ DUPLICATE_NAME = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto b/google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto
new file mode 100644
index 000000000..086486f5f
--- /dev/null
+++ b/google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanCampaignErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing errors from applying a keyword plan campaign.
+
+// Container for enum describing possible errors from applying a keyword plan
+// campaign.
+message KeywordPlanCampaignErrorEnum {
+ // Enum describing possible errors from applying a keyword plan campaign.
+ enum KeywordPlanCampaignError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // A keyword plan campaign name is missing, empty, longer than allowed limit
+ // or contains invalid chars.
+ INVALID_NAME = 2;
+
+ // A keyword plan campaign contains one or more untargetable languages.
+ INVALID_LANGUAGES = 3;
+
+ // A keyword plan campaign contains one or more invalid geo targets.
+ INVALID_GEOS = 4;
+
+ // The keyword plan campaign name is duplicate to an existing keyword plan
+ // campaign name or other keyword plan campaign name in the request.
+ DUPLICATE_NAME = 5;
+
+ // The number of geo targets in the keyword plan campaign exceeds limits.
+ MAX_GEOS_EXCEEDED = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/keyword_plan_error.proto b/google/ads/googleads/v1/errors/keyword_plan_error.proto
new file mode 100644
index 000000000..705bc1fc5
--- /dev/null
+++ b/google/ads/googleads/v1/errors/keyword_plan_error.proto
@@ -0,0 +1,92 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing errors from applying keyword plan resources (keyword
+// plan, keyword plan campaign, keyword plan ad group or keyword plan keyword)
+// or KeywordPlanService RPC.
+
+// Container for enum describing possible errors from applying a keyword plan
+// resource (keyword plan, keyword plan campaign, keyword plan ad group or
+// keyword plan keyword) or KeywordPlanService RPC.
+message KeywordPlanErrorEnum {
+ // Enum describing possible errors from applying a keyword plan.
+ enum KeywordPlanError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The plan's bid multiplier value is outside the valid range.
+ BID_MULTIPLIER_OUT_OF_RANGE = 2;
+
+ // The plan's bid value is too high.
+ BID_TOO_HIGH = 3;
+
+ // The plan's bid value is too low.
+ BID_TOO_LOW = 4;
+
+ // The plan's cpc bid is not a multiple of the minimum billable unit.
+ BID_TOO_MANY_FRACTIONAL_DIGITS = 5;
+
+ // The plan's daily budget value is too low.
+ DAILY_BUDGET_TOO_LOW = 6;
+
+ // The plan's daily budget is not a multiple of the minimum billable unit.
+ DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS = 7;
+
+ // The input has an invalid value.
+ INVALID_VALUE = 8;
+
+ // The plan has no keyword.
+ KEYWORD_PLAN_HAS_NO_KEYWORDS = 9;
+
+ // The plan is not enabled and API cannot provide mutation, forecast or
+ // stats.
+ KEYWORD_PLAN_NOT_ENABLED = 10;
+
+ // The requested plan cannot be found for providing forecast or stats.
+ KEYWORD_PLAN_NOT_FOUND = 11;
+
+ // The plan is missing a cpc bid.
+ MISSING_BID = 13;
+
+ // The plan is missing required forecast_period field.
+ MISSING_FORECAST_PERIOD = 14;
+
+ // The plan's forecast_period has invalid forecast date range.
+ INVALID_FORECAST_DATE_RANGE = 15;
+
+ // The plan's name is invalid.
+ INVALID_NAME = 16;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/keyword_plan_idea_error.proto b/google/ads/googleads/v1/errors/keyword_plan_idea_error.proto
new file mode 100644
index 000000000..16526b46e
--- /dev/null
+++ b/google/ads/googleads/v1/errors/keyword_plan_idea_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanIdeaErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing errors from KeywordPlanIdeaService.
+
+// Container for enum describing possible errors from KeywordPlanIdeaService.
+message KeywordPlanIdeaErrorEnum {
+ // Enum describing possible errors from KeywordPlanIdeaService.
+ enum KeywordPlanIdeaError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Error when crawling the input URL.
+ URL_CRAWL_ERROR = 2;
+
+ // The input has an invalid value.
+ INVALID_VALUE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto b/google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto
new file mode 100644
index 000000000..2cd41e855
--- /dev/null
+++ b/google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto
@@ -0,0 +1,66 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanKeywordErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing errors from applying a keyword plan keyword or keyword
+// plan negative keyword.
+
+// Container for enum describing possible errors from applying a keyword or a
+// negative keyword from a keyword plan.
+message KeywordPlanKeywordErrorEnum {
+ // Enum describing possible errors from applying a keyword plan keyword.
+ enum KeywordPlanKeywordError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // A keyword or negative keyword has invalid match type.
+ INVALID_KEYWORD_MATCH_TYPE = 2;
+
+ // A keyword or negative keyword with same text and match type already
+ // exists.
+ DUPLICATE_KEYWORD = 3;
+
+ // Keyword or negative keyword text exceeds the allowed limit.
+ KEYWORD_TEXT_TOO_LONG = 4;
+
+ // Keyword or negative keyword text has invalid characters or symbols.
+ KEYWORD_HAS_INVALID_CHARS = 5;
+
+ // Keyword or negative keyword text has too many words.
+ KEYWORD_HAS_TOO_MANY_WORDS = 6;
+
+ // Keyword or negative keyword has invalid text.
+ INVALID_KEYWORD_TEXT = 7;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto b/google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto
new file mode 100644
index 000000000..f8cf73b5f
--- /dev/null
+++ b/google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto
@@ -0,0 +1,47 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanNegativeKeywordErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing errors from applying a keyword plan negative keyword.
+
+// Container for enum describing possible errors from applying a keyword plan
+// negative keyword.
+message KeywordPlanNegativeKeywordErrorEnum {
+ // Enum describing possible errors from applying a keyword plan negative
+ // keyword.
+ enum KeywordPlanNegativeKeywordError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/label_error.proto b/google/ads/googleads/v1/errors/label_error.proto
new file mode 100644
index 000000000..36d6ca6a4
--- /dev/null
+++ b/google/ads/googleads/v1/errors/label_error.proto
@@ -0,0 +1,74 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "LabelErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing label errors.
+
+// Container for enum describing possible label errors.
+message LabelErrorEnum {
+ // Enum describing possible label errors.
+ enum LabelError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // An inactive label cannot be applied.
+ CANNOT_APPLY_INACTIVE_LABEL = 2;
+
+ // A label cannot be applied to a disabled ad group criterion.
+ CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION = 3;
+
+ // A label cannot be applied to a negative ad group criterion.
+ CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION = 4;
+
+ // Cannot apply more than 50 labels per resource.
+ EXCEEDED_LABEL_LIMIT_PER_TYPE = 5;
+
+ // Labels from a manager account cannot be applied to campaign, ad group,
+ // ad group ad, or ad group criterion resources.
+ INVALID_RESOURCE_FOR_MANAGER_LABEL = 6;
+
+ // Label names must be unique.
+ DUPLICATE_NAME = 7;
+
+ // Label names cannot be empty.
+ INVALID_LABEL_NAME = 8;
+
+ // Labels cannot be applied to a draft.
+ CANNOT_ATTACH_LABEL_TO_DRAFT = 9;
+
+ // Labels not from a manager account cannot be applied to the customer
+ // resource.
+ CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER = 10;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/language_code_error.proto b/google/ads/googleads/v1/errors/language_code_error.proto
new file mode 100644
index 000000000..aabd5ce15
--- /dev/null
+++ b/google/ads/googleads/v1/errors/language_code_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "LanguageCodeErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing language code errors.
+
+// Container for enum describing language code errors.
+message LanguageCodeErrorEnum {
+ // Enum describing language code errors.
+ enum LanguageCodeError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The input language code is not recognized.
+ LANGUAGE_CODE_NOT_FOUND = 2;
+
+ // The language is not allowed to use.
+ INVALID_LANGUAGE_CODE = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/list_operation_error.proto b/google/ads/googleads/v1/errors/list_operation_error.proto
new file mode 100644
index 000000000..24befaeab
--- /dev/null
+++ b/google/ads/googleads/v1/errors/list_operation_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ListOperationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing list operation errors.
+
+// Container for enum describing possible list operation errors.
+message ListOperationErrorEnum {
+ // Enum describing possible list operation errors.
+ enum ListOperationError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Field required in value is missing.
+ REQUIRED_FIELD_MISSING = 7;
+
+ // Duplicate or identical value is sent in multiple list operations.
+ DUPLICATE_VALUES = 8;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/media_bundle_error.proto b/google/ads/googleads/v1/errors/media_bundle_error.proto
new file mode 100644
index 000000000..4fad3119e
--- /dev/null
+++ b/google/ads/googleads/v1/errors/media_bundle_error.proto
@@ -0,0 +1,111 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "MediaBundleErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing media bundle errors.
+
+// Container for enum describing possible media bundle errors.
+message MediaBundleErrorEnum {
+ // Enum describing possible media bundle errors.
+ enum MediaBundleError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // There was a problem with the request.
+ BAD_REQUEST = 3;
+
+ // HTML5 ads using DoubleClick Studio created ZIP files are not supported.
+ DOUBLECLICK_BUNDLE_NOT_ALLOWED = 4;
+
+ // Cannot reference URL external to the media bundle.
+ EXTERNAL_URL_NOT_ALLOWED = 5;
+
+ // Media bundle file is too large.
+ FILE_TOO_LARGE = 6;
+
+ // ZIP file from Google Web Designer is not published.
+ GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 7;
+
+ // Input was invalid.
+ INVALID_INPUT = 8;
+
+ // There was a problem with the media bundle.
+ INVALID_MEDIA_BUNDLE = 9;
+
+ // There was a problem with one or more of the media bundle entries.
+ INVALID_MEDIA_BUNDLE_ENTRY = 10;
+
+ // The media bundle contains a file with an unknown mime type
+ INVALID_MIME_TYPE = 11;
+
+ // The media bundle contain an invalid asset path.
+ INVALID_PATH = 12;
+
+ // HTML5 ad is trying to reference an asset not in .ZIP file
+ INVALID_URL_REFERENCE = 13;
+
+ // Media data is too large.
+ MEDIA_DATA_TOO_LARGE = 14;
+
+ // The media bundle contains no primary entry.
+ MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 15;
+
+ // There was an error on the server.
+ SERVER_ERROR = 16;
+
+ // The image could not be stored.
+ STORAGE_ERROR = 17;
+
+ // Media bundle created with the Swiffy tool is not allowed.
+ SWIFFY_BUNDLE_NOT_ALLOWED = 18;
+
+ // The media bundle contains too many files.
+ TOO_MANY_FILES = 19;
+
+ // The media bundle is not of legal dimensions.
+ UNEXPECTED_SIZE = 20;
+
+ // Google Web Designer not created for "Google Ads" environment.
+ UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 21;
+
+ // Unsupported HTML5 feature in HTML5 asset.
+ UNSUPPORTED_HTML5_FEATURE = 22;
+
+ // URL in HTML5 entry is not ssl compliant.
+ URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 23;
+
+ // Custom exits not allowed in HTML5 entry.
+ CUSTOM_EXIT_NOT_ALLOWED = 24;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/media_file_error.proto b/google/ads/googleads/v1/errors/media_file_error.proto
new file mode 100644
index 000000000..ea0babd7f
--- /dev/null
+++ b/google/ads/googleads/v1/errors/media_file_error.proto
@@ -0,0 +1,114 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "MediaFileErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing media file errors.
+
+// Container for enum describing possible media file errors.
+message MediaFileErrorEnum {
+ // Enum describing possible media file errors.
+ enum MediaFileError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Cannot create a standard icon type.
+ CANNOT_CREATE_STANDARD_ICON = 2;
+
+ // May only select Standard Icons alone.
+ CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES = 3;
+
+ // Image contains both a media file ID and data.
+ CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA = 4;
+
+ // A media file with given type and reference ID already exists.
+ DUPLICATE_MEDIA = 5;
+
+ // A required field was not specified or is an empty string.
+ EMPTY_FIELD = 6;
+
+ // A media file may only be modified once per call.
+ RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 7;
+
+ // Field is not supported for the media sub type.
+ FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE = 8;
+
+ // The media file ID is invalid.
+ INVALID_MEDIA_FILE_ID = 9;
+
+ // The media subtype is invalid.
+ INVALID_MEDIA_SUB_TYPE = 10;
+
+ // The media file type is invalid.
+ INVALID_MEDIA_FILE_TYPE = 11;
+
+ // The mimetype is invalid.
+ INVALID_MIME_TYPE = 12;
+
+ // The media reference ID is invalid.
+ INVALID_REFERENCE_ID = 13;
+
+ // The YouTube video ID is invalid.
+ INVALID_YOU_TUBE_ID = 14;
+
+ // Media file has failed transcoding
+ MEDIA_FILE_FAILED_TRANSCODING = 15;
+
+ // Media file has not been transcoded.
+ MEDIA_NOT_TRANSCODED = 16;
+
+ // The media type does not match the actual media file's type.
+ MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE = 17;
+
+ // None of the fields have been specified.
+ NO_FIELDS_SPECIFIED = 18;
+
+ // One of reference ID or media file ID must be specified.
+ NULL_REFERENCE_ID_AND_MEDIA_ID = 19;
+
+ // The string has too many characters.
+ TOO_LONG = 20;
+
+ // The specified type is not supported.
+ UNSUPPORTED_TYPE = 21;
+
+ // YouTube is unavailable for requesting video data.
+ YOU_TUBE_SERVICE_UNAVAILABLE = 22;
+
+ // The YouTube video has a non positive duration.
+ YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION = 23;
+
+ // The YouTube video ID is syntactically valid but the video was not found.
+ YOU_TUBE_VIDEO_NOT_FOUND = 24;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/media_upload_error.proto b/google/ads/googleads/v1/errors/media_upload_error.proto
new file mode 100644
index 000000000..53921fb28
--- /dev/null
+++ b/google/ads/googleads/v1/errors/media_upload_error.proto
@@ -0,0 +1,31 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "MediaUploadErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing media uploading errors.
diff --git a/google/ads/googleads/v1/errors/multiplier_error.proto b/google/ads/googleads/v1/errors/multiplier_error.proto
new file mode 100644
index 000000000..f66eedd6d
--- /dev/null
+++ b/google/ads/googleads/v1/errors/multiplier_error.proto
@@ -0,0 +1,82 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "MultiplierErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing multiplier errors.
+
+// Container for enum describing possible multiplier errors.
+message MultiplierErrorEnum {
+ // Enum describing possible multiplier errors.
+ enum MultiplierError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Multiplier value is too high
+ MULTIPLIER_TOO_HIGH = 2;
+
+ // Multiplier value is too low
+ MULTIPLIER_TOO_LOW = 3;
+
+ // Too many fractional digits
+ TOO_MANY_FRACTIONAL_DIGITS = 4;
+
+ // A multiplier cannot be set for this bidding strategy
+ MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY = 5;
+
+ // A multiplier cannot be set when there is no base bid (e.g., content max
+ // cpc)
+ MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING = 6;
+
+ // A bid multiplier must be specified
+ NO_MULTIPLIER_SPECIFIED = 7;
+
+ // Multiplier causes bid to exceed daily budget
+ MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET = 8;
+
+ // Multiplier causes bid to exceed monthly budget
+ MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET = 9;
+
+ // Multiplier causes bid to exceed custom budget
+ MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET = 10;
+
+ // Multiplier causes bid to exceed maximum allowed bid
+ MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID = 11;
+
+ // Multiplier causes bid to become less than the minimum bid allowed
+ BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER = 12;
+
+ // Multiplier type (cpc vs. cpm) needs to match campaign's bidding strategy
+ MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH = 13;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/mutate_error.proto b/google/ads/googleads/v1/errors/mutate_error.proto
new file mode 100644
index 000000000..974ad0036
--- /dev/null
+++ b/google/ads/googleads/v1/errors/mutate_error.proto
@@ -0,0 +1,64 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "MutateErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing mutate errors.
+
+// Container for enum describing possible mutate errors.
+message MutateErrorEnum {
+ // Enum describing possible mutate errors.
+ enum MutateError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Requested resource was not found.
+ RESOURCE_NOT_FOUND = 3;
+
+ // Cannot mutate the same resource twice in one request.
+ ID_EXISTS_IN_MULTIPLE_MUTATES = 7;
+
+ // The field's contents don't match another field that represents the same
+ // data.
+ INCONSISTENT_FIELD_VALUES = 8;
+
+ // Mutates are not allowed for the requested resource.
+ MUTATE_NOT_ALLOWED = 9;
+
+ // The resource isn't in Google Ads. It belongs to another ads system.
+ RESOURCE_NOT_IN_GOOGLE_ADS = 10;
+
+ // The resource being created already exists.
+ RESOURCE_ALREADY_EXISTS = 11;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/mutate_job_error.proto b/google/ads/googleads/v1/errors/mutate_job_error.proto
new file mode 100644
index 000000000..8edc516a9
--- /dev/null
+++ b/google/ads/googleads/v1/errors/mutate_job_error.proto
@@ -0,0 +1,61 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "MutateJobErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing mutate job errors.
+
+// Container for enum describing possible mutate job errors.
+message MutateJobErrorEnum {
+ // Enum describing possible request errors.
+ enum MutateJobError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The mutate job cannot add more operations or run after it has started
+ // running.
+ CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING = 2;
+
+ // The operations for an AddMutateJobOperations request were empty.
+ EMPTY_OPERATIONS = 3;
+
+ // The sequence token for an AddMutateJobOperations request was invalid.
+ INVALID_SEQUENCE_TOKEN = 4;
+
+ // Mutate Job Results can only be retrieved once the job is finished.
+ RESULTS_NOT_READY = 5;
+
+ // The page size for ListMutateJobResults was invalid.
+ INVALID_PAGE_SIZE = 6;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/new_resource_creation_error.proto b/google/ads/googleads/v1/errors/new_resource_creation_error.proto
new file mode 100644
index 000000000..0f677ee36
--- /dev/null
+++ b/google/ads/googleads/v1/errors/new_resource_creation_error.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "NewResourceCreationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing new resource creation errors.
+
+// Container for enum describing possible new resource creation errors.
+message NewResourceCreationErrorEnum {
+ // Enum describing possible new resource creation errors.
+ enum NewResourceCreationError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Do not set the id field while creating new resources.
+ CANNOT_SET_ID_FOR_CREATE = 2;
+
+ // Creating more than one resource with the same temp ID is not allowed.
+ DUPLICATE_TEMP_IDS = 3;
+
+ // Parent resource with specified temp ID failed validation, so no
+ // validation will be done for this child resource.
+ TEMP_ID_RESOURCE_HAD_ERRORS = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/not_empty_error.proto b/google/ads/googleads/v1/errors/not_empty_error.proto
new file mode 100644
index 000000000..87c2f73c5
--- /dev/null
+++ b/google/ads/googleads/v1/errors/not_empty_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "NotEmptyErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing not empty errors.
+
+// Container for enum describing possible not empty errors.
+message NotEmptyErrorEnum {
+ // Enum describing possible not empty errors.
+ enum NotEmptyError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Empty list.
+ EMPTY_LIST = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/null_error.proto b/google/ads/googleads/v1/errors/null_error.proto
new file mode 100644
index 000000000..b79cad06e
--- /dev/null
+++ b/google/ads/googleads/v1/errors/null_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "NullErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing null errors.
+
+// Container for enum describing possible null errors.
+message NullErrorEnum {
+ // Enum describing possible null errors.
+ enum NullError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Specified list/container must not contain any null elements
+ NULL_CONTENT = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/operation_access_denied_error.proto b/google/ads/googleads/v1/errors/operation_access_denied_error.proto
new file mode 100644
index 000000000..cb55ba020
--- /dev/null
+++ b/google/ads/googleads/v1/errors/operation_access_denied_error.proto
@@ -0,0 +1,75 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "OperationAccessDeniedErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing operation access denied errors.
+
+// Container for enum describing possible operation access denied errors.
+message OperationAccessDeniedErrorEnum {
+ // Enum describing possible operation access denied errors.
+ enum OperationAccessDeniedError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Unauthorized invocation of a service's method (get, mutate, etc.)
+ ACTION_NOT_PERMITTED = 2;
+
+ // Unauthorized CREATE operation in invoking a service's mutate method.
+ CREATE_OPERATION_NOT_PERMITTED = 3;
+
+ // Unauthorized REMOVE operation in invoking a service's mutate method.
+ REMOVE_OPERATION_NOT_PERMITTED = 4;
+
+ // Unauthorized UPDATE operation in invoking a service's mutate method.
+ UPDATE_OPERATION_NOT_PERMITTED = 5;
+
+ // A mutate action is not allowed on this campaign, from this client.
+ MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT = 6;
+
+ // This operation is not permitted on this campaign type
+ OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE = 7;
+
+ // A CREATE operation may not set status to REMOVED.
+ CREATE_AS_REMOVED_NOT_PERMITTED = 8;
+
+ // This operation is not allowed because the campaign or adgroup is removed.
+ OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 9;
+
+ // This operation is not permitted on this ad group type.
+ OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE = 10;
+
+ // The mutate is not allowed for this customer.
+ MUTATE_NOT_PERMITTED_FOR_CUSTOMER = 11;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/operator_error.proto b/google/ads/googleads/v1/errors/operator_error.proto
new file mode 100644
index 000000000..0200d5225
--- /dev/null
+++ b/google/ads/googleads/v1/errors/operator_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "OperatorErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing operator errors.
+
+// Container for enum describing possible operator errors.
+message OperatorErrorEnum {
+ // Enum describing possible operator errors.
+ enum OperatorError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Operator not supported.
+ OPERATOR_NOT_SUPPORTED = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/partial_failure_error.proto b/google/ads/googleads/v1/errors/partial_failure_error.proto
new file mode 100644
index 000000000..f91a7a67a
--- /dev/null
+++ b/google/ads/googleads/v1/errors/partial_failure_error.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "PartialFailureErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing partial failure errors.
+
+// Container for enum describing possible partial failure errors.
+message PartialFailureErrorEnum {
+ // Enum describing possible partial failure errors.
+ enum PartialFailureError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The partial failure field was false in the request.
+ // This method requires this field be set to true.
+ PARTIAL_FAILURE_MODE_REQUIRED = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/policy_finding_error.proto b/google/ads/googleads/v1/errors/policy_finding_error.proto
new file mode 100644
index 000000000..138fb7078
--- /dev/null
+++ b/google/ads/googleads/v1/errors/policy_finding_error.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyFindingErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing policy finding errors.
+
+// Container for enum describing possible policy finding errors.
+message PolicyFindingErrorEnum {
+ // Enum describing possible policy finding errors.
+ enum PolicyFindingError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The resource has been disapproved since the policy summary includes
+ // policy topics of type PROHIBITED.
+ POLICY_FINDING = 2;
+
+ // The given policy topic does not exist.
+ POLICY_TOPIC_NOT_FOUND = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/policy_validation_parameter_error.proto b/google/ads/googleads/v1/errors/policy_validation_parameter_error.proto
new file mode 100644
index 000000000..2d3e18256
--- /dev/null
+++ b/google/ads/googleads/v1/errors/policy_validation_parameter_error.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyValidationParameterErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing policy validation parameter errors.
+
+// Container for enum describing possible policy validation parameter errors.
+message PolicyValidationParameterErrorEnum {
+ // Enum describing possible policy validation parameter errors.
+ enum PolicyValidationParameterError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Ignorable policy topics are not supported for the ad type.
+ UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS = 2;
+
+ // Exempt policy violation keys are not supported for the ad type.
+ UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS = 3;
+
+ // Cannot set ignorable policy topics and exempt policy violation keys in
+ // the same policy violation parameter.
+ CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/policy_violation_error.proto b/google/ads/googleads/v1/errors/policy_violation_error.proto
new file mode 100644
index 000000000..56d2bffae
--- /dev/null
+++ b/google/ads/googleads/v1/errors/policy_violation_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyViolationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing policy violation errors.
+
+// Container for enum describing possible policy violation errors.
+message PolicyViolationErrorEnum {
+ // Enum describing possible policy violation errors.
+ enum PolicyViolationError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // A policy was violated. See PolicyViolationDetails for more detail.
+ POLICY_ERROR = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/query_error.proto b/google/ads/googleads/v1/errors/query_error.proto
new file mode 100644
index 000000000..066f331b2
--- /dev/null
+++ b/google/ads/googleads/v1/errors/query_error.proto
@@ -0,0 +1,209 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "QueryErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing query errors.
+
+// Container for enum describing possible query errors.
+message QueryErrorEnum {
+ // Enum describing possible query errors.
+ enum QueryError {
+ // Name unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Returned if all other query error reasons are not applicable.
+ QUERY_ERROR = 50;
+
+ // A condition used in the query references an invalid enum constant.
+ BAD_ENUM_CONSTANT = 18;
+
+ // Query contains an invalid escape sequence.
+ BAD_ESCAPE_SEQUENCE = 7;
+
+ // Field name is invalid.
+ BAD_FIELD_NAME = 12;
+
+ // Limit value is invalid (i.e. not a number)
+ BAD_LIMIT_VALUE = 15;
+
+ // Encountered number can not be parsed.
+ BAD_NUMBER = 5;
+
+ // Invalid operator encountered.
+ BAD_OPERATOR = 3;
+
+ // Invalid resource type was specified in the FROM clause.
+ BAD_RESOURCE_TYPE_IN_FROM_CLAUSE = 45;
+
+ // Non-ASCII symbol encountered outside of strings.
+ BAD_SYMBOL = 2;
+
+ // Value is invalid.
+ BAD_VALUE = 4;
+
+ // Date filters fail to restrict date to a range smaller than 31 days.
+ // Applicable if the query is segmented by date.
+ DATE_RANGE_TOO_WIDE = 36;
+
+ // Expected AND between values with BETWEEN operator.
+ EXPECTED_AND = 30;
+
+ // Expecting ORDER BY to have BY.
+ EXPECTED_BY = 14;
+
+ // There was no dimension field selected.
+ EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE = 37;
+
+ // Missing filters on date related fields.
+ EXPECTED_FILTERS_ON_DATE_RANGE = 55;
+
+ // Missing FROM clause.
+ EXPECTED_FROM = 44;
+
+ // The operator used in the conditions requires the value to be a list.
+ EXPECTED_LIST = 41;
+
+ // Fields used in WHERE or ORDER BY clauses are missing from the SELECT
+ // clause.
+ EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE = 16;
+
+ // SELECT is missing at the beginning of query.
+ EXPECTED_SELECT = 13;
+
+ // A list was passed as a value to a condition whose operator expects a
+ // single value.
+ EXPECTED_SINGLE_VALUE = 42;
+
+ // Missing one or both values with BETWEEN operator.
+ EXPECTED_VALUE_WITH_BETWEEN_OPERATOR = 29;
+
+ // Invalid date format. Expected 'YYYY-MM-DD'.
+ INVALID_DATE_FORMAT = 38;
+
+ // Value passed was not a string when it should have been. I.e., it was a
+ // number or unquoted literal.
+ INVALID_STRING_VALUE = 57;
+
+ // A String value passed to the BETWEEN operator does not parse as a date.
+ INVALID_VALUE_WITH_BETWEEN_OPERATOR = 26;
+
+ // The value passed to the DURING operator is not a Date range literal
+ INVALID_VALUE_WITH_DURING_OPERATOR = 22;
+
+ // A non-string value was passed to the LIKE operator.
+ INVALID_VALUE_WITH_LIKE_OPERATOR = 56;
+
+ // An operator was provided that is inapplicable to the field being
+ // filtered.
+ OPERATOR_FIELD_MISMATCH = 35;
+
+ // A Condition was found with an empty list.
+ PROHIBITED_EMPTY_LIST_IN_CONDITION = 28;
+
+ // A condition used in the query references an unsupported enum constant.
+ PROHIBITED_ENUM_CONSTANT = 54;
+
+ // Fields that are not allowed to be selected together were included in
+ // the SELECT clause.
+ PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE = 31;
+
+ // A field that is not orderable was included in the ORDER BY clause.
+ PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE = 40;
+
+ // A field that is not selectable was included in the SELECT clause.
+ PROHIBITED_FIELD_IN_SELECT_CLAUSE = 23;
+
+ // A field that is not filterable was included in the WHERE clause.
+ PROHIBITED_FIELD_IN_WHERE_CLAUSE = 24;
+
+ // Resource type specified in the FROM clause is not supported by this
+ // service.
+ PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE = 43;
+
+ // A field that comes from an incompatible resource was included in the
+ // SELECT clause.
+ PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE = 48;
+
+ // A field that comes from an incompatible resource was included in the
+ // WHERE clause.
+ PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE = 58;
+
+ // A metric incompatible with the main resource or other selected
+ // segmenting resources was included in the SELECT or WHERE clause.
+ PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 49;
+
+ // A segment incompatible with the main resource or other selected
+ // segmenting resources was included in the SELECT or WHERE clause.
+ PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE = 51;
+
+ // A segment in the SELECT clause is incompatible with a metric in the
+ // SELECT or WHERE clause.
+ PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 53;
+
+ // The value passed to the limit clause is too low.
+ LIMIT_VALUE_TOO_LOW = 25;
+
+ // Query has a string containing a newline character.
+ PROHIBITED_NEWLINE_IN_STRING = 8;
+
+ // List contains values of different types.
+ PROHIBITED_VALUE_COMBINATION_IN_LIST = 10;
+
+ // The values passed to the BETWEEN operator are not of the same type.
+ PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR = 21;
+
+ // Query contains unterminated string.
+ STRING_NOT_TERMINATED = 6;
+
+ // Too many segments are specified in SELECT clause.
+ TOO_MANY_SEGMENTS = 34;
+
+ // Query is incomplete and cannot be parsed.
+ UNEXPECTED_END_OF_QUERY = 9;
+
+ // FROM clause cannot be specified in this query.
+ UNEXPECTED_FROM_CLAUSE = 47;
+
+ // Query contains one or more unrecognized fields.
+ UNRECOGNIZED_FIELD = 32;
+
+ // Query has an unexpected extra part.
+ UNEXPECTED_INPUT = 11;
+
+ // Metrics cannot be requested for a manager account. To retrieve metrics,
+ // issue separate requests against each client account under the manager
+ // account.
+ REQUESTED_METRICS_FOR_MANAGER = 59;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/quota_error.proto b/google/ads/googleads/v1/errors/quota_error.proto
new file mode 100644
index 000000000..5d8adafce
--- /dev/null
+++ b/google/ads/googleads/v1/errors/quota_error.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "QuotaErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing quota errors.
+
+// Container for enum describing possible quota errors.
+message QuotaErrorEnum {
+ // Enum describing possible quota errors.
+ enum QuotaError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Too many requests.
+ RESOURCE_EXHAUSTED = 2;
+
+ // Access is prohibited.
+ ACCESS_PROHIBITED = 3;
+
+ // Too many requests in a short amount of time.
+ RESOURCE_TEMPORARILY_EXHAUSTED = 4;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/range_error.proto b/google/ads/googleads/v1/errors/range_error.proto
new file mode 100644
index 000000000..a851b993a
--- /dev/null
+++ b/google/ads/googleads/v1/errors/range_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "RangeErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing range errors.
+
+// Container for enum describing possible range errors.
+message RangeErrorEnum {
+ // Enum describing possible range errors.
+ enum RangeError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Too low.
+ TOO_LOW = 2;
+
+ // Too high.
+ TOO_HIGH = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/recommendation_error.proto b/google/ads/googleads/v1/errors/recommendation_error.proto
new file mode 100644
index 000000000..465c81960
--- /dev/null
+++ b/google/ads/googleads/v1/errors/recommendation_error.proto
@@ -0,0 +1,91 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "RecommendationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing errors from applying a recommendation.
+
+// Container for enum describing possible errors from applying a recommendation.
+message RecommendationErrorEnum {
+ // Enum describing possible errors from applying a recommendation.
+ enum RecommendationError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The specified budget amount is too low e.g. lower than minimum currency
+ // unit or lower than ad group minimum cost-per-click.
+ BUDGET_AMOUNT_TOO_SMALL = 2;
+
+ // The specified budget amount is too large.
+ BUDGET_AMOUNT_TOO_LARGE = 3;
+
+ // The specified budget amount is not a valid amount. e.g. not a multiple
+ // of minimum currency unit.
+ INVALID_BUDGET_AMOUNT = 4;
+
+ // The specified keyword or ad violates ad policy.
+ POLICY_ERROR = 5;
+
+ // The specified bid amount is not valid. e.g. too many fractional digits,
+ // or negative amount.
+ INVALID_BID_AMOUNT = 6;
+
+ // The number of keywords in ad group have reached the maximum allowed.
+ ADGROUP_KEYWORD_LIMIT = 7;
+
+ // The recommendation requested to apply has already been applied.
+ RECOMMENDATION_ALREADY_APPLIED = 8;
+
+ // The recommendation requested to apply has been invalidated.
+ RECOMMENDATION_INVALIDATED = 9;
+
+ // The number of operations in a single request exceeds the maximum allowed.
+ TOO_MANY_OPERATIONS = 10;
+
+ // There are no operations in the request.
+ NO_OPERATIONS = 11;
+
+ // Operations with multiple recommendation types are not supported when
+ // partial failure mode is not enabled.
+ DIFFERENT_TYPES_NOT_SUPPORTED = 12;
+
+ // Request contains multiple operations with the same resource_name.
+ DUPLICATE_RESOURCE_NAME = 13;
+
+ // The recommendation requested to dismiss has already been dismissed.
+ RECOMMENDATION_ALREADY_DISMISSED = 14;
+
+ // The recommendation apply request was malformed and invalid.
+ INVALID_APPLY_REQUEST = 15;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/region_code_error.proto b/google/ads/googleads/v1/errors/region_code_error.proto
new file mode 100644
index 000000000..851005024
--- /dev/null
+++ b/google/ads/googleads/v1/errors/region_code_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "RegionCodeErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing region code errors.
+
+// Container for enum describing possible region code errors.
+message RegionCodeErrorEnum {
+ // Enum describing possible region code errors.
+ enum RegionCodeError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Invalid region code.
+ INVALID_REGION_CODE = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/request_error.proto b/google/ads/googleads/v1/errors/request_error.proto
new file mode 100644
index 000000000..a7c8cec42
--- /dev/null
+++ b/google/ads/googleads/v1/errors/request_error.proto
@@ -0,0 +1,102 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "RequestErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing request errors.
+
+// Container for enum describing possible request errors.
+message RequestErrorEnum {
+ // Enum describing possible request errors.
+ enum RequestError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Resource name is required for this request.
+ RESOURCE_NAME_MISSING = 3;
+
+ // Resource name provided is malformed.
+ RESOURCE_NAME_MALFORMED = 4;
+
+ // Resource name provided is malformed.
+ BAD_RESOURCE_ID = 17;
+
+ // Customer ID is invalid.
+ INVALID_CUSTOMER_ID = 16;
+
+ // Mutate operation should have either create, update, or remove specified.
+ OPERATION_REQUIRED = 5;
+
+ // Requested resource not found.
+ RESOURCE_NOT_FOUND = 6;
+
+ // Next page token specified in user request is invalid.
+ INVALID_PAGE_TOKEN = 7;
+
+ // Next page token specified in user request has expired.
+ EXPIRED_PAGE_TOKEN = 8;
+
+ // Page size specified in user request is invalid.
+ INVALID_PAGE_SIZE = 22;
+
+ // Required field is missing.
+ REQUIRED_FIELD_MISSING = 9;
+
+ // The field cannot be modified because it's immutable. It's also possible
+ // that the field can be modified using 'create' operation but not 'update'.
+ IMMUTABLE_FIELD = 11;
+
+ // Received too many entries in request.
+ TOO_MANY_MUTATE_OPERATIONS = 13;
+
+ // Request cannot be executed by a manager account.
+ CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT = 14;
+
+ // Mutate request was attempting to modify a readonly field.
+ // For instance, Budget fields can be requested for Ad Group,
+ // but are read-only for adGroups:mutate.
+ CANNOT_MODIFY_FOREIGN_FIELD = 15;
+
+ // Enum value is not permitted.
+ INVALID_ENUM_VALUE = 18;
+
+ // The developer-token parameter is required for all requests.
+ DEVELOPER_TOKEN_PARAMETER_MISSING = 19;
+
+ // The login-customer-id parameter is required for this request.
+ LOGIN_CUSTOMER_ID_PARAMETER_MISSING = 20;
+
+ // page_token is set in the validate only request
+ VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN = 21;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/resource_access_denied_error.proto b/google/ads/googleads/v1/errors/resource_access_denied_error.proto
new file mode 100644
index 000000000..e384dbe31
--- /dev/null
+++ b/google/ads/googleads/v1/errors/resource_access_denied_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ResourceAccessDeniedErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing resource access denied errors.
+
+// Container for enum describing possible resource access denied errors.
+message ResourceAccessDeniedErrorEnum {
+ // Enum describing possible resource access denied errors.
+ enum ResourceAccessDeniedError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // User did not have write access.
+ WRITE_ACCESS_DENIED = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto b/google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto
new file mode 100644
index 000000000..d88dd84c4
--- /dev/null
+++ b/google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto
@@ -0,0 +1,89 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "ResourceCountLimitExceededErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing resource count limit exceeded errors.
+
+// Container for enum describing possible resource count limit exceeded errors.
+message ResourceCountLimitExceededErrorEnum {
+ // Enum describing possible resource count limit exceeded errors.
+ enum ResourceCountLimitExceededError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Indicates that this request would exceed the number of allowed resources
+ // for the Google Ads account. The exact resource type and limit being
+ // checked can be inferred from accountLimitType.
+ ACCOUNT_LIMIT = 2;
+
+ // Indicates that this request would exceed the number of allowed resources
+ // in a Campaign. The exact resource type and limit being checked can be
+ // inferred from accountLimitType, and the numeric id of the
+ // Campaign involved is given by enclosingId.
+ CAMPAIGN_LIMIT = 3;
+
+ // Indicates that this request would exceed the number of allowed resources
+ // in an ad group. The exact resource type and limit being checked can be
+ // inferred from accountLimitType, and the numeric id of the
+ // ad group involved is given by enclosingId.
+ ADGROUP_LIMIT = 4;
+
+ // Indicates that this request would exceed the number of allowed resources
+ // in an ad group ad. The exact resource type and limit being checked can
+ // be inferred from accountLimitType, and the enclosingId
+ // contains the ad group id followed by the ad id, separated by a single
+ // comma (,).
+ AD_GROUP_AD_LIMIT = 5;
+
+ // Indicates that this request would exceed the number of allowed resources
+ // in an ad group criterion. The exact resource type and limit being checked
+ // can be inferred from accountLimitType, and the
+ // enclosingId contains the ad group id followed by the
+ // criterion id, separated by a single comma (,).
+ AD_GROUP_CRITERION_LIMIT = 6;
+
+ // Indicates that this request would exceed the number of allowed resources
+ // in this shared set. The exact resource type and limit being checked can
+ // be inferred from accountLimitType, and the numeric id of the
+ // shared set involved is given by enclosingId.
+ SHARED_SET_LIMIT = 7;
+
+ // Exceeds a limit related to a matching function.
+ MATCHING_FUNCTION_LIMIT = 8;
+
+ // The response for this request would exceed the maximum number of rows
+ // that can be returned.
+ RESPONSE_ROW_LIMIT_EXCEEDED = 9;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/setting_error.proto b/google/ads/googleads/v1/errors/setting_error.proto
new file mode 100644
index 000000000..3511b96b5
--- /dev/null
+++ b/google/ads/googleads/v1/errors/setting_error.proto
@@ -0,0 +1,106 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "SettingErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing setting errors.
+
+// Container for enum describing possible setting errors.
+message SettingErrorEnum {
+ // Enum describing possible setting errors.
+ enum SettingError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The campaign setting is not available for this Google Ads account.
+ SETTING_TYPE_IS_NOT_AVAILABLE = 3;
+
+ // The setting is not compatible with the campaign.
+ SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN = 4;
+
+ // The supplied TargetingSetting contains an invalid CriterionTypeGroup. See
+ // CriterionTypeGroup documentation for CriterionTypeGroups allowed
+ // in Campaign or AdGroup TargetingSettings.
+ TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP = 5;
+
+ // TargetingSetting must not explicitly
+ // set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER,
+ // PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in
+ // which case the system will set them to true automatically).
+ TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL = 6;
+
+ // TargetingSetting cannot change any of
+ // the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT,
+ // INCOME_RANGE) from true to false.
+ TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP = 7;
+
+ // At least one feed id should be present.
+ DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT = 8;
+
+ // The supplied DynamicSearchAdsSetting contains an invalid domain name.
+ DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME = 9;
+
+ // The supplied DynamicSearchAdsSetting contains a subdomain name.
+ DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME = 10;
+
+ // The supplied DynamicSearchAdsSetting contains an invalid language code.
+ DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE = 11;
+
+ // TargetingSettings in search campaigns should not have
+ // CriterionTypeGroup.PLACEMENT set to targetAll.
+ TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN = 12;
+
+ // Duplicate description in universal app setting description field.
+ UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION = 13;
+
+ // Description line width is too long in universal app setting description
+ // field.
+ UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG = 14;
+
+ // Universal app setting appId field cannot be modified for COMPLETE
+ // campaigns.
+ UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED = 15;
+
+ // YoutubeVideoMediaIds in universal app setting cannot exceed size limit.
+ TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN = 16;
+
+ // ImageMediaIds in universal app setting cannot exceed size limit.
+ TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN = 17;
+
+ // Media is incompatible for universal app campaign.
+ MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN = 18;
+
+ // Too many exclamation marks in universal app campaign ad text ideas.
+ TOO_MANY_EXCLAMATION_MARKS = 19;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/shared_criterion_error.proto b/google/ads/googleads/v1/errors/shared_criterion_error.proto
new file mode 100644
index 000000000..6cd4f9532
--- /dev/null
+++ b/google/ads/googleads/v1/errors/shared_criterion_error.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "SharedCriterionErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing shared criterion errors.
+
+// Container for enum describing possible shared criterion errors.
+message SharedCriterionErrorEnum {
+ // Enum describing possible shared criterion errors.
+ enum SharedCriterionError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The criterion is not appropriate for the shared set type.
+ CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE = 2;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/shared_set_error.proto b/google/ads/googleads/v1/errors/shared_set_error.proto
new file mode 100644
index 000000000..5fa55a896
--- /dev/null
+++ b/google/ads/googleads/v1/errors/shared_set_error.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "SharedSetErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing shared set errors.
+
+// Container for enum describing possible shared set errors.
+message SharedSetErrorEnum {
+ // Enum describing possible shared set errors.
+ enum SharedSetError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The customer cannot create this type of shared set.
+ CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE = 2;
+
+ // A shared set with this name already exists.
+ DUPLICATE_NAME = 3;
+
+ // Removed shared sets cannot be mutated.
+ SHARED_SET_REMOVED = 4;
+
+ // The shared set cannot be removed because it is in use.
+ SHARED_SET_IN_USE = 5;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/string_format_error.proto b/google/ads/googleads/v1/errors/string_format_error.proto
new file mode 100644
index 000000000..e7054b3aa
--- /dev/null
+++ b/google/ads/googleads/v1/errors/string_format_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "StringFormatErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing string format errors.
+
+// Container for enum describing possible string format errors.
+message StringFormatErrorEnum {
+ // Enum describing possible string format errors.
+ enum StringFormatError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The input string value contains disallowed characters.
+ ILLEGAL_CHARS = 2;
+
+ // The input string value is invalid for the associated field.
+ INVALID_FORMAT = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/string_length_error.proto b/google/ads/googleads/v1/errors/string_length_error.proto
new file mode 100644
index 000000000..5c6539728
--- /dev/null
+++ b/google/ads/googleads/v1/errors/string_length_error.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "StringLengthErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing string length errors.
+
+// Container for enum describing possible string length errors.
+message StringLengthErrorEnum {
+ // Enum describing possible string length errors.
+ enum StringLengthError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Too short.
+ TOO_SHORT = 2;
+
+ // Too long.
+ TOO_LONG = 3;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/url_field_error.proto b/google/ads/googleads/v1/errors/url_field_error.proto
new file mode 100644
index 000000000..fc8157c23
--- /dev/null
+++ b/google/ads/googleads/v1/errors/url_field_error.proto
@@ -0,0 +1,213 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "UrlFieldErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing url field errors.
+
+// Container for enum describing possible url field errors.
+message UrlFieldErrorEnum {
+ // Enum describing possible url field errors.
+ enum UrlFieldError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // The tracking url template is invalid.
+ INVALID_TRACKING_URL_TEMPLATE = 2;
+
+ // The tracking url template contains invalid tag.
+ INVALID_TAG_IN_TRACKING_URL_TEMPLATE = 3;
+
+ // The tracking url template must contain at least one tag (e.g. {lpurl}),
+ // This applies only to tracking url template associated with website ads or
+ // product ads.
+ MISSING_TRACKING_URL_TEMPLATE_TAG = 4;
+
+ // The tracking url template must start with a valid protocol (or lpurl
+ // tag).
+ MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 5;
+
+ // The tracking url template starts with an invalid protocol.
+ INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 6;
+
+ // The tracking url template contains illegal characters.
+ MALFORMED_TRACKING_URL_TEMPLATE = 7;
+
+ // The tracking url template must contain a host name (or lpurl tag).
+ MISSING_HOST_IN_TRACKING_URL_TEMPLATE = 8;
+
+ // The tracking url template has an invalid or missing top level domain
+ // extension.
+ INVALID_TLD_IN_TRACKING_URL_TEMPLATE = 9;
+
+ // The tracking url template contains nested occurrences of the same
+ // conditional tag (i.e. {ifmobile:{ifmobile:x}}).
+ REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG = 10;
+
+ // The final url is invalid.
+ INVALID_FINAL_URL = 11;
+
+ // The final url contains invalid tag.
+ INVALID_TAG_IN_FINAL_URL = 12;
+
+ // The final url contains nested occurrences of the same conditional tag
+ // (i.e. {ifmobile:{ifmobile:x}}).
+ REDUNDANT_NESTED_FINAL_URL_TAG = 13;
+
+ // The final url must start with a valid protocol.
+ MISSING_PROTOCOL_IN_FINAL_URL = 14;
+
+ // The final url starts with an invalid protocol.
+ INVALID_PROTOCOL_IN_FINAL_URL = 15;
+
+ // The final url contains illegal characters.
+ MALFORMED_FINAL_URL = 16;
+
+ // The final url must contain a host name.
+ MISSING_HOST_IN_FINAL_URL = 17;
+
+ // The tracking url template has an invalid or missing top level domain
+ // extension.
+ INVALID_TLD_IN_FINAL_URL = 18;
+
+ // The final mobile url is invalid.
+ INVALID_FINAL_MOBILE_URL = 19;
+
+ // The final mobile url contains invalid tag.
+ INVALID_TAG_IN_FINAL_MOBILE_URL = 20;
+
+ // The final mobile url contains nested occurrences of the same conditional
+ // tag (i.e. {ifmobile:{ifmobile:x}}).
+ REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG = 21;
+
+ // The final mobile url must start with a valid protocol.
+ MISSING_PROTOCOL_IN_FINAL_MOBILE_URL = 22;
+
+ // The final mobile url starts with an invalid protocol.
+ INVALID_PROTOCOL_IN_FINAL_MOBILE_URL = 23;
+
+ // The final mobile url contains illegal characters.
+ MALFORMED_FINAL_MOBILE_URL = 24;
+
+ // The final mobile url must contain a host name.
+ MISSING_HOST_IN_FINAL_MOBILE_URL = 25;
+
+ // The tracking url template has an invalid or missing top level domain
+ // extension.
+ INVALID_TLD_IN_FINAL_MOBILE_URL = 26;
+
+ // The final app url is invalid.
+ INVALID_FINAL_APP_URL = 27;
+
+ // The final app url contains invalid tag.
+ INVALID_TAG_IN_FINAL_APP_URL = 28;
+
+ // The final app url contains nested occurrences of the same conditional tag
+ // (i.e. {ifmobile:{ifmobile:x}}).
+ REDUNDANT_NESTED_FINAL_APP_URL_TAG = 29;
+
+ // More than one app url found for the same OS type.
+ MULTIPLE_APP_URLS_FOR_OSTYPE = 30;
+
+ // The OS type given for an app url is not valid.
+ INVALID_OSTYPE = 31;
+
+ // The protocol given for an app url is not valid. (E.g. "android-app://")
+ INVALID_PROTOCOL_FOR_APP_URL = 32;
+
+ // The package id (app id) given for an app url is not valid.
+ INVALID_PACKAGE_ID_FOR_APP_URL = 33;
+
+ // The number of url custom parameters for an resource exceeds the maximum
+ // limit allowed.
+ URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT = 34;
+
+ // An invalid character appears in the parameter key.
+ INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY = 39;
+
+ // An invalid character appears in the parameter value.
+ INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE = 40;
+
+ // The url custom parameter value fails url tag validation.
+ INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE = 41;
+
+ // The custom parameter contains nested occurrences of the same conditional
+ // tag (i.e. {ifmobile:{ifmobile:x}}).
+ REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG = 42;
+
+ // The protocol (http:// or https://) is missing.
+ MISSING_PROTOCOL = 43;
+
+ // Unsupported protocol in URL. Only http and https are supported.
+ INVALID_PROTOCOL = 52;
+
+ // The url is invalid.
+ INVALID_URL = 44;
+
+ // Destination Url is deprecated.
+ DESTINATION_URL_DEPRECATED = 45;
+
+ // The url contains invalid tag.
+ INVALID_TAG_IN_URL = 46;
+
+ // The url must contain at least one tag (e.g. {lpurl}), This applies only
+ // to urls associated with website ads or product ads.
+ MISSING_URL_TAG = 47;
+
+ // Duplicate url id.
+ DUPLICATE_URL_ID = 48;
+
+ // Invalid url id.
+ INVALID_URL_ID = 49;
+
+ // The final url suffix cannot begin with '?' or '&' characters and must be
+ // a valid query string.
+ FINAL_URL_SUFFIX_MALFORMED = 50;
+
+ // The final url suffix cannot contain {lpurl} related or {ignore} tags.
+ INVALID_TAG_IN_FINAL_URL_SUFFIX = 51;
+
+ // The top level domain is invalid, e.g, not a public top level domain
+ // listed in publicsuffix.org.
+ INVALID_TOP_LEVEL_DOMAIN = 53;
+
+ // Malformed top level domain in URL.
+ MALFORMED_TOP_LEVEL_DOMAIN = 54;
+
+ // Malformed URL.
+ MALFORMED_URL = 55;
+
+ // No host found in URL.
+ MISSING_HOST = 56;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/user_list_error.proto b/google/ads/googleads/v1/errors/user_list_error.proto
new file mode 100644
index 000000000..a02f931e3
--- /dev/null
+++ b/google/ads/googleads/v1/errors/user_list_error.proto
@@ -0,0 +1,130 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "UserListErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing user list errors.
+
+// Container for enum describing possible user list errors.
+message UserListErrorEnum {
+ // Enum describing possible user list errors.
+ enum UserListError {
+ // Enum unspecified.
+ UNSPECIFIED = 0;
+
+ // The received error code is not known in this version.
+ UNKNOWN = 1;
+
+ // Creating and updating external remarketing user lists is not supported.
+ EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED = 2;
+
+ // Concrete type of user list is required.
+ CONCRETE_TYPE_REQUIRED = 3;
+
+ // Creating/updating user list conversion types requires specifying the
+ // conversion type Id.
+ CONVERSION_TYPE_ID_REQUIRED = 4;
+
+ // Remarketing user list cannot have duplicate conversion types.
+ DUPLICATE_CONVERSION_TYPES = 5;
+
+ // Conversion type is invalid/unknown.
+ INVALID_CONVERSION_TYPE = 6;
+
+ // User list description is empty or invalid.
+ INVALID_DESCRIPTION = 7;
+
+ // User list name is empty or invalid.
+ INVALID_NAME = 8;
+
+ // Type of the UserList does not match.
+ INVALID_TYPE = 9;
+
+ // Embedded logical user lists are not allowed.
+ CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND = 10;
+
+ // User list rule operand is invalid.
+ INVALID_USER_LIST_LOGICAL_RULE_OPERAND = 11;
+
+ // Name is already being used for another user list for the account.
+ NAME_ALREADY_USED = 12;
+
+ // Name is required when creating a new conversion type.
+ NEW_CONVERSION_TYPE_NAME_REQUIRED = 13;
+
+ // The given conversion type name has been used.
+ CONVERSION_TYPE_NAME_ALREADY_USED = 14;
+
+ // Only an owner account may edit a user list.
+ OWNERSHIP_REQUIRED_FOR_SET = 15;
+
+ // Creating user list without setting type in oneof user_list field, or
+ // creating/updating read-only user list types is not allowed.
+ USER_LIST_MUTATE_NOT_SUPPORTED = 16;
+
+ // Rule is invalid.
+ INVALID_RULE = 17;
+
+ // The specified date range is empty.
+ INVALID_DATE_RANGE = 27;
+
+ // A UserList which is privacy sensitive or legal rejected cannot be mutated
+ // by external users.
+ CAN_NOT_MUTATE_SENSITIVE_USERLIST = 28;
+
+ // Maximum number of rulebased user lists a customer can have.
+ MAX_NUM_RULEBASED_USERLISTS = 29;
+
+ // BasicUserList's billable record field cannot be modified once it is set.
+ CANNOT_MODIFY_BILLABLE_RECORD_COUNT = 30;
+
+ // crm_based_user_list.app_id field must be set when upload_key_type is
+ // MOBILE_ADVERTISING_ID.
+ APP_ID_NOT_SET = 31;
+
+ // Name of the user list is reserved for system generated lists and cannot
+ // be used.
+ USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST = 32;
+
+ // Advertiser needs to be whitelisted to use remarketing lists created from
+ // advertiser uploaded data (e.g., Customer Match lists).
+ ADVERTISER_NOT_WHITELISTED_FOR_USING_UPLOADED_DATA = 33;
+
+ // The provided rule_type is not supported for the user list.
+ RULE_TYPE_IS_NOT_SUPPORTED = 34;
+
+ // Similar user list cannot be used as a logical user list operand.
+ CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND = 35;
+
+ // Logical user list should not have a mix of CRM based user list and other
+ // types of lists in its rules.
+ CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS = 36;
+ }
+
+
+}
diff --git a/google/ads/googleads/v1/errors/youtube_video_registration_error.proto b/google/ads/googleads/v1/errors/youtube_video_registration_error.proto
new file mode 100644
index 000000000..33aab3179
--- /dev/null
+++ b/google/ads/googleads/v1/errors/youtube_video_registration_error.proto
@@ -0,0 +1,31 @@
+// Copyright 2019 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.googleads.v1.errors;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Errors";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/errors;errors";
+option java_multiple_files = true;
+option java_outer_classname = "YoutubeVideoRegistrationErrorProto";
+option java_package = "com.google.ads.googleads.v1.errors";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Errors";
+option ruby_package = "Google::Ads::GoogleAds::V1::Errors";
+
+// Proto file describing youtube video registration errors.
diff --git a/google/ads/googleads/v1/resources/account_budget.proto b/google/ads/googleads/v1/resources/account_budget.proto
new file mode 100644
index 000000000..a6a943199
--- /dev/null
+++ b/google/ads/googleads/v1/resources/account_budget.proto
@@ -0,0 +1,233 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/account_budget_proposal_type.proto";
+import "google/ads/googleads/v1/enums/account_budget_status.proto";
+import "google/ads/googleads/v1/enums/spending_limit_type.proto";
+import "google/ads/googleads/v1/enums/time_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the AccountBudget resource.
+
+// An account-level budget. It contains information about the budget itself,
+// as well as the most recently approved changes to the budget and proposed
+// changes that are pending approval. The proposed changes that are pending
+// approval, if any, are found in 'pending_proposal'. Effective details about
+// the budget are found in fields prefixed 'approved_', 'adjusted_' and those
+// without a prefix. Since some effective details may differ from what the user
+// had originally requested (e.g. spending limit), these differences are
+// juxtaposed via 'proposed_', 'approved_', and possibly 'adjusted_' fields.
+//
+// This resource is mutated using AccountBudgetProposal and cannot be mutated
+// directly. A budget may have at most one pending proposal at any given time.
+// It is read through pending_proposal.
+//
+// Once approved, a budget may be subject to adjustments, such as credit
+// adjustments. Adjustments create differences between the 'approved' and
+// 'adjusted' fields, which would otherwise be identical.
+message AccountBudget {
+ // A pending proposal associated with the enclosing account-level budget,
+ // if applicable.
+ message PendingAccountBudgetProposal {
+ // The resource name of the proposal.
+ // AccountBudgetProposal resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
+ google.protobuf.StringValue account_budget_proposal = 1;
+
+ // The type of this proposal, e.g. END to end the budget associated
+ // with this proposal.
+ google.ads.googleads.v1.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType proposal_type = 2;
+
+ // The name to assign to the account-level budget.
+ google.protobuf.StringValue name = 3;
+
+ // The start time in yyyy-MM-dd HH:mm:ss format.
+ google.protobuf.StringValue start_date_time = 4;
+
+ // A purchase order number is a value that helps users reference this budget
+ // in their monthly invoices.
+ google.protobuf.StringValue purchase_order_number = 9;
+
+ // Notes associated with this budget.
+ google.protobuf.StringValue notes = 10;
+
+ // The time when this account-level budget proposal was created.
+ // Formatted as yyyy-MM-dd HH:mm:ss.
+ google.protobuf.StringValue creation_date_time = 11;
+
+ // The end time of the account-level budget.
+ oneof end_time {
+ // The end time in yyyy-MM-dd HH:mm:ss format.
+ google.protobuf.StringValue end_date_time = 5;
+
+ // The end time as a well-defined type, e.g. FOREVER.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType end_time_type = 6;
+ }
+
+ // The spending limit.
+ oneof spending_limit {
+ // The spending limit in micros. One million is equivalent to
+ // one unit.
+ google.protobuf.Int64Value spending_limit_micros = 7;
+
+ // The spending limit as a well-defined type, e.g. INFINITE.
+ google.ads.googleads.v1.enums.SpendingLimitTypeEnum.SpendingLimitType spending_limit_type = 8;
+ }
+ }
+
+ // The resource name of the account-level budget.
+ // AccountBudget resource names have the form:
+ //
+ // `customers/{customer_id}/accountBudgets/{account_budget_id}`
+ string resource_name = 1;
+
+ // The ID of the account-level budget.
+ google.protobuf.Int64Value id = 2;
+
+ // The resource name of the billing setup associated with this account-level
+ // budget. BillingSetup resource names have the form:
+ //
+ // `customers/{customer_id}/billingSetups/{billing_setup_id}`
+ google.protobuf.StringValue billing_setup = 3;
+
+ // The status of this account-level budget.
+ google.ads.googleads.v1.enums.AccountBudgetStatusEnum.AccountBudgetStatus status = 4;
+
+ // The name of the account-level budget.
+ google.protobuf.StringValue name = 5;
+
+ // The proposed start time of the account-level budget in
+ // yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed,
+ // this is the time of request.
+ google.protobuf.StringValue proposed_start_date_time = 6;
+
+ // The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss
+ // format.
+ //
+ // For example, if a new budget is approved after the proposed start time,
+ // the approved start time is the time of approval.
+ google.protobuf.StringValue approved_start_date_time = 7;
+
+ // The total adjustments amount.
+ //
+ // An example of an adjustment is courtesy credits.
+ google.protobuf.Int64Value total_adjustments_micros = 18;
+
+ // The value of Ads that have been served, in micros.
+ //
+ // This includes overdelivery costs, in which case a credit might be
+ // automatically applied to the budget (see total_adjustments_micros).
+ google.protobuf.Int64Value amount_served_micros = 19;
+
+ // A purchase order number is a value that helps users reference this budget
+ // in their monthly invoices.
+ google.protobuf.StringValue purchase_order_number = 20;
+
+ // Notes associated with the budget.
+ google.protobuf.StringValue notes = 21;
+
+ // The pending proposal to modify this budget, if applicable.
+ PendingAccountBudgetProposal pending_proposal = 22;
+
+ // The proposed end time of the account-level budget.
+ oneof proposed_end_time {
+ // The proposed end time in yyyy-MM-dd HH:mm:ss format.
+ google.protobuf.StringValue proposed_end_date_time = 8;
+
+ // The proposed end time as a well-defined type, e.g. FOREVER.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9;
+ }
+
+ // The approved end time of the account-level budget.
+ //
+ // For example, if a budget's end time is updated and the proposal is approved
+ // after the proposed end time, the approved end time is the time of approval.
+ oneof approved_end_time {
+ // The approved end time in yyyy-MM-dd HH:mm:ss format.
+ google.protobuf.StringValue approved_end_date_time = 10;
+
+ // The approved end time as a well-defined type, e.g. FOREVER.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType approved_end_time_type = 11;
+ }
+
+ // The proposed spending limit.
+ oneof proposed_spending_limit {
+ // The proposed spending limit in micros. One million is equivalent to
+ // one unit.
+ google.protobuf.Int64Value proposed_spending_limit_micros = 12;
+
+ // The proposed spending limit as a well-defined type, e.g. INFINITE.
+ google.ads.googleads.v1.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 13;
+ }
+
+ // The approved spending limit.
+ //
+ // For example, if the amount already spent by the account exceeds the
+ // proposed spending limit at the time the proposal is approved, the approved
+ // spending limit is set to the amount already spent.
+ oneof approved_spending_limit {
+ // The approved spending limit in micros. One million is equivalent to
+ // one unit. This will only be populated if the proposed spending limit
+ // is finite, and will always be greater than or equal to the
+ // proposed spending limit.
+ google.protobuf.Int64Value approved_spending_limit_micros = 14;
+
+ // The approved spending limit as a well-defined type, e.g. INFINITE. This
+ // will only be populated if the approved spending limit is INFINITE.
+ google.ads.googleads.v1.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 15;
+ }
+
+ // The spending limit after adjustments have been applied. Adjustments are
+ // stored in total_adjustments_micros.
+ //
+ // This value has the final say on how much the account is allowed to spend.
+ oneof adjusted_spending_limit {
+ // The adjusted spending limit in micros. One million is equivalent to
+ // one unit.
+ //
+ // If the approved spending limit is finite, the adjusted
+ // spending limit may vary depending on the types of adjustments applied
+ // to this budget, if applicable.
+ //
+ // The different kinds of adjustments are described here:
+ // https://support.google.com/google-ads/answer/1704323
+ //
+ // For example, a debit adjustment reduces how much the account is
+ // allowed to spend.
+ google.protobuf.Int64Value adjusted_spending_limit_micros = 16;
+
+ // The adjusted spending limit as a well-defined type, e.g. INFINITE.
+ // This will only be populated if the adjusted spending limit is INFINITE,
+ // which is guaranteed to be true if the approved spending limit is
+ // INFINITE.
+ google.ads.googleads.v1.enums.SpendingLimitTypeEnum.SpendingLimitType adjusted_spending_limit_type = 17;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/account_budget_proposal.proto b/google/ads/googleads/v1/resources/account_budget_proposal.proto
new file mode 100644
index 000000000..237bc0e9b
--- /dev/null
+++ b/google/ads/googleads/v1/resources/account_budget_proposal.proto
@@ -0,0 +1,141 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/account_budget_proposal_status.proto";
+import "google/ads/googleads/v1/enums/account_budget_proposal_type.proto";
+import "google/ads/googleads/v1/enums/spending_limit_type.proto";
+import "google/ads/googleads/v1/enums/time_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetProposalProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the AccountBudgetProposal resource.
+
+// An account-level budget proposal.
+//
+// All fields prefixed with 'proposed' may not necessarily be applied directly.
+// For example, proposed spending limits may be adjusted before their
+// application. This is true if the 'proposed' field has an 'approved'
+// counterpart, e.g. spending limits.
+//
+// Please note that the proposal type (proposal_type) changes which fields are
+// required and which must remain empty.
+message AccountBudgetProposal {
+ // The resource name of the proposal.
+ // AccountBudgetProposal resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
+ string resource_name = 1;
+
+ // The ID of the proposal.
+ google.protobuf.Int64Value id = 14;
+
+ // The resource name of the billing setup associated with this proposal.
+ google.protobuf.StringValue billing_setup = 2;
+
+ // The resource name of the account-level budget associated with this
+ // proposal.
+ google.protobuf.StringValue account_budget = 3;
+
+ // The type of this proposal, e.g. END to end the budget associated with this
+ // proposal.
+ google.ads.googleads.v1.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType proposal_type = 4;
+
+ // The status of this proposal.
+ // When a new proposal is created, the status defaults to PENDING.
+ google.ads.googleads.v1.enums.AccountBudgetProposalStatusEnum.AccountBudgetProposalStatus status = 15;
+
+ // The name to assign to the account-level budget.
+ google.protobuf.StringValue proposed_name = 5;
+
+ // The approved start date time in yyyy-mm-dd hh:mm:ss format.
+ google.protobuf.StringValue approved_start_date_time = 20;
+
+ // A purchase order number is a value that enables the user to help them
+ // reference this budget in their monthly invoices.
+ google.protobuf.StringValue proposed_purchase_order_number = 12;
+
+ // Notes associated with this budget.
+ google.protobuf.StringValue proposed_notes = 13;
+
+ // The date time when this account-level budget proposal was created, which is
+ // not the same as its approval date time, if applicable.
+ google.protobuf.StringValue creation_date_time = 16;
+
+ // The date time when this account-level budget was approved, if applicable.
+ google.protobuf.StringValue approval_date_time = 17;
+
+ // The proposed start date time of the account-level budget, which cannot be
+ // in the past.
+ oneof proposed_start_time {
+ // The proposed start date time in yyyy-mm-dd hh:mm:ss format.
+ google.protobuf.StringValue proposed_start_date_time = 18;
+
+ // The proposed start date time as a well-defined type, e.g. NOW.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType proposed_start_time_type = 7;
+ }
+
+ // The proposed end date time of the account-level budget, which cannot be in
+ // the past.
+ oneof proposed_end_time {
+ // The proposed end date time in yyyy-mm-dd hh:mm:ss format.
+ google.protobuf.StringValue proposed_end_date_time = 19;
+
+ // The proposed end date time as a well-defined type, e.g. FOREVER.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9;
+ }
+
+ // The approved end date time of the account-level budget.
+ oneof approved_end_time {
+ // The approved end date time in yyyy-mm-dd hh:mm:ss format.
+ google.protobuf.StringValue approved_end_date_time = 21;
+
+ // The approved end date time as a well-defined type, e.g. FOREVER.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType approved_end_time_type = 22;
+ }
+
+ // The proposed spending limit.
+ oneof proposed_spending_limit {
+ // The proposed spending limit in micros. One million is equivalent to
+ // one unit.
+ google.protobuf.Int64Value proposed_spending_limit_micros = 10;
+
+ // The proposed spending limit as a well-defined type, e.g. INFINITE.
+ google.ads.googleads.v1.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 11;
+ }
+
+ // The approved spending limit.
+ oneof approved_spending_limit {
+ // The approved spending limit in micros. One million is equivalent to
+ // one unit.
+ google.protobuf.Int64Value approved_spending_limit_micros = 23;
+
+ // The approved spending limit as a well-defined type, e.g. INFINITE.
+ google.ads.googleads.v1.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 24;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/ad.proto b/google/ads/googleads/v1/resources/ad.proto
new file mode 100644
index 000000000..fcf13e9de
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad.proto
@@ -0,0 +1,143 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/ad_type_infos.proto";
+import "google/ads/googleads/v1/common/custom_parameter.proto";
+import "google/ads/googleads/v1/common/url_collection.proto";
+import "google/ads/googleads/v1/enums/ad_type.proto";
+import "google/ads/googleads/v1/enums/device.proto";
+import "google/ads/googleads/v1/enums/system_managed_entity_source.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad type.
+
+// An ad.
+message Ad {
+ // The ID of the ad.
+ google.protobuf.Int64Value id = 1;
+
+ // The list of possible final URLs after all cross-domain redirects for the
+ // ad.
+ repeated google.protobuf.StringValue final_urls = 2;
+
+ // The list of possible final mobile URLs after all cross-domain redirects
+ // for the ad.
+ repeated google.protobuf.StringValue final_mobile_urls = 16;
+
+ // The URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 12;
+
+ // The list of mappings that can be used to substitute custom parameter tags
+ // in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
+ repeated google.ads.googleads.v1.common.CustomParameter url_custom_parameters = 10;
+
+ // The URL that appears in the ad description for some ad formats.
+ google.protobuf.StringValue display_url = 4;
+
+ // The type of ad.
+ google.ads.googleads.v1.enums.AdTypeEnum.AdType type = 5;
+
+ // Indicates if this ad was automatically added by Google Ads and not by a
+ // user. For example, this could happen when ads are automatically created as
+ // suggestions for new ads based on knowledge of how existing ads are
+ // performing.
+ google.protobuf.BoolValue added_by_google_ads = 19;
+
+ // The device preference for the ad. You can only specify a preference for
+ // mobile devices. When this preference is set the ad will be preferred over
+ // other ads when being displayed on a mobile device. The ad can still be
+ // displayed on other device types, e.g. if no other ads are available.
+ // If unspecified (no device preference), all devices are targeted.
+ // This is only supported by some ad types.
+ google.ads.googleads.v1.enums.DeviceEnum.Device device_preference = 20;
+
+ // Additional URLs for the ad that are tagged with a unique identifier that
+ // can be referenced from other fields in the ad.
+ repeated google.ads.googleads.v1.common.UrlCollection url_collections = 26;
+
+ // The name of the ad. This is only used to be able to identify the ad. It
+ // does not need to be unique and does not affect the served ad.
+ google.protobuf.StringValue name = 23;
+
+ // If this ad is system managed, then this field will indicate the source.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.SystemManagedResourceSourceEnum.SystemManagedResourceSource system_managed_resource_source = 27;
+
+ // Details pertinent to the ad type. Exactly one value must be set.
+ oneof ad_data {
+ // Details pertaining to a text ad.
+ google.ads.googleads.v1.common.TextAdInfo text_ad = 6;
+
+ // Details pertaining to an expanded text ad.
+ google.ads.googleads.v1.common.ExpandedTextAdInfo expanded_text_ad = 7;
+
+ // Details pertaining to a call-only ad.
+ google.ads.googleads.v1.common.CallOnlyAdInfo call_only_ad = 13;
+
+ // Details pertaining to an Expanded Dynamic Search Ad.
+ // This type of ad has its headline, final URLs, and display URL
+ // auto-generated at serving time according to domain name specific
+ // information provided by `dynamic_search_ads_setting` linked at the
+ // campaign level.
+ google.ads.googleads.v1.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14;
+
+ // Details pertaining to a hotel ad.
+ google.ads.googleads.v1.common.HotelAdInfo hotel_ad = 15;
+
+ // Details pertaining to a Smart Shopping ad.
+ google.ads.googleads.v1.common.ShoppingSmartAdInfo shopping_smart_ad = 17;
+
+ // Details pertaining to a Shopping product ad.
+ google.ads.googleads.v1.common.ShoppingProductAdInfo shopping_product_ad = 18;
+
+ // Details pertaining to a Gmail ad.
+ google.ads.googleads.v1.common.GmailAdInfo gmail_ad = 21;
+
+ // Details pertaining to an Image ad.
+ google.ads.googleads.v1.common.ImageAdInfo image_ad = 22;
+
+ // Details pertaining to a Video ad.
+ google.ads.googleads.v1.common.VideoAdInfo video_ad = 24;
+
+ // Details pertaining to a responsive search ad.
+ google.ads.googleads.v1.common.ResponsiveSearchAdInfo responsive_search_ad = 25;
+
+ // Details pertaining to a legacy responsive display ad.
+ google.ads.googleads.v1.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28;
+
+ // Details pertaining to an app ad.
+ google.ads.googleads.v1.common.AppAdInfo app_ad = 29;
+
+ // Details pertaining to a legacy app install ad.
+ google.ads.googleads.v1.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30;
+
+ // Details pertaining to a responsive display ad.
+ google.ads.googleads.v1.common.ResponsiveDisplayAdInfo responsive_display_ad = 31;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/ad_group.proto b/google/ads/googleads/v1/resources/ad_group.proto
new file mode 100644
index 000000000..637bb51a2
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group.proto
@@ -0,0 +1,139 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/custom_parameter.proto";
+import "google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto";
+import "google/ads/googleads/v1/common/targeting_setting.proto";
+import "google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto";
+import "google/ads/googleads/v1/enums/ad_group_status.proto";
+import "google/ads/googleads/v1/enums/ad_group_type.proto";
+import "google/ads/googleads/v1/enums/bidding_source.proto";
+import "google/ads/googleads/v1/enums/targeting_dimension.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group resource.
+
+// An ad group.
+message AdGroup {
+ // The resource name of the ad group.
+ // Ad group resource names have the form:
+ //
+ // `customers/{customer_id}/adGroups/{ad_group_id}`
+ string resource_name = 1;
+
+ // The ID of the ad group.
+ google.protobuf.Int64Value id = 3;
+
+ // The name of the ad group.
+ //
+ // This field is required and should not be empty when creating new ad
+ // groups.
+ //
+ // It must contain fewer than 255 UTF-8 full-width characters.
+ //
+ // It must not contain any null (code point 0x0), NL line feed
+ // (code point 0xA) or carriage return (code point 0xD) characters.
+ google.protobuf.StringValue name = 4;
+
+ // The status of the ad group.
+ google.ads.googleads.v1.enums.AdGroupStatusEnum.AdGroupStatus status = 5;
+
+ // The type of the ad group.
+ google.ads.googleads.v1.enums.AdGroupTypeEnum.AdGroupType type = 12;
+
+ // The ad rotation mode of the ad group.
+ google.ads.googleads.v1.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22;
+
+ // The URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 13;
+
+ // The list of mappings used to substitute custom parameter tags in a
+ // `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
+ repeated google.ads.googleads.v1.common.CustomParameter url_custom_parameters = 6;
+
+ // The campaign to which the ad group belongs.
+ google.protobuf.StringValue campaign = 10;
+
+ // The maximum CPC (cost-per-click) bid.
+ google.protobuf.Int64Value cpc_bid_micros = 14;
+
+ // The maximum CPM (cost-per-thousand viewable impressions) bid.
+ google.protobuf.Int64Value cpm_bid_micros = 15;
+
+ // The target CPA (cost-per-acquisition).
+ google.protobuf.Int64Value target_cpa_micros = 27;
+
+ // The CPV (cost-per-view) bid.
+ google.protobuf.Int64Value cpv_bid_micros = 17;
+
+ // Average amount in micros that the advertiser is willing to pay for every
+ // thousand times the ad is shown.
+ google.protobuf.Int64Value target_cpm_micros = 26;
+
+ // The target ROAS (return-on-ad-spend) override. If the ad group's campaign
+ // bidding strategy is a standard Target ROAS strategy, then this field
+ // overrides the target ROAS specified in the campaign's bidding strategy.
+ // Otherwise, this value is ignored.
+ google.protobuf.DoubleValue target_roas = 30;
+
+ // The percent cpc bid amount, expressed as a fraction of the advertised price
+ // for some good or service. The valid range for the fraction is [0,1) and the
+ // value stored here is 1,000,000 * [fraction].
+ google.protobuf.Int64Value percent_cpc_bid_micros = 20;
+
+ // Settings for the Display Campaign Optimizer, initially termed "Explorer".
+ google.ads.googleads.v1.common.ExplorerAutoOptimizerSetting explorer_auto_optimizer_setting = 21;
+
+ // Allows advertisers to specify a targeting dimension on which to place
+ // absolute bids. This is only applicable for campaigns that target only the
+ // display network and not search.
+ google.ads.googleads.v1.enums.TargetingDimensionEnum.TargetingDimension display_custom_bid_dimension = 23;
+
+ // URL template for appending params to Final URL.
+ google.protobuf.StringValue final_url_suffix = 24;
+
+ // Setting for targeting related features.
+ google.ads.googleads.v1.common.TargetingSetting targeting_setting = 25;
+
+ // The effective target CPA (cost-per-acquisition).
+ // This field is read-only.
+ google.protobuf.Int64Value effective_target_cpa_micros = 28;
+
+ // Source of the effective target CPA.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29;
+
+ // The effective target ROAS (return-on-ad-spend).
+ // This field is read-only.
+ google.protobuf.DoubleValue effective_target_roas = 31;
+
+ // Source of the effective target ROAS.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32;
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_ad.proto b/google/ads/googleads/v1/resources/ad_group_ad.proto
new file mode 100644
index 000000000..d08ac83ee
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_ad.proto
@@ -0,0 +1,75 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/policy.proto";
+import "google/ads/googleads/v1/enums/ad_group_ad_status.proto";
+import "google/ads/googleads/v1/enums/ad_strength.proto";
+import "google/ads/googleads/v1/enums/policy_approval_status.proto";
+import "google/ads/googleads/v1/enums/policy_review_status.proto";
+import "google/ads/googleads/v1/resources/ad.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAdProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group ad resource.
+
+// An ad group ad.
+message AdGroupAd {
+ // The resource name of the ad.
+ // Ad group ad resource names have the form:
+ //
+ // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`
+ string resource_name = 1;
+
+ // The status of the ad.
+ google.ads.googleads.v1.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3;
+
+ // The ad group to which the ad belongs.
+ google.protobuf.StringValue ad_group = 4;
+
+ // The ad.
+ Ad ad = 5;
+
+ // Policy information for the ad.
+ AdGroupAdPolicySummary policy_summary = 6;
+
+ // Overall ad strength for this ad group ad.
+ google.ads.googleads.v1.enums.AdStrengthEnum.AdStrength ad_strength = 7;
+}
+
+// Contains policy information for an ad.
+message AdGroupAdPolicySummary {
+ // The list of policy findings for this ad.
+ repeated google.ads.googleads.v1.common.PolicyTopicEntry policy_topic_entries = 1;
+
+ // Where in the review process this ad is.
+ google.ads.googleads.v1.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 2;
+
+ // The overall approval status of this ad, calculated based on the status of
+ // its individual policy topic entries.
+ google.ads.googleads.v1.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3;
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_ad_label.proto b/google/ads/googleads/v1/resources/ad_group_ad_label.proto
new file mode 100644
index 000000000..c539f2cbb
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_ad_label.proto
@@ -0,0 +1,46 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAdLabelProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group ad label resource.
+
+// A relationship between an ad group ad and a label.
+message AdGroupAdLabel {
+ // The resource name of the ad group ad label.
+ // Ad group ad label resource names have the form:
+ // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`
+ string resource_name = 1;
+
+ // The ad group ad to which the label is attached.
+ google.protobuf.StringValue ad_group_ad = 2;
+
+ // The label assigned to the ad group ad.
+ google.protobuf.StringValue label = 3;
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_audience_view.proto b/google/ads/googleads/v1/resources/ad_group_audience_view.proto
new file mode 100644
index 000000000..6a7e7af98
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_audience_view.proto
@@ -0,0 +1,43 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAudienceViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group audience view resource.
+
+// An ad group audience view.
+// Includes performance data from interests and remarketing lists for Display
+// Network and YouTube Network ads, and remarketing lists for search ads (RLSA),
+// aggregated at the audience level.
+message AdGroupAudienceView {
+ // The resource name of the ad group audience view.
+ // Ad group audience view resource names have the form:
+ //
+ // `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_bid_modifier.proto b/google/ads/googleads/v1/resources/ad_group_bid_modifier.proto
new file mode 100644
index 000000000..61eda580e
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_bid_modifier.proto
@@ -0,0 +1,87 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/bid_modifier_source.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupBidModifierProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group bid modifier resource.
+
+// Represents an ad group bid modifier.
+message AdGroupBidModifier {
+ // The resource name of the ad group bid modifier.
+ // Ad group bid modifier resource names have the form:
+ //
+ // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+
+ // The ad group to which this criterion belongs.
+ google.protobuf.StringValue ad_group = 2;
+
+ // The ID of the criterion to bid modify.
+ //
+ // This field is ignored for mutates.
+ google.protobuf.Int64Value criterion_id = 3;
+
+ // The modifier for the bid when the criterion matches. The modifier must be
+ // in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent.
+ // Use 0 to opt out of a Device type.
+ google.protobuf.DoubleValue bid_modifier = 4;
+
+ // The base ad group from which this draft/trial adgroup bid modifier was
+ // created. If ad_group is a base ad group then this field will be equal to
+ // ad_group. If the ad group was created in the draft or trial and has no
+ // corresponding base ad group, then this field will be null.
+ // This field is readonly.
+ google.protobuf.StringValue base_ad_group = 9;
+
+ // Bid modifier source.
+ google.ads.googleads.v1.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10;
+
+ // The criterion of this ad group bid modifier.
+ oneof criterion {
+ // Criterion for hotel date selection (default dates vs. user selected).
+ google.ads.googleads.v1.common.HotelDateSelectionTypeInfo hotel_date_selection_type = 5;
+
+ // Criterion for number of days prior to the stay the booking is being made.
+ google.ads.googleads.v1.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6;
+
+ // Criterion for length of hotel stay in nights.
+ google.ads.googleads.v1.common.HotelLengthOfStayInfo hotel_length_of_stay = 7;
+
+ // Criterion for day of the week the booking is for.
+ google.ads.googleads.v1.common.HotelCheckInDayInfo hotel_check_in_day = 8;
+
+ // A device criterion.
+ google.ads.googleads.v1.common.DeviceInfo device = 11;
+
+ // A preferred content criterion.
+ google.ads.googleads.v1.common.PreferredContentInfo preferred_content = 12;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_criterion.proto b/google/ads/googleads/v1/resources/ad_group_criterion.proto
new file mode 100644
index 000000000..7b2697690
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_criterion.proto
@@ -0,0 +1,240 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/common/custom_parameter.proto";
+import "google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto";
+import "google/ads/googleads/v1/enums/ad_group_criterion_status.proto";
+import "google/ads/googleads/v1/enums/bidding_source.proto";
+import "google/ads/googleads/v1/enums/criterion_system_serving_status.proto";
+import "google/ads/googleads/v1/enums/criterion_type.proto";
+import "google/ads/googleads/v1/enums/quality_score_bucket.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupCriterionProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group criterion resource.
+
+// An ad group criterion.
+message AdGroupCriterion {
+ // A container for ad group criterion quality information.
+ message QualityInfo {
+ // The quality score.
+ //
+ // This field may not be populated if Google does not have enough
+ // information to determine a value.
+ google.protobuf.Int32Value quality_score = 1;
+
+ // The performance of the ad compared to other advertisers.
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket creative_quality_score = 2;
+
+ // The quality score of the landing page.
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket post_click_quality_score = 3;
+
+ // The click-through rate compared to that of other advertisers.
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket search_predicted_ctr = 4;
+ }
+
+ // Estimates for criterion bids at various positions.
+ message PositionEstimates {
+ // The estimate of the CPC bid required for ad to be shown on first
+ // page of search results.
+ google.protobuf.Int64Value first_page_cpc_micros = 1;
+
+ // The estimate of the CPC bid required for ad to be displayed in first
+ // position, at the top of the first page of search results.
+ google.protobuf.Int64Value first_position_cpc_micros = 2;
+
+ // The estimate of the CPC bid required for ad to be displayed at the top
+ // of the first page of search results.
+ google.protobuf.Int64Value top_of_page_cpc_micros = 3;
+
+ // Estimate of how many clicks per week you might get by changing your
+ // keyword bid to the value in first_position_cpc_micros.
+ google.protobuf.Int64Value estimated_add_clicks_at_first_position_cpc = 4;
+
+ // Estimate of how your cost per week might change when changing your
+ // keyword bid to the value in first_position_cpc_micros.
+ google.protobuf.Int64Value estimated_add_cost_at_first_position_cpc = 5;
+ }
+
+ // The resource name of the ad group criterion.
+ // Ad group criterion resource names have the form:
+ //
+ // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+
+ // The ID of the criterion.
+ //
+ // This field is ignored for mutates.
+ google.protobuf.Int64Value criterion_id = 26;
+
+ // The status of the criterion.
+ google.ads.googleads.v1.enums.AdGroupCriterionStatusEnum.AdGroupCriterionStatus status = 3;
+
+ // Information regarding the quality of the criterion.
+ QualityInfo quality_info = 4;
+
+ // The ad group to which the criterion belongs.
+ google.protobuf.StringValue ad_group = 5;
+
+ // The type of the criterion.
+ google.ads.googleads.v1.enums.CriterionTypeEnum.CriterionType type = 25;
+
+ // Whether to target (`false`) or exclude (`true`) the criterion.
+ //
+ // This field is immutable. To switch a criterion from positive to negative,
+ // remove then re-add it.
+ google.protobuf.BoolValue negative = 31;
+
+ // Serving status of the criterion.
+ google.ads.googleads.v1.enums.CriterionSystemServingStatusEnum.CriterionSystemServingStatus system_serving_status = 52;
+
+ // Approval status of the criterion.
+ google.ads.googleads.v1.enums.AdGroupCriterionApprovalStatusEnum.AdGroupCriterionApprovalStatus approval_status = 53;
+
+ // The modifier for the bid when the criterion matches. The modifier must be
+ // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers.
+ google.protobuf.DoubleValue bid_modifier = 44;
+
+ // The CPC (cost-per-click) bid.
+ google.protobuf.Int64Value cpc_bid_micros = 16;
+
+ // The CPM (cost-per-thousand viewable impressions) bid.
+ google.protobuf.Int64Value cpm_bid_micros = 17;
+
+ // The CPV (cost-per-view) bid.
+ google.protobuf.Int64Value cpv_bid_micros = 24;
+
+ // The CPC bid amount, expressed as a fraction of the advertised price
+ // for some good or service. The valid range for the fraction is [0,1) and the
+ // value stored here is 1,000,000 * [fraction].
+ google.protobuf.Int64Value percent_cpc_bid_micros = 33;
+
+ // The effective CPC (cost-per-click) bid.
+ google.protobuf.Int64Value effective_cpc_bid_micros = 18;
+
+ // The effective CPM (cost-per-thousand viewable impressions) bid.
+ google.protobuf.Int64Value effective_cpm_bid_micros = 19;
+
+ // The effective CPV (cost-per-view) bid.
+ google.protobuf.Int64Value effective_cpv_bid_micros = 20;
+
+ // The effective Percent CPC bid amount.
+ google.protobuf.Int64Value effective_percent_cpc_bid_micros = 34;
+
+ // Source of the effective CPC bid.
+ google.ads.googleads.v1.enums.BiddingSourceEnum.BiddingSource effective_cpc_bid_source = 21;
+
+ // Source of the effective CPM bid.
+ google.ads.googleads.v1.enums.BiddingSourceEnum.BiddingSource effective_cpm_bid_source = 22;
+
+ // Source of the effective CPV bid.
+ google.ads.googleads.v1.enums.BiddingSourceEnum.BiddingSource effective_cpv_bid_source = 23;
+
+ // Source of the effective Percent CPC bid.
+ google.ads.googleads.v1.enums.BiddingSourceEnum.BiddingSource effective_percent_cpc_bid_source = 35;
+
+ // Estimates for criterion bids at various positions.
+ PositionEstimates position_estimates = 10;
+
+ // The list of possible final URLs after all cross-domain redirects for the
+ // ad.
+ repeated google.protobuf.StringValue final_urls = 11;
+
+ // The list of possible final mobile URLs after all cross-domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 51;
+
+ // URL template for appending params to final URL.
+ google.protobuf.StringValue final_url_suffix = 50;
+
+ // The URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 13;
+
+ // The list of mappings used to substitute custom parameter tags in a
+ // `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
+ repeated google.ads.googleads.v1.common.CustomParameter url_custom_parameters = 14;
+
+ // The ad group criterion.
+ //
+ // Exactly one must be set.
+ oneof criterion {
+ // Keyword.
+ google.ads.googleads.v1.common.KeywordInfo keyword = 27;
+
+ // Placement.
+ google.ads.googleads.v1.common.PlacementInfo placement = 28;
+
+ // Mobile app category.
+ google.ads.googleads.v1.common.MobileAppCategoryInfo mobile_app_category = 29;
+
+ // Mobile application.
+ google.ads.googleads.v1.common.MobileApplicationInfo mobile_application = 30;
+
+ // Listing group.
+ google.ads.googleads.v1.common.ListingGroupInfo listing_group = 32;
+
+ // Age range.
+ google.ads.googleads.v1.common.AgeRangeInfo age_range = 36;
+
+ // Gender.
+ google.ads.googleads.v1.common.GenderInfo gender = 37;
+
+ // Income range.
+ google.ads.googleads.v1.common.IncomeRangeInfo income_range = 38;
+
+ // Parental status.
+ google.ads.googleads.v1.common.ParentalStatusInfo parental_status = 39;
+
+ // User List.
+ google.ads.googleads.v1.common.UserListInfo user_list = 42;
+
+ // YouTube Video.
+ google.ads.googleads.v1.common.YouTubeVideoInfo youtube_video = 40;
+
+ // YouTube Channel.
+ google.ads.googleads.v1.common.YouTubeChannelInfo youtube_channel = 41;
+
+ // Topic.
+ google.ads.googleads.v1.common.TopicInfo topic = 43;
+
+ // User Interest.
+ google.ads.googleads.v1.common.UserInterestInfo user_interest = 45;
+
+ // Webpage
+ google.ads.googleads.v1.common.WebpageInfo webpage = 46;
+
+ // App Payment Model.
+ google.ads.googleads.v1.common.AppPaymentModelInfo app_payment_model = 47;
+
+ // Custom Affinity.
+ google.ads.googleads.v1.common.CustomAffinityInfo custom_affinity = 48;
+
+ // Custom Intent.
+ google.ads.googleads.v1.common.CustomIntentInfo custom_intent = 49;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_criterion_label.proto b/google/ads/googleads/v1/resources/ad_group_criterion_label.proto
new file mode 100644
index 000000000..c2b27744e
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_criterion_label.proto
@@ -0,0 +1,47 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupCriterionLabelProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group criterion label resource.
+
+// A relationship between an ad group criterion and a label.
+message AdGroupCriterionLabel {
+ // The resource name of the ad group criterion label.
+ // Ad group criterion label resource names have the form:
+ //
+ // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`
+ string resource_name = 1;
+
+ // The ad group criterion to which the label is attached.
+ google.protobuf.StringValue ad_group_criterion = 2;
+
+ // The label assigned to the ad group criterion.
+ google.protobuf.StringValue label = 3;
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_extension_setting.proto b/google/ads/googleads/v1/resources/ad_group_extension_setting.proto
new file mode 100644
index 000000000..37910f840
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_extension_setting.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/extension_setting_device.proto";
+import "google/ads/googleads/v1/enums/extension_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupExtensionSettingProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the AdGroupExtensionSetting resource.
+
+// An ad group extension setting.
+message AdGroupExtensionSetting {
+ // The resource name of the ad group extension setting.
+ // AdGroupExtensionSetting resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}`
+ string resource_name = 1;
+
+ // The extension type of the ad group extension setting.
+ google.ads.googleads.v1.enums.ExtensionTypeEnum.ExtensionType extension_type = 2;
+
+ // The resource name of the ad group. The linked extension feed items will
+ // serve under this ad group.
+ // AdGroup resource names have the form:
+ //
+ // `customers/{customer_id}/adGroups/{ad_group_id}`
+ google.protobuf.StringValue ad_group = 3;
+
+ // The resource names of the extension feed items to serve under the ad group.
+ // ExtensionFeedItem resource names have the form:
+ //
+ // `customers/{customer_id}/extensionFeedItems/{feed_item_id}`
+ repeated google.protobuf.StringValue extension_feed_items = 4;
+
+ // The device for which the extensions will serve. Optional.
+ google.ads.googleads.v1.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5;
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_feed.proto b/google/ads/googleads/v1/resources/ad_group_feed.proto
new file mode 100644
index 000000000..96e46a836
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_feed.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/matching_function.proto";
+import "google/ads/googleads/v1/enums/feed_link_status.proto";
+import "google/ads/googleads/v1/enums/placeholder_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupFeedProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the AdGroupFeed resource.
+
+// An ad group feed.
+message AdGroupFeed {
+ // The resource name of the ad group feed.
+ // Ad group feed resource names have the form:
+ //
+ // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}
+ string resource_name = 1;
+
+ // The feed being linked to the ad group.
+ google.protobuf.StringValue feed = 2;
+
+ // The ad group being linked to the feed.
+ google.protobuf.StringValue ad_group = 3;
+
+ // Indicates which placeholder types the feed may populate under the connected
+ // ad group. Required.
+ repeated google.ads.googleads.v1.enums.PlaceholderTypeEnum.PlaceholderType placeholder_types = 4;
+
+ // Matching function associated with the AdGroupFeed.
+ // The matching function is used to filter the set of feed items selected.
+ // Required.
+ google.ads.googleads.v1.common.MatchingFunction matching_function = 5;
+
+ // Status of the ad group feed.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6;
+}
diff --git a/google/ads/googleads/v1/resources/ad_group_label.proto b/google/ads/googleads/v1/resources/ad_group_label.proto
new file mode 100644
index 000000000..44c76707b
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_group_label.proto
@@ -0,0 +1,46 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupLabelProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad group label resource.
+
+// A relationship between an ad group and a label.
+message AdGroupLabel {
+ // The resource name of the ad group label.
+ // Ad group label resource names have the form:
+ // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`
+ string resource_name = 1;
+
+ // The ad group to which the label is attached.
+ google.protobuf.StringValue ad_group = 2;
+
+ // The label assigned to the ad group.
+ google.protobuf.StringValue label = 3;
+}
diff --git a/google/ads/googleads/v1/resources/ad_parameter.proto b/google/ads/googleads/v1/resources/ad_parameter.proto
new file mode 100644
index 000000000..e97d24251
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_parameter.proto
@@ -0,0 +1,68 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdParameterProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad parameter resource.
+
+// An ad parameter that is used to update numeric values (such as prices or
+// inventory levels) in any text line of an ad (including URLs). There can
+// be a maximum of two AdParameters per ad group criterion. (One with
+// parameter_index = 1 and one with parameter_index = 2.)
+// In the ad the parameters are referenced by a placeholder of the form
+// "{param#:value}". E.g. "{param1:$17}"
+message AdParameter {
+ // The resource name of the ad parameter.
+ // Ad parameter resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`
+ string resource_name = 1;
+
+ // The ad group criterion that this ad parameter belongs to.
+ google.protobuf.StringValue ad_group_criterion = 2;
+
+ // The unique index of this ad parameter. Must be either 1 or 2.
+ google.protobuf.Int64Value parameter_index = 3;
+
+ // Numeric value to insert into the ad text. The following restrictions
+ // apply:
+ // - Can use comma or period as a separator, with an optional period or
+ // comma (respectively) for fractional values. For example, 1,000,000.00
+ // and 2.000.000,10 are valid.
+ // - Can be prepended or appended with a currency symbol. For example,
+ // $99.99 and 200£ are valid.
+ // - Can be prepended or appended with a currency code. For example, 99.99USD
+ // and EUR200 are valid.
+ // - Can use '%'. For example, 1.0% and 1,0% are valid.
+ // - Can use plus or minus. For example, -10.99 and 25+ are valid.
+ // - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are
+ // valid.
+ google.protobuf.StringValue insertion_text = 4;
+}
diff --git a/google/ads/googleads/v1/resources/ad_schedule_view.proto b/google/ads/googleads/v1/resources/ad_schedule_view.proto
new file mode 100644
index 000000000..80fbeda47
--- /dev/null
+++ b/google/ads/googleads/v1/resources/ad_schedule_view.proto
@@ -0,0 +1,41 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AdScheduleViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ad schedule view resource.
+
+// An ad schedule view summarizes the performance of campaigns by
+// AdSchedule criteria.
+message AdScheduleView {
+ // The resource name of the ad schedule view.
+ // AdSchedule view resource names have the form:
+ //
+ // `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/age_range_view.proto b/google/ads/googleads/v1/resources/age_range_view.proto
new file mode 100644
index 000000000..da1e80850
--- /dev/null
+++ b/google/ads/googleads/v1/resources/age_range_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AgeRangeViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the age range view resource.
+
+// An age range view.
+message AgeRangeView {
+ // The resource name of the age range view.
+ // Age range view resource names have the form:
+ //
+ // `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/asset.proto b/google/ads/googleads/v1/resources/asset.proto
new file mode 100644
index 000000000..3d37fd61c
--- /dev/null
+++ b/google/ads/googleads/v1/resources/asset.proto
@@ -0,0 +1,65 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/asset_types.proto";
+import "google/ads/googleads/v1/enums/asset_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "AssetProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the asset resource.
+
+// Asset is a part of an ad which can be shared across multiple ads.
+// It can be an image (ImageAsset), a video (YoutubeVideoAsset), etc.
+message Asset {
+ // The resource name of the asset.
+ // Asset resource names have the form:
+ //
+ // `customers/{customer_id}/assets/{asset_id}`
+ string resource_name = 1;
+
+ // The ID of the asset.
+ google.protobuf.Int64Value id = 2;
+
+ // Optional name of the asset.
+ google.protobuf.StringValue name = 3;
+
+ // Type of the asset.
+ google.ads.googleads.v1.enums.AssetTypeEnum.AssetType type = 4;
+
+ // The specific type of the asset.
+ oneof asset_data {
+ // A YouTube video asset.
+ google.ads.googleads.v1.common.YoutubeVideoAsset youtube_video_asset = 5;
+
+ // A media bundle asset.
+ google.ads.googleads.v1.common.MediaBundleAsset media_bundle_asset = 6;
+
+ // An image asset.
+ google.ads.googleads.v1.common.ImageAsset image_asset = 7;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/bidding_strategy.proto b/google/ads/googleads/v1/resources/bidding_strategy.proto
new file mode 100644
index 000000000..a39037ed0
--- /dev/null
+++ b/google/ads/googleads/v1/resources/bidding_strategy.proto
@@ -0,0 +1,109 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/bidding.proto";
+import "google/ads/googleads/v1/enums/bidding_strategy_status.proto";
+import "google/ads/googleads/v1/enums/bidding_strategy_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingStrategyProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the BiddingStrategy resource
+
+// A bidding strategy.
+message BiddingStrategy {
+ // The resource name of the bidding strategy.
+ // Bidding strategy resource names have the form:
+ //
+ // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`
+ string resource_name = 1;
+
+ // The ID of the bidding strategy.
+ google.protobuf.Int64Value id = 3;
+
+ // The name of the bidding strategy.
+ // All bidding strategies within an account must be named distinctly.
+ //
+ // The length of this string should be between 1 and 255, inclusive,
+ // in UTF-8 bytes, (trimmed).
+ google.protobuf.StringValue name = 4;
+
+ // The status of the bidding strategy.
+ //
+ // This field is read-only.
+ google.ads.googleads.v1.enums.BiddingStrategyStatusEnum.BiddingStrategyStatus status = 15;
+
+ // The type of the bidding strategy.
+ // Create a bidding strategy by setting the bidding scheme.
+ //
+ // This field is read-only.
+ google.ads.googleads.v1.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5;
+
+ // The number of campaigns attached to this bidding strategy.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value campaign_count = 13;
+
+ // The number of non-removed campaigns attached to this bidding strategy.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value non_removed_campaign_count = 14;
+
+ // The bidding scheme.
+ //
+ // Only one can be set.
+ oneof scheme {
+ // A bidding strategy that raises bids for clicks that seem more likely to
+ // lead to a conversion and lowers them for clicks where they seem less
+ // likely.
+ google.ads.googleads.v1.common.EnhancedCpc enhanced_cpc = 7;
+
+ // A bidding strategy that sets max CPC bids to target impressions on
+ // page one or page one promoted slots on google.com.
+ google.ads.googleads.v1.common.PageOnePromoted page_one_promoted = 8;
+
+ // A bidding strategy that sets bids to help get as many conversions as
+ // possible at the target cost-per-acquisition (CPA) you set.
+ google.ads.googleads.v1.common.TargetCpa target_cpa = 9;
+
+ // A bidding strategy that automatically optimizes towards a desired
+ // percentage of impressions.
+ google.ads.googleads.v1.common.TargetImpressionShare target_impression_share = 48;
+
+ // A bidding strategy that sets bids based on the target fraction of
+ // auctions where the advertiser should outrank a specific competitor.
+ google.ads.googleads.v1.common.TargetOutrankShare target_outrank_share = 10;
+
+ // A bidding strategy that helps you maximize revenue while averaging a
+ // specific target Return On Ad Spend (ROAS).
+ google.ads.googleads.v1.common.TargetRoas target_roas = 11;
+
+ // A bid strategy that sets your bids to help get as many clicks as
+ // possible within your budget.
+ google.ads.googleads.v1.common.TargetSpend target_spend = 12;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/billing_setup.proto b/google/ads/googleads/v1/resources/billing_setup.proto
new file mode 100644
index 000000000..c5f643def
--- /dev/null
+++ b/google/ads/googleads/v1/resources/billing_setup.proto
@@ -0,0 +1,124 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/billing_setup_status.proto";
+import "google/ads/googleads/v1/enums/time_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "BillingSetupProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the BillingSetup resource.
+
+// A billing setup across Ads and Payments systems; an association between a
+// Payments account and an advertiser. A billing setup is specific to one
+// advertiser.
+message BillingSetup {
+ // Container of Payments account information for this billing.
+ message PaymentsAccountInfo {
+ // A 16 digit id used to identify the Payments account associated with the
+ // billing setup.
+ //
+ // This must be passed as a string with dashes, e.g. "1234-5678-9012-3456".
+ google.protobuf.StringValue payments_account_id = 1;
+
+ // The name of the Payments account associated with the billing setup.
+ //
+ // This enables the user to specify a meaningful name for a Payments account
+ // to aid in reconciling monthly invoices.
+ //
+ // This name will be printed in the monthly invoices.
+ google.protobuf.StringValue payments_account_name = 2;
+
+ // A 12 digit id used to identify the Payments profile associated with the
+ // billing setup.
+ //
+ // This must be passed in as a string with dashes, e.g. "1234-5678-9012".
+ google.protobuf.StringValue payments_profile_id = 3;
+
+ // The name of the Payments profile associated with the billing setup.
+ google.protobuf.StringValue payments_profile_name = 4;
+
+ // A secondary payments profile id present in uncommon situations, e.g.
+ // when a sequential liability agreement has been arranged.
+ google.protobuf.StringValue secondary_payments_profile_id = 5;
+ }
+
+ // The resource name of the billing setup.
+ // BillingSetup resource names have the form:
+ //
+ // `customers/{customer_id}/billingSetups/{billing_setup_id}`
+ string resource_name = 1;
+
+ // The ID of the billing setup.
+ google.protobuf.Int64Value id = 2;
+
+ // The status of the billing setup.
+ google.ads.googleads.v1.enums.BillingSetupStatusEnum.BillingSetupStatus status = 3;
+
+ // The resource name of the Payments account associated with this billing
+ // setup. Payments resource names have the form:
+ //
+ // `customers/{customer_id}/paymentsAccounts/{payments_account_id}`
+ // When setting up billing, this is used to signup with an existing Payments
+ // account (and then payments_account_info should not be set).
+ // When getting a billing setup, this and payments_account_info will be
+ // populated.
+ google.protobuf.StringValue payments_account = 11;
+
+ // The Payments account information associated with this billing setup.
+ // When setting up billing, this is used to signup with a new Payments account
+ // (and then payments_account should not be set).
+ // When getting a billing setup, this and payments_account will be
+ // populated.
+ PaymentsAccountInfo payments_account_info = 12;
+
+ // When creating a new billing setup, this is when the setup should take
+ // effect. NOW is the only acceptable start time if the customer doesn't have
+ // any approved setups.
+ //
+ // When fetching an existing billing setup, this is the requested start time.
+ // However, if the setup was approved (see status) after the requested start
+ // time, then this is the approval time.
+ oneof start_time {
+ // The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a
+ // future time is allowed.
+ google.protobuf.StringValue start_date_time = 9;
+
+ // The start time as a type. Only NOW is allowed.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType start_time_type = 10;
+ }
+
+ // When the billing setup ends / ended. This is either FOREVER or the start
+ // time of the next scheduled billing setup.
+ oneof end_time {
+ // The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format.
+ google.protobuf.StringValue end_date_time = 13;
+
+ // The end time as a type. The only possible value is FOREVER.
+ google.ads.googleads.v1.enums.TimeTypeEnum.TimeType end_time_type = 14;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/campaign.proto b/google/ads/googleads/v1/resources/campaign.proto
new file mode 100644
index 000000000..d3e84f7bc
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign.proto
@@ -0,0 +1,347 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/bidding.proto";
+import "google/ads/googleads/v1/common/custom_parameter.proto";
+import "google/ads/googleads/v1/common/frequency_cap.proto";
+import "google/ads/googleads/v1/common/real_time_bidding_setting.proto";
+import "google/ads/googleads/v1/common/targeting_setting.proto";
+import "google/ads/googleads/v1/enums/ad_serving_optimization_status.proto";
+import "google/ads/googleads/v1/enums/advertising_channel_sub_type.proto";
+import "google/ads/googleads/v1/enums/advertising_channel_type.proto";
+import "google/ads/googleads/v1/enums/app_campaign_app_store.proto";
+import "google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto";
+import "google/ads/googleads/v1/enums/bidding_strategy_type.proto";
+import "google/ads/googleads/v1/enums/brand_safety_suitability.proto";
+import "google/ads/googleads/v1/enums/campaign_serving_status.proto";
+import "google/ads/googleads/v1/enums/campaign_status.proto";
+import "google/ads/googleads/v1/enums/negative_geo_target_type.proto";
+import "google/ads/googleads/v1/enums/payment_mode.proto";
+import "google/ads/googleads/v1/enums/positive_geo_target_type.proto";
+import "google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto";
+import "google/ads/googleads/v1/enums/vanity_pharma_text.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Campaign resource.
+
+// A campaign.
+message Campaign {
+ // The network settings for the campaign.
+ message NetworkSettings {
+ // Whether ads will be served with google.com search results.
+ google.protobuf.BoolValue target_google_search = 1;
+
+ // Whether ads will be served on partner sites in the Google Search Network
+ // (requires `target_google_search` to also be `true`).
+ google.protobuf.BoolValue target_search_network = 2;
+
+ // Whether ads will be served on specified placements in the Google Display
+ // Network. Placements are specified using the Placement criterion.
+ google.protobuf.BoolValue target_content_network = 3;
+
+ // Whether ads will be served on the Google Partner Network.
+ // This is available only to some select Google partner accounts.
+ google.protobuf.BoolValue target_partner_search_network = 4;
+ }
+
+ // Campaign-level settings for hotel ads.
+ message HotelSettingInfo {
+ // The linked Hotel Center account.
+ google.protobuf.Int64Value hotel_center_id = 1;
+ }
+
+ // The setting for Shopping campaigns. Defines the universe of products that
+ // can be advertised by the campaign, and how this campaign interacts with
+ // other Shopping campaigns.
+ message ShoppingSetting {
+ // ID of the Merchant Center account.
+ // This field is required for create operations. This field is immutable for
+ // Shopping campaigns.
+ google.protobuf.Int64Value merchant_id = 1;
+
+ // Sales country of products to include in the campaign.
+ // This field is required for Shopping campaigns. This field is immutable.
+ // This field is optional for non-Shopping campaigns, but it must be equal
+ // to 'ZZ' if set.
+ google.protobuf.StringValue sales_country = 2;
+
+ // Priority of the campaign. Campaigns with numerically higher priorities
+ // take precedence over those with lower priorities.
+ // This field is required for Shopping campaigns, with values between 0 and
+ // 2, inclusive.
+ // This field is optional for Smart Shopping campaigns, but must be equal to
+ // 3 if set.
+ google.protobuf.Int32Value campaign_priority = 3;
+
+ // Whether to include local products.
+ google.protobuf.BoolValue enable_local = 4;
+ }
+
+ // Represents a collection of settings related to ads geotargeting.
+ message GeoTargetTypeSetting {
+ // The setting used for positive geotargeting in this particular campaign.
+ google.ads.googleads.v1.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType positive_geo_target_type = 1;
+
+ // The setting used for negative geotargeting in this particular campaign.
+ google.ads.googleads.v1.enums.NegativeGeoTargetTypeEnum.NegativeGeoTargetType negative_geo_target_type = 2;
+ }
+
+ // Describes how unbranded pharma ads will be displayed.
+ message VanityPharma {
+ // The display mode for vanity pharma URLs.
+ google.ads.googleads.v1.enums.VanityPharmaDisplayUrlModeEnum.VanityPharmaDisplayUrlMode vanity_pharma_display_url_mode = 1;
+
+ // The text that will be displayed in display URL of the text ad when
+ // website description is the selected display mode for vanity pharma URLs.
+ google.ads.googleads.v1.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2;
+ }
+
+ // The setting for controlling Dynamic Search Ads (DSA).
+ message DynamicSearchAdsSetting {
+ // The Internet domain name that this setting represents, e.g., "google.com"
+ // or "www.google.com".
+ google.protobuf.StringValue domain_name = 1;
+
+ // The language code specifying the language of the domain, e.g., "en".
+ google.protobuf.StringValue language_code = 2;
+
+ // Whether the campaign uses advertiser supplied URLs exclusively.
+ google.protobuf.BoolValue use_supplied_urls_only = 3;
+
+ // The list of page feeds associated with the campaign.
+ repeated google.protobuf.StringValue feeds = 5;
+ }
+
+ // Campaign level settings for tracking information.
+ message TrackingSetting {
+ // The url used for dynamic tracking.
+ google.protobuf.StringValue tracking_url = 1;
+ }
+
+ // Campaign level settings for App Campaigns.
+ message AppCampaignSetting {
+ // Represents the goal which the bidding strategy of this app campaign
+ // should optimize towards.
+ google.ads.googleads.v1.enums.AppCampaignBiddingStrategyGoalTypeEnum.AppCampaignBiddingStrategyGoalType bidding_strategy_goal_type = 1;
+
+ // A string that uniquely identifies a mobile application.
+ google.protobuf.StringValue app_id = 2;
+
+ // The application store that distributes this specific app.
+ google.ads.googleads.v1.enums.AppCampaignAppStoreEnum.AppCampaignAppStore app_store = 3;
+ }
+
+ // Selective optimization setting for this campaign, which includes a set of
+ // conversion actions to optimize this campaign towards.
+ message SelectiveOptimization {
+ // The selected set of conversion actions for optimizing this campaign.
+ repeated google.protobuf.StringValue conversion_actions = 1;
+ }
+
+ // The resource name of the campaign.
+ // Campaign resource names have the form:
+ //
+ // `customers/{customer_id}/campaigns/{campaign_id}`
+ string resource_name = 1;
+
+ // The ID of the campaign.
+ google.protobuf.Int64Value id = 3;
+
+ // The name of the campaign.
+ //
+ // This field is required and should not be empty when creating new
+ // campaigns.
+ //
+ // It must not contain any null (code point 0x0), NL line feed
+ // (code point 0xA) or carriage return (code point 0xD) characters.
+ google.protobuf.StringValue name = 4;
+
+ // The status of the campaign.
+ //
+ // When a new campaign is added, the status defaults to ENABLED.
+ google.ads.googleads.v1.enums.CampaignStatusEnum.CampaignStatus status = 5;
+
+ // The ad serving status of the campaign.
+ google.ads.googleads.v1.enums.CampaignServingStatusEnum.CampaignServingStatus serving_status = 21;
+
+ // The ad serving optimization status of the campaign.
+ google.ads.googleads.v1.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus ad_serving_optimization_status = 8;
+
+ // The primary serving target for ads within the campaign.
+ // The targeting options can be refined in `network_settings`.
+ //
+ // This field is required and should not be empty when creating new
+ // campaigns.
+ //
+ // Can be set only when creating campaigns.
+ // After the campaign is created, the field can not be changed.
+ google.ads.googleads.v1.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 9;
+
+ // Optional refinement to `advertising_channel_type`.
+ // Must be a valid sub-type of the parent channel type.
+ //
+ // Can be set only when creating campaigns.
+ // After campaign is created, the field can not be changed.
+ google.ads.googleads.v1.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 10;
+
+ // The URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 11;
+
+ // The list of mappings used to substitute custom parameter tags in a
+ // `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
+ repeated google.ads.googleads.v1.common.CustomParameter url_custom_parameters = 12;
+
+ // Settings for Real-Time Bidding, a feature only available for campaigns
+ // targeting the Ad Exchange network.
+ google.ads.googleads.v1.common.RealTimeBiddingSetting real_time_bidding_setting = 39;
+
+ // The network settings for the campaign.
+ NetworkSettings network_settings = 14;
+
+ // The hotel setting for the campaign.
+ HotelSettingInfo hotel_setting = 32;
+
+ // The setting for controlling Dynamic Search Ads (DSA).
+ DynamicSearchAdsSetting dynamic_search_ads_setting = 33;
+
+ // The setting for controlling Shopping campaigns.
+ ShoppingSetting shopping_setting = 36;
+
+ // Setting for targeting related features.
+ google.ads.googleads.v1.common.TargetingSetting targeting_setting = 43;
+
+ // The setting for ads geotargeting.
+ GeoTargetTypeSetting geo_target_type_setting = 47;
+
+ // The setting related to App Campaign.
+ AppCampaignSetting app_campaign_setting = 51;
+
+ // The budget of the campaign.
+ google.protobuf.StringValue campaign_budget = 6;
+
+ // The type of bidding strategy.
+ //
+ // A bidding strategy can be created by setting either the bidding scheme to
+ // create a standard bidding strategy or the `bidding_strategy` field to
+ // create a portfolio bidding strategy.
+ //
+ // This field is read-only.
+ google.ads.googleads.v1.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 22;
+
+ // The date when campaign started.
+ //
+ // This field must not be used in WHERE clauses.
+ google.protobuf.StringValue start_date = 19;
+
+ // The date when campaign ended.
+ //
+ // This field must not be used in WHERE clauses.
+ google.protobuf.StringValue end_date = 20;
+
+ // Suffix used to append query parameters to landing pages that are served
+ // with parallel tracking.
+ google.protobuf.StringValue final_url_suffix = 38;
+
+ // A list that limits how often each user will see this campaign's ads.
+ repeated google.ads.googleads.v1.common.FrequencyCapEntry frequency_caps = 40;
+
+ // 3-Tier Brand Safety setting for the campaign.
+ google.ads.googleads.v1.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability video_brand_safety_suitability = 42;
+
+ // Describes how unbranded pharma ads will be displayed.
+ VanityPharma vanity_pharma = 44;
+
+ // Selective optimization setting for this campaign, which includes a set of
+ // conversion actions to optimize this campaign towards.
+ SelectiveOptimization selective_optimization = 45;
+
+ // Campaign level settings for tracking information.
+ TrackingSetting tracking_setting = 46;
+
+ // Payment mode for the campaign.
+ google.ads.googleads.v1.enums.PaymentModeEnum.PaymentMode payment_mode = 52;
+
+ // The bidding strategy for the campaign.
+ //
+ // Must be either portfolio (created via BiddingStrategy service) or
+ // standard, that is embedded into the campaign.
+ oneof campaign_bidding_strategy {
+ // Portfolio bidding strategy used by campaign.
+ google.protobuf.StringValue bidding_strategy = 23;
+
+ // Commission is an automatic bidding strategy in which the advertiser pays
+ // a certain portion of the conversion value.
+ google.ads.googleads.v1.common.Commission commission = 49;
+
+ // Standard Manual CPC bidding strategy.
+ // Manual click-based bidding where user pays per click.
+ google.ads.googleads.v1.common.ManualCpc manual_cpc = 24;
+
+ // Standard Manual CPM bidding strategy.
+ // Manual impression-based bidding where user pays per thousand
+ // impressions.
+ google.ads.googleads.v1.common.ManualCpm manual_cpm = 25;
+
+ // A bidding strategy that pays a configurable amount per video view.
+ google.ads.googleads.v1.common.ManualCpv manual_cpv = 37;
+
+ // Standard Maximize Conversions bidding strategy that automatically
+ // maximizes number of conversions given a daily budget.
+ google.ads.googleads.v1.common.MaximizeConversions maximize_conversions = 30;
+
+ // Standard Maximize Conversion Value bidding strategy that automatically
+ // sets bids to maximize revenue while spending your budget.
+ google.ads.googleads.v1.common.MaximizeConversionValue maximize_conversion_value = 31;
+
+ // Standard Target CPA bidding strategy that automatically sets bids to
+ // help get as many conversions as possible at the target
+ // cost-per-acquisition (CPA) you set.
+ google.ads.googleads.v1.common.TargetCpa target_cpa = 26;
+
+ // Target Impression Share bidding strategy. An automated bidding strategy
+ // that sets bids to achieve a desired percentage of impressions.
+ google.ads.googleads.v1.common.TargetImpressionShare target_impression_share = 48;
+
+ // Standard Target ROAS bidding strategy that automatically maximizes
+ // revenue while averaging a specific target return on ad spend (ROAS).
+ google.ads.googleads.v1.common.TargetRoas target_roas = 29;
+
+ // Standard Target Spend bidding strategy that automatically sets your bids
+ // to help get as many clicks as possible within your budget.
+ google.ads.googleads.v1.common.TargetSpend target_spend = 27;
+
+ // Standard Percent Cpc bidding strategy where bids are a fraction of the
+ // advertised price for some good or service.
+ google.ads.googleads.v1.common.PercentCpc percent_cpc = 34;
+
+ // A bidding strategy that automatically optimizes cost per thousand
+ // impressions.
+ google.ads.googleads.v1.common.TargetCpm target_cpm = 41;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/campaign_audience_view.proto b/google/ads/googleads/v1/resources/campaign_audience_view.proto
new file mode 100644
index 000000000..431db796f
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_audience_view.proto
@@ -0,0 +1,45 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignAudienceViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the campaign audience view resource.
+
+// A campaign audience view.
+// Includes performance data from interests and remarketing lists for Display
+// Network and YouTube Network ads, and remarketing lists for search ads (RLSA),
+// aggregated by campaign and audience criterion. This view only includes
+// audiences attached at the campaign level.
+message CampaignAudienceView {
+ // The resource name of the campaign audience view.
+ // Campaign audience view resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/campaign_bid_modifier.proto b/google/ads/googleads/v1/resources/campaign_bid_modifier.proto
new file mode 100644
index 000000000..b4281f4eb
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_bid_modifier.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignBidModifierProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Campaign Bid Modifier resource.
+
+// Represents a bid-modifiable only criterion at the campaign level.
+message CampaignBidModifier {
+ // The resource name of the campaign bid modifier.
+ // Campaign bid modifier resource names have the form:
+ //
+ // `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}`
+ string resource_name = 1;
+
+ // The campaign to which this criterion belongs.
+ google.protobuf.StringValue campaign = 2;
+
+ // The ID of the criterion to bid modify.
+ //
+ // This field is ignored for mutates.
+ google.protobuf.Int64Value criterion_id = 3;
+
+ // The modifier for the bid when the criterion matches.
+ google.protobuf.DoubleValue bid_modifier = 4;
+
+ // The criterion of this campaign bid modifier.
+ oneof criterion {
+ // Criterion for interaction type. Only supported for search campaigns.
+ google.ads.googleads.v1.common.InteractionTypeInfo interaction_type = 5;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/campaign_budget.proto b/google/ads/googleads/v1/resources/campaign_budget.proto
new file mode 100644
index 000000000..6500577c7
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_budget.proto
@@ -0,0 +1,146 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/budget_delivery_method.proto";
+import "google/ads/googleads/v1/enums/budget_period.proto";
+import "google/ads/googleads/v1/enums/budget_status.proto";
+import "google/ads/googleads/v1/enums/budget_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignBudgetProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Budget resource.
+
+// A campaign budget.
+message CampaignBudget {
+ // The resource name of the campaign budget.
+ // Campaign budget resource names have the form:
+ //
+ // `customers/{customer_id}/campaignBudgets/{budget_id}`
+ string resource_name = 1;
+
+ // The ID of the campaign budget.
+ //
+ // A campaign budget is created using the CampaignBudgetService create
+ // operation and is assigned a budget ID. A budget ID can be shared across
+ // different campaigns; the system will then allocate the campaign budget
+ // among different campaigns to get optimum results.
+ google.protobuf.Int64Value id = 3;
+
+ // The name of the campaign budget.
+ //
+ // When creating a campaign budget through CampaignBudgetService, every
+ // explicitly shared campaign budget must have a non-null, non-empty name.
+ // Campaign budgets that are not explicitly shared derive their name from the
+ // attached campaign's name.
+ //
+ // The length of this string must be between 1 and 255, inclusive,
+ // in UTF-8 bytes, (trimmed).
+ google.protobuf.StringValue name = 4;
+
+ // The amount of the budget, in the local currency for the account.
+ // Amount is specified in micros, where one million is equivalent to one
+ // currency unit.
+ google.protobuf.Int64Value amount_micros = 5;
+
+ // The lifetime amount of the budget, in the local currency for the account.
+ // Amount is specified in micros, where one million is equivalent to one
+ // currency unit.
+ google.protobuf.Int64Value total_amount_micros = 10;
+
+ // The status of this campaign budget. This field is read-only.
+ google.ads.googleads.v1.enums.BudgetStatusEnum.BudgetStatus status = 6;
+
+ // The delivery method that determines the rate at which the campaign budget
+ // is spent.
+ //
+ // Defaults to STANDARD if unspecified in a create operation.
+ google.ads.googleads.v1.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod delivery_method = 7;
+
+ // Specifies whether the budget is explicitly shared. Defaults to true if
+ // unspecified in a create operation.
+ //
+ // If true, the budget was created with the purpose of sharing
+ // across one or more campaigns.
+ //
+ // If false, the budget was created with the intention of only being used
+ // with a single campaign. The budget's name and status will stay in sync
+ // with the campaign's name and status. Attempting to share the budget with a
+ // second campaign will result in an error.
+ //
+ // A non-shared budget can become an explicitly shared. The same operation
+ // must also assign the budget a name.
+ //
+ // A shared campaign budget can never become non-shared.
+ google.protobuf.BoolValue explicitly_shared = 8;
+
+ // The number of campaigns actively using the budget.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value reference_count = 9;
+
+ // Indicates whether there is a recommended budget for this campaign budget.
+ //
+ // This field is read-only.
+ google.protobuf.BoolValue has_recommended_budget = 11;
+
+ // The recommended budget amount. If no recommendation is available, this will
+ // be set to the budget amount.
+ // Amount is specified in micros, where one million is equivalent to one
+ // currency unit.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value recommended_budget_amount_micros = 12;
+
+ // Period over which to spend the budget. Defaults to DAILY if not specified.
+ google.ads.googleads.v1.enums.BudgetPeriodEnum.BudgetPeriod period = 13;
+
+ // The estimated change in weekly clicks if the recommended budget is applied.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value recommended_budget_estimated_change_weekly_clicks = 14;
+
+ // The estimated change in weekly cost in micros if the recommended budget is
+ // applied. One million is equivalent to one currency unit.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value recommended_budget_estimated_change_weekly_cost_micros = 15;
+
+ // The estimated change in weekly interactions if the recommended budget is
+ // applied.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value recommended_budget_estimated_change_weekly_interactions = 16;
+
+ // The estimated change in weekly views if the recommended budget is applied.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value recommended_budget_estimated_change_weekly_views = 17;
+
+ // The type of the campaign budget.
+ google.ads.googleads.v1.enums.BudgetTypeEnum.BudgetType type = 18;
+}
diff --git a/google/ads/googleads/v1/resources/campaign_criterion.proto b/google/ads/googleads/v1/resources/campaign_criterion.proto
new file mode 100644
index 000000000..ffe5e1d2c
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_criterion.proto
@@ -0,0 +1,142 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/criterion_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignCriterionProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Campaign Criterion resource.
+
+// A campaign criterion.
+message CampaignCriterion {
+ // The resource name of the campaign criterion.
+ // Campaign criterion resource names have the form:
+ //
+ // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
+ string resource_name = 1;
+
+ // The campaign to which the criterion belongs.
+ google.protobuf.StringValue campaign = 4;
+
+ // The ID of the criterion.
+ //
+ // This field is ignored during mutate.
+ google.protobuf.Int64Value criterion_id = 5;
+
+ // The modifier for the bids when the criterion matches. The modifier must be
+ // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers.
+ // Use 0 to opt out of a Device type.
+ google.protobuf.FloatValue bid_modifier = 14;
+
+ // Whether to target (`false`) or exclude (`true`) the criterion.
+ google.protobuf.BoolValue negative = 7;
+
+ // The type of the criterion.
+ google.ads.googleads.v1.enums.CriterionTypeEnum.CriterionType type = 6;
+
+ // The campaign criterion.
+ //
+ // Exactly one must be set.
+ oneof criterion {
+ // Keyword.
+ google.ads.googleads.v1.common.KeywordInfo keyword = 8;
+
+ // Placement.
+ google.ads.googleads.v1.common.PlacementInfo placement = 9;
+
+ // Mobile app category.
+ google.ads.googleads.v1.common.MobileAppCategoryInfo mobile_app_category = 10;
+
+ // Mobile application.
+ google.ads.googleads.v1.common.MobileApplicationInfo mobile_application = 11;
+
+ // Location.
+ google.ads.googleads.v1.common.LocationInfo location = 12;
+
+ // Device.
+ google.ads.googleads.v1.common.DeviceInfo device = 13;
+
+ // Ad Schedule.
+ google.ads.googleads.v1.common.AdScheduleInfo ad_schedule = 15;
+
+ // Age range.
+ google.ads.googleads.v1.common.AgeRangeInfo age_range = 16;
+
+ // Gender.
+ google.ads.googleads.v1.common.GenderInfo gender = 17;
+
+ // Income range.
+ google.ads.googleads.v1.common.IncomeRangeInfo income_range = 18;
+
+ // Parental status.
+ google.ads.googleads.v1.common.ParentalStatusInfo parental_status = 19;
+
+ // User List.
+ google.ads.googleads.v1.common.UserListInfo user_list = 22;
+
+ // YouTube Video.
+ google.ads.googleads.v1.common.YouTubeVideoInfo youtube_video = 20;
+
+ // YouTube Channel.
+ google.ads.googleads.v1.common.YouTubeChannelInfo youtube_channel = 21;
+
+ // Proximity.
+ google.ads.googleads.v1.common.ProximityInfo proximity = 23;
+
+ // Topic.
+ google.ads.googleads.v1.common.TopicInfo topic = 24;
+
+ // Listing scope.
+ google.ads.googleads.v1.common.ListingScopeInfo listing_scope = 25;
+
+ // Language.
+ google.ads.googleads.v1.common.LanguageInfo language = 26;
+
+ // IpBlock.
+ google.ads.googleads.v1.common.IpBlockInfo ip_block = 27;
+
+ // ContentLabel.
+ google.ads.googleads.v1.common.ContentLabelInfo content_label = 28;
+
+ // Carrier.
+ google.ads.googleads.v1.common.CarrierInfo carrier = 29;
+
+ // User Interest.
+ google.ads.googleads.v1.common.UserInterestInfo user_interest = 30;
+
+ // Webpage.
+ google.ads.googleads.v1.common.WebpageInfo webpage = 31;
+
+ // Operating system version.
+ google.ads.googleads.v1.common.OperatingSystemVersionInfo operating_system_version = 32;
+
+ // Mobile Device.
+ google.ads.googleads.v1.common.MobileDeviceInfo mobile_device = 33;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/campaign_extension_setting.proto b/google/ads/googleads/v1/resources/campaign_extension_setting.proto
new file mode 100644
index 000000000..1af67adf7
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_extension_setting.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/extension_setting_device.proto";
+import "google/ads/googleads/v1/enums/extension_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignExtensionSettingProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CampaignExtensionSetting resource.
+
+// A campaign extension setting.
+message CampaignExtensionSetting {
+ // The resource name of the campaign extension setting.
+ // CampaignExtensionSetting resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}`
+ string resource_name = 1;
+
+ // The extension type of the customer extension setting.
+ google.ads.googleads.v1.enums.ExtensionTypeEnum.ExtensionType extension_type = 2;
+
+ // The resource name of the campaign. The linked extension feed items will
+ // serve under this campaign.
+ // Campaign resource names have the form:
+ //
+ // `customers/{customer_id}/campaigns/{campaign_id}`
+ google.protobuf.StringValue campaign = 3;
+
+ // The resource names of the extension feed items to serve under the campaign.
+ // ExtensionFeedItem resource names have the form:
+ //
+ // `customers/{customer_id}/extensionFeedItems/{feed_item_id}`
+ repeated google.protobuf.StringValue extension_feed_items = 4;
+
+ // The device for which the extensions will serve. Optional.
+ google.ads.googleads.v1.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 5;
+}
diff --git a/google/ads/googleads/v1/resources/campaign_feed.proto b/google/ads/googleads/v1/resources/campaign_feed.proto
new file mode 100644
index 000000000..a7a904ea7
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_feed.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/matching_function.proto";
+import "google/ads/googleads/v1/enums/feed_link_status.proto";
+import "google/ads/googleads/v1/enums/placeholder_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignFeedProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CampaignFeed resource.
+
+// A campaign feed.
+message CampaignFeed {
+ // The resource name of the campaign feed.
+ // Campaign feed resource names have the form:
+ //
+ // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}
+ string resource_name = 1;
+
+ // The feed to which the CampaignFeed belongs.
+ google.protobuf.StringValue feed = 2;
+
+ // The campaign to which the CampaignFeed belongs.
+ google.protobuf.StringValue campaign = 3;
+
+ // Indicates which placeholder types the feed may populate under the connected
+ // campaign. Required.
+ repeated google.ads.googleads.v1.enums.PlaceholderTypeEnum.PlaceholderType placeholder_types = 4;
+
+ // Matching function associated with the CampaignFeed.
+ // The matching function is used to filter the set of feed items selected.
+ // Required.
+ google.ads.googleads.v1.common.MatchingFunction matching_function = 5;
+
+ // Status of the campaign feed.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6;
+}
diff --git a/google/ads/googleads/v1/resources/campaign_label.proto b/google/ads/googleads/v1/resources/campaign_label.proto
new file mode 100644
index 000000000..52c493738
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_label.proto
@@ -0,0 +1,46 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignLabelProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the campaign label resource.
+
+// Represents a relationship between a campaign and a label.
+message CampaignLabel {
+ // Name of the resource.
+ // Campaign label resource names have the form:
+ // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`
+ string resource_name = 1;
+
+ // The campaign to which the label is attached.
+ google.protobuf.StringValue campaign = 2;
+
+ // The label assigned to the campaign.
+ google.protobuf.StringValue label = 3;
+}
diff --git a/google/ads/googleads/v1/resources/campaign_shared_set.proto b/google/ads/googleads/v1/resources/campaign_shared_set.proto
new file mode 100644
index 000000000..5c87b3e85
--- /dev/null
+++ b/google/ads/googleads/v1/resources/campaign_shared_set.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/campaign_shared_set_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignSharedSetProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CampaignSharedSet resource.
+
+// CampaignSharedSets are used for managing the shared sets associated with a
+// campaign.
+message CampaignSharedSet {
+ // The resource name of the campaign shared set.
+ // Campaign shared set resource names have the form:
+ //
+ // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`
+ string resource_name = 1;
+
+ // The campaign to which the campaign shared set belongs.
+ google.protobuf.StringValue campaign = 3;
+
+ // The shared set associated with the campaign. This may be a negative keyword
+ // shared set of another customer. This customer should be a manager of the
+ // other customer, otherwise the campaign shared set will exist but have no
+ // serving effect. Only negative keyword shared sets can be associated with
+ // Shopping campaigns. Only negative placement shared sets can be associated
+ // with Display mobile app campaigns.
+ google.protobuf.StringValue shared_set = 4;
+
+ // The status of this campaign shared set. Read only.
+ google.ads.googleads.v1.enums.CampaignSharedSetStatusEnum.CampaignSharedSetStatus status = 2;
+}
diff --git a/google/ads/googleads/v1/resources/carrier_constant.proto b/google/ads/googleads/v1/resources/carrier_constant.proto
new file mode 100644
index 000000000..044f40bed
--- /dev/null
+++ b/google/ads/googleads/v1/resources/carrier_constant.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CarrierConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Carrier constant resource.
+
+// A carrier criterion that can be used in campaign targeting.
+message CarrierConstant {
+ // The resource name of the carrier criterion.
+ // Carrier criterion resource names have the form:
+ //
+ // `carrierConstants/{criterion_id}`
+ string resource_name = 1;
+
+ // The ID of the carrier criterion.
+ google.protobuf.Int64Value id = 2;
+
+ // The full name of the carrier in English.
+ google.protobuf.StringValue name = 3;
+
+ // The country code of the country where the carrier is located, e.g., "AR",
+ // "FR", etc.
+ google.protobuf.StringValue country_code = 4;
+}
diff --git a/google/ads/googleads/v1/resources/change_status.proto b/google/ads/googleads/v1/resources/change_status.proto
new file mode 100644
index 000000000..2d6bc7915
--- /dev/null
+++ b/google/ads/googleads/v1/resources/change_status.proto
@@ -0,0 +1,84 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/change_status_operation.proto";
+import "google/ads/googleads/v1/enums/change_status_resource_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ChangeStatusProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Change Status resource.
+
+// Describes the status of returned resource.
+message ChangeStatus {
+ // The resource name of the change status.
+ // Change status resource names have the form:
+ //
+ // `customers/{customer_id}/changeStatus/{change_status_id}`
+ string resource_name = 1;
+
+ // Time at which the most recent change has occurred on this resource.
+ google.protobuf.StringValue last_change_date_time = 3;
+
+ // Represents the type of the changed resource. This dictates what fields
+ // will be set. For example, for AD_GROUP, campaign and ad_group fields will
+ // be set.
+ google.ads.googleads.v1.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceType resource_type = 4;
+
+ // The Campaign affected by this change.
+ google.protobuf.StringValue campaign = 5;
+
+ // The AdGroup affected by this change.
+ google.protobuf.StringValue ad_group = 6;
+
+ // Represents the status of the changed resource.
+ google.ads.googleads.v1.enums.ChangeStatusOperationEnum.ChangeStatusOperation resource_status = 8;
+
+ // The AdGroupAd affected by this change.
+ google.protobuf.StringValue ad_group_ad = 9;
+
+ // The AdGroupCriterion affected by this change.
+ google.protobuf.StringValue ad_group_criterion = 10;
+
+ // The CampaignCriterion affected by this change.
+ google.protobuf.StringValue campaign_criterion = 11;
+
+ // The Feed affected by this change.
+ google.protobuf.StringValue feed = 12;
+
+ // The FeedItem affected by this change.
+ google.protobuf.StringValue feed_item = 13;
+
+ // The AdGroupFeed affected by this change.
+ google.protobuf.StringValue ad_group_feed = 14;
+
+ // The CampaignFeed affected by this change.
+ google.protobuf.StringValue campaign_feed = 15;
+
+ // The AdGroupBidModifier affected by this change.
+ google.protobuf.StringValue ad_group_bid_modifier = 16;
+}
diff --git a/google/ads/googleads/v1/resources/click_view.proto b/google/ads/googleads/v1/resources/click_view.proto
new file mode 100644
index 000000000..49572d34c
--- /dev/null
+++ b/google/ads/googleads/v1/resources/click_view.proto
@@ -0,0 +1,58 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/click_location.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ClickViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ClickView resource.
+
+// A click view with metrics aggregated at each click level, including both
+// valid and invalid clicks. For non-Search campaigns, metrics.clicks
+// represents the number of valid and invalid interactions.
+message ClickView {
+ // The resource name of the click view.
+ // Click view resource names have the form:
+ //
+ // `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}`
+ string resource_name = 1;
+
+ // The Google Click ID.
+ google.protobuf.StringValue gclid = 2;
+
+ // The location criteria matching the area of interest associated with the
+ // impression.
+ google.ads.googleads.v1.common.ClickLocation area_of_interest = 3;
+
+ // The location criteria matching the location of presence associated with the
+ // impression.
+ google.ads.googleads.v1.common.ClickLocation location_of_presence = 4;
+
+ // Page number in search results where the ad was shown.
+ google.protobuf.Int64Value page_number = 5;
+}
diff --git a/google/ads/googleads/v1/resources/conversion_action.proto b/google/ads/googleads/v1/resources/conversion_action.proto
new file mode 100644
index 000000000..1fa8c3b2b
--- /dev/null
+++ b/google/ads/googleads/v1/resources/conversion_action.proto
@@ -0,0 +1,133 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/tag_snippet.proto";
+import "google/ads/googleads/v1/enums/attribution_model.proto";
+import "google/ads/googleads/v1/enums/conversion_action_category.proto";
+import "google/ads/googleads/v1/enums/conversion_action_counting_type.proto";
+import "google/ads/googleads/v1/enums/conversion_action_status.proto";
+import "google/ads/googleads/v1/enums/conversion_action_type.proto";
+import "google/ads/googleads/v1/enums/data_driven_model_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionActionProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Conversion Action resource.
+
+// A conversion action.
+message ConversionAction {
+ // Settings related to this conversion action's attribution model.
+ message AttributionModelSettings {
+ // The attribution model type of this conversion action.
+ google.ads.googleads.v1.enums.AttributionModelEnum.AttributionModel attribution_model = 1;
+
+ // The status of the data-driven attribution model for the conversion
+ // action.
+ google.ads.googleads.v1.enums.DataDrivenModelStatusEnum.DataDrivenModelStatus data_driven_model_status = 2;
+ }
+
+ // Settings related to the value for conversion events associated with this
+ // conversion action.
+ message ValueSettings {
+ // The value to use when conversion events for this conversion action are
+ // sent with an invalid, disallowed or missing value, or when
+ // this conversion action is configured to always use the default value.
+ google.protobuf.DoubleValue default_value = 1;
+
+ // The currency code to use when conversion events for this conversion
+ // action are sent with an invalid or missing currency code, or when this
+ // conversion action is configured to always use the default value.
+ google.protobuf.StringValue default_currency_code = 2;
+
+ // Controls whether the default value and default currency code are used in
+ // place of the value and currency code specified in conversion events for
+ // this conversion action.
+ google.protobuf.BoolValue always_use_default_value = 3;
+ }
+
+ // The resource name of the conversion action.
+ // Conversion action resource names have the form:
+ //
+ // `customers/{customer_id}/conversionActions/{conversion_action_id}`
+ string resource_name = 1;
+
+ // The ID of the conversion action.
+ google.protobuf.Int64Value id = 2;
+
+ // The name of the conversion action.
+ //
+ // This field is required and should not be empty when creating new
+ // conversion actions.
+ google.protobuf.StringValue name = 3;
+
+ // The status of this conversion action for conversion event accrual.
+ google.ads.googleads.v1.enums.ConversionActionStatusEnum.ConversionActionStatus status = 4;
+
+ // The type of this conversion action.
+ google.ads.googleads.v1.enums.ConversionActionTypeEnum.ConversionActionType type = 5;
+
+ // The category of conversions reported for this conversion action.
+ google.ads.googleads.v1.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 6;
+
+ // The resource name of the conversion action owner customer, or null if this
+ // is a system-defined conversion action.
+ google.protobuf.StringValue owner_customer = 7;
+
+ // Whether this conversion action should be included in the "conversions"
+ // metric.
+ google.protobuf.BoolValue include_in_conversions_metric = 8;
+
+ // The maximum number of days that may elapse between an interaction
+ // (e.g., a click) and a conversion event.
+ google.protobuf.Int64Value click_through_lookback_window_days = 9;
+
+ // The maximum number of days which may elapse between an impression and a
+ // conversion without an interaction.
+ google.protobuf.Int64Value view_through_lookback_window_days = 10;
+
+ // Settings related to the value for conversion events associated with this
+ // conversion action.
+ ValueSettings value_settings = 11;
+
+ // How to count conversion events for the conversion action.
+ google.ads.googleads.v1.enums.ConversionActionCountingTypeEnum.ConversionActionCountingType counting_type = 12;
+
+ // Settings related to this conversion action's attribution model.
+ AttributionModelSettings attribution_model_settings = 13;
+
+ // The snippets used for tracking conversions.
+ repeated google.ads.googleads.v1.common.TagSnippet tag_snippets = 14;
+
+ // The phone call duration in seconds after which a conversion should be
+ // reported for this conversion action.
+ //
+ // The value must be between 0 and 10000, inclusive.
+ google.protobuf.Int64Value phone_call_duration_seconds = 15;
+
+ // App ID for an app conversion action.
+ google.protobuf.StringValue app_id = 16;
+}
diff --git a/google/ads/googleads/v1/resources/custom_interest.proto b/google/ads/googleads/v1/resources/custom_interest.proto
new file mode 100644
index 000000000..98a804fd6
--- /dev/null
+++ b/google/ads/googleads/v1/resources/custom_interest.proto
@@ -0,0 +1,79 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/custom_interest_member_type.proto";
+import "google/ads/googleads/v1/enums/custom_interest_status.proto";
+import "google/ads/googleads/v1/enums/custom_interest_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomInterestProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Custom Interest resource.
+
+// A custom interest. This is a list of users by interest.
+message CustomInterest {
+ // The resource name of the custom interest.
+ // Custom interest resource names have the form:
+ //
+ // `customers/{customer_id}/customInterests/{custom_interest_id}`
+ string resource_name = 1;
+
+ // Id of the custom interest.
+ google.protobuf.Int64Value id = 2;
+
+ // Status of this custom interest. Indicates whether the custom interest is
+ // enabled or removed.
+ google.ads.googleads.v1.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3;
+
+ // Name of the custom interest. It should be unique across the same custom
+ // affinity audience.
+ // This field is required for create operations.
+ google.protobuf.StringValue name = 4;
+
+ // Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT.
+ // By default the type is set to CUSTOM_AFFINITY.
+ google.ads.googleads.v1.enums.CustomInterestTypeEnum.CustomInterestType type = 5;
+
+ // Description of this custom interest audience.
+ google.protobuf.StringValue description = 6;
+
+ // List of custom interest members that this custom interest is composed of.
+ // Members can be added during CustomInterest creation. If members are
+ // presented in UPDATE operation, existing members will be overridden.
+ repeated CustomInterestMember members = 7;
+}
+
+// A member of custom interest audience. A member can be a keyword or url.
+// It is immutable, that is, it can only be created or removed but not changed.
+message CustomInterestMember {
+ // The type of custom interest member, KEYWORD or URL.
+ google.ads.googleads.v1.enums.CustomInterestMemberTypeEnum.CustomInterestMemberType member_type = 1;
+
+ // Keyword text when member_type is KEYWORD or URL string when
+ // member_type is URL.
+ google.protobuf.StringValue parameter = 2;
+}
diff --git a/google/ads/googleads/v1/resources/customer.proto b/google/ads/googleads/v1/resources/customer.proto
new file mode 100644
index 000000000..98cfa430f
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer.proto
@@ -0,0 +1,120 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Customer resource.
+
+// A customer.
+message Customer {
+ // The resource name of the customer.
+ // Customer resource names have the form:
+ //
+ // `customers/{customer_id}`
+ string resource_name = 1;
+
+ // The ID of the customer.
+ google.protobuf.Int64Value id = 3;
+
+ // Optional, non-unique descriptive name of the customer.
+ google.protobuf.StringValue descriptive_name = 4;
+
+ // The currency in which the account operates.
+ // A subset of the currency codes from the ISO 4217 standard is
+ // supported.
+ google.protobuf.StringValue currency_code = 5;
+
+ // The local timezone ID of the customer.
+ google.protobuf.StringValue time_zone = 6;
+
+ // The URL template for constructing a tracking URL out of parameters.
+ google.protobuf.StringValue tracking_url_template = 7;
+
+ // The URL template for appending params to the final URL
+ google.protobuf.StringValue final_url_suffix = 11;
+
+ // Whether auto-tagging is enabled for the customer.
+ google.protobuf.BoolValue auto_tagging_enabled = 8;
+
+ // Whether the Customer has a Partners program badge. If the Customer is not
+ // associated with the Partners program, this will be false. For more
+ // information, see https://support.google.com/partners/answer/3125774.
+ google.protobuf.BoolValue has_partners_badge = 9;
+
+ // Whether the customer is a manager.
+ google.protobuf.BoolValue manager = 12;
+
+ // Whether the customer is a test account.
+ google.protobuf.BoolValue test_account = 13;
+
+ // Call reporting setting for a customer.
+ CallReportingSetting call_reporting_setting = 10;
+
+ // Conversion tracking setting for a customer.
+ ConversionTrackingSetting conversion_tracking_setting = 14;
+
+ // Remarketing setting for a customer.
+ RemarketingSetting remarketing_setting = 15;
+}
+
+// Call reporting setting for a customer.
+message CallReportingSetting {
+ // Enable reporting of phone call events by redirecting them via Google
+ // System.
+ google.protobuf.BoolValue call_reporting_enabled = 1;
+
+ // Whether to enable call conversion reporting.
+ google.protobuf.BoolValue call_conversion_reporting_enabled = 2;
+
+ // Customer-level call conversion action to attribute a call conversion to.
+ // If not set a default conversion action is used. Only in effect when
+ // call_conversion_reporting_enabled is set to true.
+ google.protobuf.StringValue call_conversion_action = 9;
+}
+
+// A collection of customer-wide settings related to Google Ads Conversion
+// Tracking.
+message ConversionTrackingSetting {
+ // The conversion tracking id used for this account. This id is automatically
+ // assigned after any conversion tracking feature is used. If the customer
+ // doesn't use conversion tracking, this is 0. This field is read-only.
+ google.protobuf.Int64Value conversion_tracking_id = 1;
+
+ // The conversion tracking id of the customer's manager. This is set when the
+ // customer is opted into cross account conversion tracking, and it overrides
+ // conversion_tracking_id. This field can only be managed through the Google
+ // Ads UI. This field is read-only.
+ google.protobuf.Int64Value cross_account_conversion_tracking_id = 2;
+}
+
+// Remarketing setting for a customer.
+message RemarketingSetting {
+ // The Google global site tag.
+ google.protobuf.StringValue google_global_site_tag = 1;
+}
diff --git a/google/ads/googleads/v1/resources/customer_client.proto b/google/ads/googleads/v1/resources/customer_client.proto
new file mode 100644
index 000000000..e4a52af40
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer_client.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerClientProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CustomerClient resource.
+
+// A link between the given customer and a client customer. CustomerClients only
+// exist for manager customers. All direct and indirect client customers are
+// included, as well as the manager itself.
+message CustomerClient {
+ // The resource name of the customer client.
+ // CustomerClient resource names have the form:
+ // `customers/{customer_id}/customerClients/{client_customer_id}`
+ string resource_name = 1;
+
+ // The resource name of the client-customer which is linked to
+ // the given customer. Read only.
+ google.protobuf.StringValue client_customer = 3;
+
+ // Specifies whether this is a hidden account. Learn more about hidden
+ // accounts <a
+ // href="https://support.google.com/google-ads/answer/7519830">here</a>. Read
+ // only.
+ google.protobuf.BoolValue hidden = 4;
+
+ // Distance between given customer and client. For self link, the level value
+ // will be 0. Read only.
+ google.protobuf.Int64Value level = 5;
+}
diff --git a/google/ads/googleads/v1/resources/customer_client_link.proto b/google/ads/googleads/v1/resources/customer_client_link.proto
new file mode 100644
index 000000000..27e3d7a42
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer_client_link.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/manager_link_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerClientLinkProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CustomerClientLink resource.
+
+// Represents customer client link relationship.
+message CustomerClientLink {
+ // Name of the resource.
+ // CustomerClientLink resource names have the form:
+ //
+ // `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}`
+ string resource_name = 1;
+
+ // The client customer linked to this customer.
+ google.protobuf.StringValue client_customer = 3;
+
+ // This is uniquely identifies a customer client link. Read only.
+ google.protobuf.Int64Value manager_link_id = 4;
+
+ // This is the status of the link between client and manager.
+ google.ads.googleads.v1.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5;
+
+ // The visibility of the link. Users can choose whether or not to see hidden
+ // links in the AdWords UI.
+ // Default value is false
+ google.protobuf.BoolValue hidden = 6;
+}
diff --git a/google/ads/googleads/v1/resources/customer_extension_setting.proto b/google/ads/googleads/v1/resources/customer_extension_setting.proto
new file mode 100644
index 000000000..20af1c57d
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer_extension_setting.proto
@@ -0,0 +1,55 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/extension_setting_device.proto";
+import "google/ads/googleads/v1/enums/extension_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerExtensionSettingProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CustomerExtensionSetting resource.
+
+// A customer extension setting.
+message CustomerExtensionSetting {
+ // The resource name of the customer extension setting.
+ // CustomerExtensionSetting resource names have the form:
+ //
+ // `customers/{customer_id}/customerExtensionSettings/{extension_type}`
+ string resource_name = 1;
+
+ // The extension type of the customer extension setting.
+ google.ads.googleads.v1.enums.ExtensionTypeEnum.ExtensionType extension_type = 2;
+
+ // The resource names of the extension feed items to serve under the customer.
+ // ExtensionFeedItem resource names have the form:
+ //
+ // `customers/{customer_id}/extensionFeedItems/{feed_item_id}`
+ repeated google.protobuf.StringValue extension_feed_items = 3;
+
+ // The device for which the extensions will serve. Optional.
+ google.ads.googleads.v1.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice device = 4;
+}
diff --git a/google/ads/googleads/v1/resources/customer_feed.proto b/google/ads/googleads/v1/resources/customer_feed.proto
new file mode 100644
index 000000000..fc74ec3a3
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer_feed.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/matching_function.proto";
+import "google/ads/googleads/v1/enums/feed_link_status.proto";
+import "google/ads/googleads/v1/enums/placeholder_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerFeedProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CustomerFeed resource.
+
+// A customer feed.
+message CustomerFeed {
+ // The resource name of the customer feed.
+ // Customer feed resource names have the form:
+ //
+ // `customers/{customer_id}/customerFeeds/{feed_id}`
+ string resource_name = 1;
+
+ // The feed being linked to the customer.
+ google.protobuf.StringValue feed = 2;
+
+ // Indicates which placeholder types the feed may populate under the connected
+ // customer. Required.
+ repeated google.ads.googleads.v1.enums.PlaceholderTypeEnum.PlaceholderType placeholder_types = 3;
+
+ // Matching function associated with the CustomerFeed.
+ // The matching function is used to filter the set of feed items selected.
+ // Required.
+ google.ads.googleads.v1.common.MatchingFunction matching_function = 4;
+
+ // Status of the customer feed.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5;
+}
diff --git a/google/ads/googleads/v1/resources/customer_label.proto b/google/ads/googleads/v1/resources/customer_label.proto
new file mode 100644
index 000000000..39230e025
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer_label.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerLabelProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the customer label resource.
+
+// Represents a relationship between a customer and a label. This customer may
+// not have access to all the labels attached to it. Additional CustomerLabels
+// may be returned by increasing permissions with login-customer-id.
+message CustomerLabel {
+ // Name of the resource.
+ // Customer label resource names have the form:
+ // `customers/{customer_id}/customerLabels/{label_id}`
+ string resource_name = 1;
+
+ // The resource name of the customer to which the label is attached.
+ // Read only.
+ google.protobuf.StringValue customer = 2;
+
+ // The resource name of the label assigned to the customer.
+ //
+ // Note: the Customer ID portion of the label resource name is not
+ // validated when creating a new CustomerLabel.
+ google.protobuf.StringValue label = 3;
+}
diff --git a/google/ads/googleads/v1/resources/customer_manager_link.proto b/google/ads/googleads/v1/resources/customer_manager_link.proto
new file mode 100644
index 000000000..a2ed177cb
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer_manager_link.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/manager_link_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerManagerLinkProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the CustomerManagerLink resource.
+
+// Represents customer-manager link relationship.
+message CustomerManagerLink {
+ // Name of the resource.
+ // CustomerManagerLink resource names have the form:
+ //
+ // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`
+ string resource_name = 1;
+
+ // The manager customer linked to the customer.
+ google.protobuf.StringValue manager_customer = 3;
+
+ // ID of the customer-manager link. This field is read only.
+ google.protobuf.Int64Value manager_link_id = 4;
+
+ // Status of the link between the customer and the manager.
+ google.ads.googleads.v1.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5;
+}
diff --git a/google/ads/googleads/v1/resources/customer_negative_criterion.proto b/google/ads/googleads/v1/resources/customer_negative_criterion.proto
new file mode 100644
index 000000000..8db932477
--- /dev/null
+++ b/google/ads/googleads/v1/resources/customer_negative_criterion.proto
@@ -0,0 +1,72 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/criterion_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerNegativeCriterionProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Customer Negative Criterion resource.
+
+// A negative criterion for exclusions at the customer level.
+message CustomerNegativeCriterion {
+ // The resource name of the customer negative criterion.
+ // Customer negative criterion resource names have the form:
+ //
+ // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`
+ string resource_name = 1;
+
+ // The ID of the criterion.
+ google.protobuf.Int64Value id = 2;
+
+ // The type of the criterion.
+ google.ads.googleads.v1.enums.CriterionTypeEnum.CriterionType type = 3;
+
+ // The customer negative criterion.
+ //
+ // Exactly one must be set.
+ oneof criterion {
+ // ContentLabel.
+ google.ads.googleads.v1.common.ContentLabelInfo content_label = 4;
+
+ // MobileApplication.
+ google.ads.googleads.v1.common.MobileApplicationInfo mobile_application = 5;
+
+ // MobileAppCategory.
+ google.ads.googleads.v1.common.MobileAppCategoryInfo mobile_app_category = 6;
+
+ // Placement.
+ google.ads.googleads.v1.common.PlacementInfo placement = 7;
+
+ // YouTube Video.
+ google.ads.googleads.v1.common.YouTubeVideoInfo youtube_video = 8;
+
+ // YouTube Channel.
+ google.ads.googleads.v1.common.YouTubeChannelInfo youtube_channel = 9;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/detail_placement_view.proto b/google/ads/googleads/v1/resources/detail_placement_view.proto
new file mode 100644
index 000000000..ae42bb3f7
--- /dev/null
+++ b/google/ads/googleads/v1/resources/detail_placement_view.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/placement_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "DetailPlacementViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the detail placement view resource.
+
+// A view with metrics aggregated by ad group and URL or YouTube video.
+message DetailPlacementView {
+ // The resource name of the detail placement view.
+ // Detail placement view resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}`
+ string resource_name = 1;
+
+ // The automatic placement string at detail level, e. g. website URL, mobile
+ // application ID, or a YouTube video ID.
+ google.protobuf.StringValue placement = 2;
+
+ // The display name is URL name for websites, YouTube video name for YouTube
+ // videos, and translated mobile app name for mobile apps.
+ google.protobuf.StringValue display_name = 3;
+
+ // URL of the group placement, e.g. domain, link to the mobile application in
+ // app store, or a YouTube channel URL.
+ google.protobuf.StringValue group_placement_target_url = 4;
+
+ // URL of the placement, e.g. website, link to the mobile application in app
+ // store, or a YouTube video URL.
+ google.protobuf.StringValue target_url = 5;
+
+ // Type of the placement, e.g. Website, YouTube Video, and Mobile Application.
+ google.ads.googleads.v1.enums.PlacementTypeEnum.PlacementType placement_type = 6;
+}
diff --git a/google/ads/googleads/v1/resources/display_keyword_view.proto b/google/ads/googleads/v1/resources/display_keyword_view.proto
new file mode 100644
index 000000000..98c6c6f57
--- /dev/null
+++ b/google/ads/googleads/v1/resources/display_keyword_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "DisplayKeywordViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the display keyword view resource.
+
+// A display keyword view.
+message DisplayKeywordView {
+ // The resource name of the display keyword view.
+ // Display Keyword view resource names have the form:
+ //
+ // `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/domain_category.proto b/google/ads/googleads/v1/resources/domain_category.proto
new file mode 100644
index 000000000..054a1db24
--- /dev/null
+++ b/google/ads/googleads/v1/resources/domain_category.proto
@@ -0,0 +1,76 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "DomainCategoryProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Domain Category resource.
+
+// A category generated automatically by crawling a domain. If a campaign uses
+// the DynamicSearchAdsSetting, then domain categories will be generated for
+// the domain. The categories can be targeted using WebpageConditionInfo.
+// See: https://support.google.com/google-ads/answer/2471185
+message DomainCategory {
+ // The resource name of the domain category.
+ // Domain category resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/domainCategories/{campaign_id}~{category_base64}~{language_code}`
+ string resource_name = 1;
+
+ // The campaign this category is recommended for.
+ google.protobuf.StringValue campaign = 2;
+
+ // Recommended category for the website domain. e.g. if you have a website
+ // about electronics, the categories could be "cameras", "televisions", etc.
+ google.protobuf.StringValue category = 3;
+
+ // The language code specifying the language of the website. e.g. "en" for
+ // English. The language can be specified in the DynamicSearchAdsSetting
+ // required for dynamic search ads. This is the language of the pages from
+ // your website that you want Google Ads to find, create ads for,
+ // and match searches with.
+ google.protobuf.StringValue language_code = 4;
+
+ // The domain for the website. The domain can be specified in the
+ // DynamicSearchAdsSetting required for dynamic search ads.
+ google.protobuf.StringValue domain = 5;
+
+ // Fraction of pages on your site that this category matches.
+ google.protobuf.DoubleValue coverage_fraction = 6;
+
+ // The position of this category in the set of categories. Lower numbers
+ // indicate a better match for the domain. null indicates not recommended.
+ google.protobuf.Int64Value category_rank = 7;
+
+ // Indicates whether this category has sub-categories.
+ google.protobuf.BoolValue has_children = 8;
+
+ // The recommended cost per click for the category.
+ google.protobuf.Int64Value recommended_cpc_bid_micros = 9;
+}
diff --git a/google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto b/google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto
new file mode 100644
index 000000000..f1b901a9e
--- /dev/null
+++ b/google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "DynamicSearchAdsSearchTermViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Dynamic Search Ads Search Term View resource.
+
+// A dynamic search ads search term view.
+message DynamicSearchAdsSearchTermView {
+ // The resource name of the dynamic search ads search term view.
+ // Dynamic search ads search term view resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fp}~{headline_fp}~{landing_page_fp}~{page_url_fp}`
+ string resource_name = 1;
+
+ // Search term
+ //
+ // This field is read-only.
+ google.protobuf.StringValue search_term = 2;
+
+ // The dynamically generated headline of the Dynamic Search Ad.
+ //
+ // This field is read-only.
+ google.protobuf.StringValue headline = 3;
+
+ // The dynamically selected landing page URL of the impression.
+ //
+ // This field is read-only.
+ google.protobuf.StringValue landing_page = 4;
+
+ // The URL of page feed item served for the impression.
+ //
+ // This field is read-only.
+ google.protobuf.StringValue page_url = 5;
+}
diff --git a/google/ads/googleads/v1/resources/extension_feed_item.proto b/google/ads/googleads/v1/resources/extension_feed_item.proto
new file mode 100644
index 000000000..18d1504c9
--- /dev/null
+++ b/google/ads/googleads/v1/resources/extension_feed_item.proto
@@ -0,0 +1,90 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/extensions.proto";
+import "google/ads/googleads/v1/enums/extension_type.proto";
+import "google/ads/googleads/v1/enums/feed_item_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionFeedItemProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ExtensionFeedItem resource.
+
+// An extension feed item.
+message ExtensionFeedItem {
+ // The resource name of the extension feed item.
+ // Extension feed item resource names have the form:
+ //
+ // `customers/{customer_id}/extensionFeedItems/{feed_item_id}`
+ string resource_name = 1;
+
+ // The extension type of the extension feed item.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.ExtensionTypeEnum.ExtensionType extension_type = 13;
+
+ // Start time in which this feed item is effective and can begin serving.
+ // The format is "YYYY-MM-DD HH:MM:SS".
+ // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
+ google.protobuf.StringValue start_date_time = 5;
+
+ // End time in which this feed item is no longer effective and will stop
+ // serving.
+ // The format is "YYYY-MM-DD HH:MM:SS".
+ // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
+ google.protobuf.StringValue end_date_time = 6;
+
+ // Status of the feed item.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.FeedItemStatusEnum.FeedItemStatus status = 4;
+
+ // Extension type.
+ oneof extension {
+ // Sitelink extension.
+ google.ads.googleads.v1.common.SitelinkFeedItem sitelink_feed_item = 2;
+
+ // Structured snippet extension.
+ google.ads.googleads.v1.common.StructuredSnippetFeedItem structured_snippet_feed_item = 3;
+
+ // App extension.
+ google.ads.googleads.v1.common.AppFeedItem app_feed_item = 7;
+
+ // Call extension.
+ google.ads.googleads.v1.common.CallFeedItem call_feed_item = 8;
+
+ // Callout extension.
+ google.ads.googleads.v1.common.CalloutFeedItem callout_feed_item = 9;
+
+ // Text message extension.
+ google.ads.googleads.v1.common.TextMessageFeedItem text_message_feed_item = 10;
+
+ // Price extension.
+ google.ads.googleads.v1.common.PriceFeedItem price_feed_item = 11;
+
+ // Promotion extension.
+ google.ads.googleads.v1.common.PromotionFeedItem promotion_feed_item = 12;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/feed.proto b/google/ads/googleads/v1/resources/feed.proto
new file mode 100644
index 000000000..9bf8d7ca8
--- /dev/null
+++ b/google/ads/googleads/v1/resources/feed.proto
@@ -0,0 +1,180 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto";
+import "google/ads/googleads/v1/enums/feed_attribute_type.proto";
+import "google/ads/googleads/v1/enums/feed_origin.proto";
+import "google/ads/googleads/v1/enums/feed_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "FeedProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Feed resource.
+
+// A feed.
+message Feed {
+ // Data used to configure a location feed populated from Google My Business
+ // Locations.
+ message PlacesLocationFeedData {
+ // Data used for authorization using OAuth.
+ message OAuthInfo {
+ // The HTTP method used to obtain authorization.
+ google.protobuf.StringValue http_method = 1;
+
+ // The HTTP request URL used to obtain authorization.
+ google.protobuf.StringValue http_request_url = 2;
+
+ // The HTTP authorization header used to obtain authorization.
+ google.protobuf.StringValue http_authorization_header = 3;
+ }
+
+ // Required authentication token (from OAuth API) for the email.
+ // This field can only be specified in a create request. All its subfields
+ // are not selectable.
+ OAuthInfo oauth_info = 1;
+
+ // Email address of a Google My Business account or email address of a
+ // manager of the Google My Business account. Required.
+ google.protobuf.StringValue email_address = 2;
+
+ // Plus page ID of the managed business whose locations should be used. If
+ // this field is not set, then all businesses accessible by the user
+ // (specified by email_address) are used.
+ // This field is mutate-only and is not selectable.
+ google.protobuf.StringValue business_account_id = 10;
+
+ // Used to filter Google My Business listings by business name. If
+ // business_name_filter is set, only listings with a matching business name
+ // are candidates to be sync'd into FeedItems.
+ google.protobuf.StringValue business_name_filter = 4;
+
+ // Used to filter Google My Business listings by categories. If entries
+ // exist in category_filters, only listings that belong to any of the
+ // categories are candidates to be sync'd into FeedItems. If no entries
+ // exist in category_filters, then all listings are candidates for syncing.
+ repeated google.protobuf.StringValue category_filters = 5;
+
+ // Used to filter Google My Business listings by labels. If entries exist in
+ // label_filters, only listings that has any of the labels set are
+ // candidates to be synchronized into FeedItems. If no entries exist in
+ // label_filters, then all listings are candidates for syncing.
+ repeated google.protobuf.StringValue label_filters = 6;
+ }
+
+ // Data used to configure an affiliate location feed populated with the
+ // specified chains.
+ message AffiliateLocationFeedData {
+ // The list of chains that the affiliate location feed will sync the
+ // locations from.
+ repeated google.protobuf.Int64Value chain_ids = 1;
+
+ // The relationship the chains have with the advertiser.
+ google.ads.googleads.v1.enums.AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType relationship_type = 2;
+ }
+
+ // The resource name of the feed.
+ // Feed resource names have the form:
+ //
+ // `customers/{customer_id}/feeds/{feed_id}`
+ string resource_name = 1;
+
+ // The ID of the feed.
+ // This field is read-only.
+ google.protobuf.Int64Value id = 2;
+
+ // Name of the feed. Required.
+ google.protobuf.StringValue name = 3;
+
+ // The Feed's attributes. Required on CREATE.
+ // Disallowed on UPDATE. Use attribute_operations to add new attributes.
+ repeated FeedAttribute attributes = 4;
+
+ // The list of operations changing the feed attributes. Attributes can only
+ // be added, not removed.
+ repeated FeedAttributeOperation attribute_operations = 9;
+
+ // Specifies who manages the FeedAttributes for the Feed.
+ google.ads.googleads.v1.enums.FeedOriginEnum.FeedOrigin origin = 5;
+
+ // Status of the feed.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.FeedStatusEnum.FeedStatus status = 8;
+
+ // The system data for the Feed. This data specifies information for
+ // generating the feed items of the system generated feed.
+ oneof system_feed_generation_data {
+ // Data used to configure a location feed populated from Google My Business
+ // Locations.
+ PlacesLocationFeedData places_location_feed_data = 6;
+
+ // Data used to configure an affiliate location feed populated with
+ // the specified chains.
+ AffiliateLocationFeedData affiliate_location_feed_data = 7;
+ }
+}
+
+// FeedAttributes define the types of data expected to be present in a Feed. A
+// single FeedAttribute specifies the expected type of the FeedItemAttributes
+// with the same FeedAttributeId. Optionally, a FeedAttribute can be marked as
+// being part of a FeedItem's unique key.
+message FeedAttribute {
+ // ID of the attribute.
+ google.protobuf.Int64Value id = 1;
+
+ // The name of the attribute. Required.
+ google.protobuf.StringValue name = 2;
+
+ // Data type for feed attribute. Required.
+ google.ads.googleads.v1.enums.FeedAttributeTypeEnum.FeedAttributeType type = 3;
+
+ // Indicates that data corresponding to this attribute is part of a
+ // FeedItem's unique key. It defaults to false if it is unspecified. Note
+ // that a unique key is not required in a Feed's schema, in which case the
+ // FeedItems must be referenced by their feed_item_id.
+ google.protobuf.BoolValue is_part_of_key = 4;
+}
+
+// Operation to be performed on a feed attribute list in a mutate.
+message FeedAttributeOperation {
+ // The operator.
+ enum Operator {
+ // Unspecified.
+ UNSPECIFIED = 0;
+
+ // Used for return value only. Represents value unknown in this version.
+ UNKNOWN = 1;
+
+ // Add the attribute to the existing attributes.
+ ADD = 2;
+ }
+
+ // Type of list operation to perform.
+ Operator operator = 1;
+
+ // The feed attribute being added to the list.
+ FeedAttribute value = 2;
+}
diff --git a/google/ads/googleads/v1/resources/feed_item.proto b/google/ads/googleads/v1/resources/feed_item.proto
new file mode 100644
index 000000000..c477e2d73
--- /dev/null
+++ b/google/ads/googleads/v1/resources/feed_item.proto
@@ -0,0 +1,197 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/custom_parameter.proto";
+import "google/ads/googleads/v1/common/feed_common.proto";
+import "google/ads/googleads/v1/common/policy.proto";
+import "google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto";
+import "google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto";
+import "google/ads/googleads/v1/enums/feed_item_status.proto";
+import "google/ads/googleads/v1/enums/feed_item_validation_status.proto";
+import "google/ads/googleads/v1/enums/geo_targeting_restriction.proto";
+import "google/ads/googleads/v1/enums/policy_approval_status.proto";
+import "google/ads/googleads/v1/enums/policy_review_status.proto";
+import "google/ads/googleads/v1/errors/feed_item_validation_error.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the FeedItem resource.
+
+// A feed item.
+message FeedItem {
+ // The resource name of the feed item.
+ // Feed item resource names have the form:
+ //
+ // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}`
+ string resource_name = 1;
+
+ // The feed to which this feed item belongs.
+ google.protobuf.StringValue feed = 2;
+
+ // The ID of this feed item.
+ google.protobuf.Int64Value id = 3;
+
+ // Start time in which this feed item is effective and can begin serving.
+ // The format is "YYYY-MM-DD HH:MM:SS".
+ // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
+ google.protobuf.StringValue start_date_time = 4;
+
+ // End time in which this feed item is no longer effective and will stop
+ // serving.
+ // The format is "YYYY-MM-DD HH:MM:SS".
+ // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
+ google.protobuf.StringValue end_date_time = 5;
+
+ // The feed item's attribute values.
+ repeated FeedItemAttributeValue attribute_values = 6;
+
+ // Geo targeting restriction specifies the type of location that can be used
+ // for targeting.
+ google.ads.googleads.v1.enums.GeoTargetingRestrictionEnum.GeoTargetingRestriction geo_targeting_restriction = 7;
+
+ // The list of mappings used to substitute custom parameter tags in a
+ // `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
+ repeated google.ads.googleads.v1.common.CustomParameter url_custom_parameters = 8;
+
+ // Status of the feed item.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.FeedItemStatusEnum.FeedItemStatus status = 9;
+
+ // List of info about a feed item's validation and approval state for active
+ // feed mappings. There will be an entry in the list for each type of feed
+ // mapping associated with the feed, e.g. a feed with a sitelink and a call
+ // feed mapping would cause every feed item associated with that feed to have
+ // an entry in this list for both sitelink and call.
+ // This field is read-only.
+ repeated FeedItemPlaceholderPolicyInfo policy_infos = 10;
+}
+
+// A feed item attribute value.
+message FeedItemAttributeValue {
+ // Id of the feed attribute for which the value is associated with.
+ google.protobuf.Int64Value feed_attribute_id = 1;
+
+ // Int64 value. Should be set if feed_attribute_id refers to a feed attribute
+ // of type INT64.
+ google.protobuf.Int64Value integer_value = 2;
+
+ // Bool value. Should be set if feed_attribute_id refers to a feed attribute
+ // of type BOOLEAN.
+ google.protobuf.BoolValue boolean_value = 3;
+
+ // String value. Should be set if feed_attribute_id refers to a feed attribute
+ // of type STRING, URL or DATE_TIME.
+ // For STRING the maximum length is 1500 characters. For URL the maximum
+ // length is 2076 characters. For DATE_TIME the format of the string must
+ // be the same as start and end time for the feed item.
+ google.protobuf.StringValue string_value = 4;
+
+ // Double value. Should be set if feed_attribute_id refers to a feed attribute
+ // of type DOUBLE.
+ google.protobuf.DoubleValue double_value = 5;
+
+ // Price value. Should be set if feed_attribute_id refers to a feed attribute
+ // of type PRICE.
+ google.ads.googleads.v1.common.Money price_value = 6;
+
+ // Repeated int64 value. Should be set if feed_attribute_id refers to a feed
+ // attribute of type INT64_LIST.
+ repeated google.protobuf.Int64Value integer_values = 7;
+
+ // Repeated bool value. Should be set if feed_attribute_id refers to a feed
+ // attribute of type BOOLEAN_LIST.
+ repeated google.protobuf.BoolValue boolean_values = 8;
+
+ // Repeated string value. Should be set if feed_attribute_id refers to a feed
+ // attribute of type STRING_LIST, URL_LIST or DATE_TIME_LIST.
+ // For STRING_LIST and URL_LIST the total size of the list in bytes may not
+ // exceed 3000. For DATE_TIME_LIST the number of elements may not exceed 200.
+ //
+ // For STRING_LIST the maximum length of each string element is 1500
+ // characters. For URL_LIST the maximum length is 2076 characters. For
+ // DATE_TIME the format of the string must be the same as start and end time
+ // for the feed item.
+ repeated google.protobuf.StringValue string_values = 9;
+
+ // Repeated double value. Should be set if feed_attribute_id refers to a feed
+ // attribute of type DOUBLE_LIST.
+ repeated google.protobuf.DoubleValue double_values = 10;
+}
+
+// Policy, validation, and quality approval info for a feed item for the
+// specified placeholder type.
+message FeedItemPlaceholderPolicyInfo {
+ // The placeholder type.
+ google.protobuf.Int32Value placeholder_type = 1;
+
+ // The FeedMapping that contains the placeholder type.
+ google.protobuf.StringValue feed_mapping_resource_name = 2;
+
+ // Where the placeholder type is in the review process.
+ google.ads.googleads.v1.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 3;
+
+ // The overall approval status of the placeholder type, calculated based on
+ // the status of its individual policy topic entries.
+ google.ads.googleads.v1.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 4;
+
+ // The list of policy findings for the placeholder type.
+ repeated google.ads.googleads.v1.common.PolicyTopicEntry policy_topic_entries = 5;
+
+ // The validation status of the palceholder type.
+ google.ads.googleads.v1.enums.FeedItemValidationStatusEnum.FeedItemValidationStatus validation_status = 6;
+
+ // List of placeholder type validation errors.
+ repeated FeedItemValidationError validation_errors = 7;
+
+ // Placeholder type quality evaluation approval status.
+ google.ads.googleads.v1.enums.FeedItemQualityApprovalStatusEnum.FeedItemQualityApprovalStatus quality_approval_status = 8;
+
+ // List of placeholder type quality evaluation disapproval reasons.
+ repeated google.ads.googleads.v1.enums.FeedItemQualityDisapprovalReasonEnum.FeedItemQualityDisapprovalReason quality_disapproval_reasons = 9;
+}
+
+// Stores a validation error and the set of offending feed attributes which
+// together are responsible for causing a feed item validation error.
+message FeedItemValidationError {
+ // Error code indicating what validation error was triggered. The description
+ // of the error can be found in the 'description' field.
+ google.ads.googleads.v1.errors.FeedItemValidationErrorEnum.FeedItemValidationError validation_error = 1;
+
+ // The description of the validation error.
+ google.protobuf.StringValue description = 2;
+
+ // Set of feed attributes in the feed item flagged during validation. If
+ // empty, no specific feed attributes can be associated with the error
+ // (e.g. error across the entire feed item).
+ repeated google.protobuf.Int64Value feed_attribute_ids = 3;
+
+ // Any extra information related to this error which is not captured by
+ // validation_error and feed_attribute_id (e.g. placeholder field IDs when
+ // feed_attribute_id is not mapped). Note that extra_info is not localized.
+ google.protobuf.StringValue extra_info = 5;
+}
diff --git a/google/ads/googleads/v1/resources/feed_item_target.proto b/google/ads/googleads/v1/resources/feed_item_target.proto
new file mode 100644
index 000000000..ae8f0c947
--- /dev/null
+++ b/google/ads/googleads/v1/resources/feed_item_target.proto
@@ -0,0 +1,74 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/feed_item_target_device.proto";
+import "google/ads/googleads/v1/enums/feed_item_target_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemTargetProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the FeedItemTarget resource.
+
+// A feed item target.
+message FeedItemTarget {
+ // The resource name of the feed item target.
+ // Feed item target resource names have the form:
+ //
+ // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}`
+ string resource_name = 1;
+
+ // The feed item to which this feed item target belongs.
+ google.protobuf.StringValue feed_item = 2;
+
+ // The target type of this feed item target. This field is read-only.
+ google.ads.googleads.v1.enums.FeedItemTargetTypeEnum.FeedItemTargetType feed_item_target_type = 3;
+
+ // The ID of the targeted resource. This field is read-only.
+ google.protobuf.Int64Value feed_item_target_id = 6;
+
+ // The targeted resource.
+ oneof target {
+ // The targeted campaign.
+ google.protobuf.StringValue campaign = 4;
+
+ // The targeted ad group.
+ google.protobuf.StringValue ad_group = 5;
+
+ // The targeted keyword.
+ google.ads.googleads.v1.common.KeywordInfo keyword = 7;
+
+ // The targeted geo target constant resource name.
+ google.protobuf.StringValue geo_target_constant = 8;
+
+ // The targeted device.
+ google.ads.googleads.v1.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 9;
+
+ // The targeted schedule.
+ google.ads.googleads.v1.common.AdScheduleInfo ad_schedule = 10;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/feed_mapping.proto b/google/ads/googleads/v1/resources/feed_mapping.proto
new file mode 100644
index 000000000..6cade5624
--- /dev/null
+++ b/google/ads/googleads/v1/resources/feed_mapping.proto
@@ -0,0 +1,170 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/app_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/call_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/callout_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/custom_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto";
+import "google/ads/googleads/v1/enums/education_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto";
+import "google/ads/googleads/v1/enums/feed_mapping_status.proto";
+import "google/ads/googleads/v1/enums/flight_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/hotel_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/job_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/local_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto";
+import "google/ads/googleads/v1/enums/location_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/message_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/placeholder_type.proto";
+import "google/ads/googleads/v1/enums/price_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/promotion_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/real_estate_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/sitelink_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto";
+import "google/ads/googleads/v1/enums/travel_placeholder_field.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "FeedMappingProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the FeedMapping resource.
+
+// A feed mapping.
+message FeedMapping {
+ // The resource name of the feed mapping.
+ // Feed mapping resource names have the form:
+ //
+ // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}`
+ string resource_name = 1;
+
+ // The feed of this feed mapping.
+ google.protobuf.StringValue feed = 2;
+
+ // Feed attributes to field mappings. These mappings are a one-to-many
+ // relationship meaning that 1 feed attribute can be used to populate
+ // multiple placeholder fields, but 1 placeholder field can only draw
+ // data from 1 feed attribute. Ad Customizer is an exception, 1 placeholder
+ // field can be mapped to multiple feed attributes. Required.
+ repeated AttributeFieldMapping attribute_field_mappings = 5;
+
+ // Status of the feed mapping.
+ // This field is read-only.
+ google.ads.googleads.v1.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6;
+
+ // Feed mapping target. Can be either a placeholder or a criterion. For a
+ // given feed, the active FeedMappings must have unique targets. Required.
+ oneof target {
+ // The placeholder type of this mapping (i.e., if the mapping maps feed
+ // attributes to placeholder fields).
+ google.ads.googleads.v1.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 3;
+
+ // The criterion type of this mapping (i.e., if the mapping maps feed
+ // attributes to criterion fields).
+ google.ads.googleads.v1.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionType criterion_type = 4;
+ }
+}
+
+// Maps from feed attribute id to a placeholder or criterion field id.
+message AttributeFieldMapping {
+ // Feed attribute from which to map.
+ google.protobuf.Int64Value feed_attribute_id = 1;
+
+ // The placeholder field ID. If a placeholder field enum is not published in
+ // the current API version, then this field will be populated and the field
+ // oneof will be empty.
+ // This field is read-only.
+ google.protobuf.Int64Value field_id = 2;
+
+ // Placeholder or criterion field to be populated using data from
+ // the above feed attribute. Required.
+ oneof field {
+ // Sitelink Placeholder Fields.
+ google.ads.googleads.v1.enums.SitelinkPlaceholderFieldEnum.SitelinkPlaceholderField sitelink_field = 3;
+
+ // Call Placeholder Fields.
+ google.ads.googleads.v1.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4;
+
+ // App Placeholder Fields.
+ google.ads.googleads.v1.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5;
+
+ // Location Placeholder Fields. This field is read-only.
+ google.ads.googleads.v1.enums.LocationPlaceholderFieldEnum.LocationPlaceholderField location_field = 6;
+
+ // Affiliate Location Placeholder Fields. This field is read-only.
+ google.ads.googleads.v1.enums.AffiliateLocationPlaceholderFieldEnum.AffiliateLocationPlaceholderField affiliate_location_field = 7;
+
+ // Callout Placeholder Fields.
+ google.ads.googleads.v1.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderField callout_field = 8;
+
+ // Structured Snippet Placeholder Fields.
+ google.ads.googleads.v1.enums.StructuredSnippetPlaceholderFieldEnum.StructuredSnippetPlaceholderField structured_snippet_field = 9;
+
+ // Message Placeholder Fields.
+ google.ads.googleads.v1.enums.MessagePlaceholderFieldEnum.MessagePlaceholderField message_field = 10;
+
+ // Price Placeholder Fields.
+ google.ads.googleads.v1.enums.PricePlaceholderFieldEnum.PricePlaceholderField price_field = 11;
+
+ // Promotion Placeholder Fields.
+ google.ads.googleads.v1.enums.PromotionPlaceholderFieldEnum.PromotionPlaceholderField promotion_field = 12;
+
+ // Ad Customizer Placeholder Fields
+ google.ads.googleads.v1.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderField ad_customizer_field = 13;
+
+ // Dynamic Search Ad Page Feed Fields.
+ google.ads.googleads.v1.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionField dsa_page_feed_field = 14;
+
+ // Location Target Fields.
+ google.ads.googleads.v1.enums.LocationExtensionTargetingCriterionFieldEnum.LocationExtensionTargetingCriterionField location_extension_targeting_field = 15;
+
+ // Education Placeholder Fields
+ google.ads.googleads.v1.enums.EducationPlaceholderFieldEnum.EducationPlaceholderField education_field = 16;
+
+ // Flight Placeholder Fields
+ google.ads.googleads.v1.enums.FlightPlaceholderFieldEnum.FlightPlaceholderField flight_field = 17;
+
+ // Custom Placeholder Fields
+ google.ads.googleads.v1.enums.CustomPlaceholderFieldEnum.CustomPlaceholderField custom_field = 18;
+
+ // Hotel Placeholder Fields
+ google.ads.googleads.v1.enums.HotelPlaceholderFieldEnum.HotelPlaceholderField hotel_field = 19;
+
+ // Real Estate Placeholder Fields
+ google.ads.googleads.v1.enums.RealEstatePlaceholderFieldEnum.RealEstatePlaceholderField real_estate_field = 20;
+
+ // Travel Placeholder Fields
+ google.ads.googleads.v1.enums.TravelPlaceholderFieldEnum.TravelPlaceholderField travel_field = 21;
+
+ // Local Placeholder Fields
+ google.ads.googleads.v1.enums.LocalPlaceholderFieldEnum.LocalPlaceholderField local_field = 22;
+
+ // Job Placeholder Fields
+ google.ads.googleads.v1.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/feed_placeholder_view.proto b/google/ads/googleads/v1/resources/feed_placeholder_view.proto
new file mode 100644
index 000000000..381375c6a
--- /dev/null
+++ b/google/ads/googleads/v1/resources/feed_placeholder_view.proto
@@ -0,0 +1,44 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/placeholder_type.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "FeedPlaceholderViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the FeedPlaceholderView resource.
+
+// A feed placeholder view.
+message FeedPlaceholderView {
+ // The resource name of the feed placeholder view.
+ // Feed placeholder view resource names have the form:
+ //
+ // `customers/{customer_id}/feedPlaceholderViews/{placeholder_type}`
+ string resource_name = 1;
+
+ // The placeholder type of the feed placeholder view.
+ google.ads.googleads.v1.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 2;
+}
diff --git a/google/ads/googleads/v1/resources/gender_view.proto b/google/ads/googleads/v1/resources/gender_view.proto
new file mode 100644
index 000000000..dac1df670
--- /dev/null
+++ b/google/ads/googleads/v1/resources/gender_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "GenderViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the gender view resource.
+
+// A gender view.
+message GenderView {
+ // The resource name of the gender view.
+ // Gender view resource names have the form:
+ //
+ // `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/geo_target_constant.proto b/google/ads/googleads/v1/resources/geo_target_constant.proto
new file mode 100644
index 000000000..fc4587218
--- /dev/null
+++ b/google/ads/googleads/v1/resources/geo_target_constant.proto
@@ -0,0 +1,61 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/geo_target_constant_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "GeoTargetConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the geo target constant resource.
+
+// A geo target constant.
+message GeoTargetConstant {
+ // The resource name of the geo target constant.
+ // Geo target constant resource names have the form:
+ //
+ // `geoTargetConstants/{geo_target_constant_id}`
+ string resource_name = 1;
+
+ // The ID of the geo target constant.
+ google.protobuf.Int64Value id = 3;
+
+ // Geo target constant English name.
+ google.protobuf.StringValue name = 4;
+
+ // The ISO-3166-1 alpha-2 country code that is associated with the target.
+ google.protobuf.StringValue country_code = 5;
+
+ // Geo target constant target type.
+ google.protobuf.StringValue target_type = 6;
+
+ // Geo target constant status.
+ google.ads.googleads.v1.enums.GeoTargetConstantStatusEnum.GeoTargetConstantStatus status = 7;
+
+ // The fully qualified English name, consisting of the target's name and that
+ // of its parent and country.
+ google.protobuf.StringValue canonical_name = 8;
+}
diff --git a/google/ads/googleads/v1/resources/geographic_view.proto b/google/ads/googleads/v1/resources/geographic_view.proto
new file mode 100644
index 000000000..9c674f931
--- /dev/null
+++ b/google/ads/googleads/v1/resources/geographic_view.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/geo_targeting_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "GeographicViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the geographic view resource.
+
+// A geographic view.
+//
+// Geographic View includes all metrics aggregated at the country level,
+// one row per country. It reports metrics at either actual physical location of
+// the user or an area of interest. If other segment fields are used, you may
+// get more than one row per country.
+message GeographicView {
+ // The resource name of the geographic view.
+ // Geographic view resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}`
+ string resource_name = 1;
+
+ // CriterionId for the geo target for a country.
+ google.protobuf.StringValue country_geo_target_constant = 2;
+
+ // Type of the geo targeting of the campaign.
+ google.ads.googleads.v1.enums.GeoTargetingTypeEnum.GeoTargetingType location_type = 3;
+}
diff --git a/google/ads/googleads/v1/resources/google_ads_field.proto b/google/ads/googleads/v1/resources/google_ads_field.proto
new file mode 100644
index 000000000..1a1825b9f
--- /dev/null
+++ b/google/ads/googleads/v1/resources/google_ads_field.proto
@@ -0,0 +1,107 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/google_ads_field_category.proto";
+import "google/ads/googleads/v1/enums/google_ads_field_data_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "GoogleAdsFieldProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Google Ads Field resource.
+
+// A field or resource (artifact) used by GoogleAdsService.
+message GoogleAdsField {
+ // The resource name of the artifact.
+ // Artifact resource names have the form:
+ //
+ // `googleAdsFields/{name}`
+ string resource_name = 1;
+
+ // The name of the artifact.
+ google.protobuf.StringValue name = 2;
+
+ // The category of the artifact.
+ google.ads.googleads.v1.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategory category = 3;
+
+ // Whether the artifact can be used in a SELECT clause in search
+ // queries.
+ google.protobuf.BoolValue selectable = 4;
+
+ // Whether the artifact can be used in a WHERE clause in search
+ // queries.
+ google.protobuf.BoolValue filterable = 5;
+
+ // Whether the artifact can be used in a ORDER BY clause in search
+ // queries.
+ google.protobuf.BoolValue sortable = 6;
+
+ // The names of all resources, segments, and metrics that are selectable with
+ // the described artifact.
+ repeated google.protobuf.StringValue selectable_with = 7;
+
+ // The names of all resources that are selectable with the described
+ // artifact. Fields from these resources do not segment metrics when included
+ // in search queries.
+ //
+ // This field is only set for artifacts whose category is RESOURCE.
+ repeated google.protobuf.StringValue attribute_resources = 8;
+
+ // At and beyond version V1 this field lists the names of all metrics that are
+ // selectable with the described artifact when it is used in the FROM clause.
+ // It is only set for artifacts whose category is RESOURCE.
+ //
+ // Before version V1 this field lists the names of all metrics that are
+ // selectable with the described artifact. It is only set for artifacts whose
+ // category is either RESOURCE or SEGMENT
+ repeated google.protobuf.StringValue metrics = 9;
+
+ // At and beyond version V1 this field lists the names of all artifacts,
+ // whether a segment or another resource, that segment metrics when included
+ // in search queries and when the described artifact is used in the FROM
+ // clause. It is only set for artifacts whose category is RESOURCE.
+ //
+ // Before version V1 this field lists the names of all artifacts, whether a
+ // segment or another resource, that segment metrics when included in search
+ // queries. It is only set for artifacts of category RESOURCE, SEGMENT or
+ // METRIC.
+ repeated google.protobuf.StringValue segments = 10;
+
+ // Values the artifact can assume if it is a field of type ENUM.
+ //
+ // This field is only set for artifacts of category SEGMENT or ATTRIBUTE.
+ repeated google.protobuf.StringValue enum_values = 11;
+
+ // This field determines the operators that can be used with the artifact
+ // in WHERE clauses.
+ google.ads.googleads.v1.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataType data_type = 12;
+
+ // The URL of proto describing the artifact's data type.
+ google.protobuf.StringValue type_url = 13;
+
+ // Whether the field artifact is repeated.
+ google.protobuf.BoolValue is_repeated = 14;
+}
diff --git a/google/ads/googleads/v1/resources/group_placement_view.proto b/google/ads/googleads/v1/resources/group_placement_view.proto
new file mode 100644
index 000000000..3a4675451
--- /dev/null
+++ b/google/ads/googleads/v1/resources/group_placement_view.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/placement_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "GroupPlacementViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the group placement view resource.
+
+// A group placement view.
+message GroupPlacementView {
+ // The resource name of the group placement view.
+ // Group placement view resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}`
+ string resource_name = 1;
+
+ // The automatic placement string at group level, e. g. web domain, mobile
+ // app ID, or a YouTube channel ID.
+ google.protobuf.StringValue placement = 2;
+
+ // Domain name for websites and YouTube channel name for YouTube channels.
+ google.protobuf.StringValue display_name = 3;
+
+ // URL of the group placement, e.g. domain, link to the mobile application in
+ // app store, or a YouTube channel URL.
+ google.protobuf.StringValue target_url = 4;
+
+ // Type of the placement, e.g. Website, YouTube Channel, Mobile Application.
+ google.ads.googleads.v1.enums.PlacementTypeEnum.PlacementType placement_type = 5;
+}
diff --git a/google/ads/googleads/v1/resources/hotel_group_view.proto b/google/ads/googleads/v1/resources/hotel_group_view.proto
new file mode 100644
index 000000000..5384add73
--- /dev/null
+++ b/google/ads/googleads/v1/resources/hotel_group_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "HotelGroupViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the hotel group view resource.
+
+// A hotel group view.
+message HotelGroupView {
+ // The resource name of the hotel group view.
+ // Hotel Group view resource names have the form:
+ //
+ // `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/hotel_performance_view.proto b/google/ads/googleads/v1/resources/hotel_performance_view.proto
new file mode 100644
index 000000000..3a815fd92
--- /dev/null
+++ b/google/ads/googleads/v1/resources/hotel_performance_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "HotelPerformanceViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the hotel performance view resource.
+
+// A hotel performance view.
+message HotelPerformanceView {
+ // The resource name of the hotel performance view.
+ // Hotel performance view resource names have the form:
+ //
+ // `customers/{customer_id}/hotelPerformanceView`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/keyword_plan.proto b/google/ads/googleads/v1/resources/keyword_plan.proto
new file mode 100644
index 000000000..75ebfea5d
--- /dev/null
+++ b/google/ads/googleads/v1/resources/keyword_plan.proto
@@ -0,0 +1,71 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/dates.proto";
+import "google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the keyword plan resource.
+
+// A Keyword Planner plan.
+// Max number of saved keyword plans: 10000.
+// It's possible to remove plans if limit is reached.
+message KeywordPlan {
+ // The resource name of the Keyword Planner plan.
+ // KeywordPlan resource names have the form:
+ //
+ // `customers/{customer_id}/keywordPlans/{kp_plan_id}`
+ string resource_name = 1;
+
+ // The ID of the keyword plan.
+ google.protobuf.Int64Value id = 2;
+
+ // The name of the keyword plan.
+ //
+ // This field is required and should not be empty when creating new keyword
+ // plans.
+ google.protobuf.StringValue name = 3;
+
+ // The date period used for forecasting the plan.
+ KeywordPlanForecastPeriod forecast_period = 4;
+}
+
+// The forecasting period associated with the keyword plan.
+message KeywordPlanForecastPeriod {
+ // Required. The date used for forecasting the Plan.
+ oneof interval {
+ // A future date range relative to the current date used for forecasting.
+ google.ads.googleads.v1.enums.KeywordPlanForecastIntervalEnum.KeywordPlanForecastInterval date_interval = 1;
+
+ // The custom date range used for forecasting.
+ // The start and end dates must be in the future. Otherwise, an error will
+ // be returned when the forecasting action is performed.
+ google.ads.googleads.v1.common.DateRange date_range = 2;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/keyword_plan_ad_group.proto b/google/ads/googleads/v1/resources/keyword_plan_ad_group.proto
new file mode 100644
index 000000000..ce47f1a81
--- /dev/null
+++ b/google/ads/googleads/v1/resources/keyword_plan_ad_group.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanAdGroupProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the keyword plan ad group resource.
+
+// A Keyword Planner ad group.
+// Max number of keyword plan ad groups per plan: 200.
+message KeywordPlanAdGroup {
+ // The resource name of the Keyword Planner ad group.
+ // KeywordPlanAdGroup resource names have the form:
+ //
+ // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`
+ string resource_name = 1;
+
+ // The keyword plan campaign to which this ad group belongs.
+ google.protobuf.StringValue keyword_plan_campaign = 2;
+
+ // The ID of the keyword plan ad group.
+ google.protobuf.Int64Value id = 3;
+
+ // The name of the keyword plan ad group.
+ //
+ // This field is required and should not be empty when creating keyword plan
+ // ad group.
+ google.protobuf.StringValue name = 4;
+
+ // A default ad group max cpc bid in micros in account currency for all
+ // biddable keywords under the keyword plan ad group.
+ // If not set, will inherit from parent campaign.
+ google.protobuf.Int64Value cpc_bid_micros = 5;
+}
diff --git a/google/ads/googleads/v1/resources/keyword_plan_campaign.proto b/google/ads/googleads/v1/resources/keyword_plan_campaign.proto
new file mode 100644
index 000000000..6a154d3cb
--- /dev/null
+++ b/google/ads/googleads/v1/resources/keyword_plan_campaign.proto
@@ -0,0 +1,83 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/keyword_plan_network.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanCampaignProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the keyword plan campaign resource.
+
+// A Keyword Plan campaign.
+// Max number of keyword plan campaigns per plan allowed: 1.
+message KeywordPlanCampaign {
+ // The resource name of the Keyword Plan campaign.
+ // KeywordPlanCampaign resource names have the form:
+ //
+ // `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}`
+ string resource_name = 1;
+
+ // The keyword plan this campaign belongs to.
+ google.protobuf.StringValue keyword_plan = 2;
+
+ // The ID of the Keyword Plan campaign.
+ google.protobuf.Int64Value id = 3;
+
+ // The name of the Keyword Plan campaign.
+ //
+ // This field is required and should not be empty when creating Keyword Plan
+ // campaigns.
+ google.protobuf.StringValue name = 4;
+
+ // The languages targeted for the Keyword Plan campaign.
+ // Max allowed: 1.
+ repeated google.protobuf.StringValue language_constants = 5;
+
+ // Targeting network.
+ //
+ // This field is required and should not be empty when creating Keyword Plan
+ // campaigns.
+ google.ads.googleads.v1.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 6;
+
+ // A default max cpc bid in micros, and in the account currency, for all ad
+ // groups under the campaign.
+ //
+ // This field is required and should not be empty when creating Keyword Plan
+ // campaigns.
+ google.protobuf.Int64Value cpc_bid_micros = 7;
+
+ // The geo targets.
+ // Max number allowed: 20.
+ repeated KeywordPlanGeoTarget geo_targets = 8;
+}
+
+// A geo target.
+// Next ID: 3
+message KeywordPlanGeoTarget {
+ // Required. The resource name of the geo target.
+ google.protobuf.StringValue geo_target_constant = 1;
+}
diff --git a/google/ads/googleads/v1/resources/keyword_plan_keyword.proto b/google/ads/googleads/v1/resources/keyword_plan_keyword.proto
new file mode 100644
index 000000000..b88da5490
--- /dev/null
+++ b/google/ads/googleads/v1/resources/keyword_plan_keyword.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/keyword_match_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanKeywordProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the keyword plan keyword resource.
+
+// A Keyword Plan ad group keyword.
+// Max number of keyword plan keywords per plan: 2500.
+message KeywordPlanKeyword {
+ // The resource name of the Keyword Plan ad group keyword.
+ // KeywordPlanKeyword resource names have the form:
+ //
+ // `customers/{customer_id}/keywordPlanKeywords/{kp_ad_group_keyword_id}`
+ string resource_name = 1;
+
+ // The Keyword Plan ad group to which this keyword belongs.
+ google.protobuf.StringValue keyword_plan_ad_group = 2;
+
+ // The ID of the Keyword Plan keyword.
+ google.protobuf.Int64Value id = 3;
+
+ // The keyword text.
+ google.protobuf.StringValue text = 4;
+
+ // The keyword match type.
+ google.ads.googleads.v1.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5;
+
+ // A keyword level max cpc bid in micros, in the account currency, that
+ // overrides the keyword plan ad group cpc bid.
+ google.protobuf.Int64Value cpc_bid_micros = 6;
+}
diff --git a/google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto b/google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto
new file mode 100644
index 000000000..5c6b7996f
--- /dev/null
+++ b/google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/keyword_match_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanNegativeKeywordProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the keyword plan negative keyword resource.
+
+// A Keyword Plan negative keyword.
+// Max number of keyword plan negative keywords per plan: 1000.
+message KeywordPlanNegativeKeyword {
+ // The resource name of the Keyword Plan negative keyword.
+ // KeywordPlanNegativeKeyword resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/keywordPlanNegativeKeywords/{kp_negative_keyword_id}`
+ string resource_name = 1;
+
+ // The Keyword Plan campaign to which this negative keyword belongs.
+ google.protobuf.StringValue keyword_plan_campaign = 2;
+
+ // The ID of the Keyword Plan negative keyword.
+ google.protobuf.Int64Value id = 3;
+
+ // The keyword text.
+ google.protobuf.StringValue text = 4;
+
+ // The keyword match type.
+ google.ads.googleads.v1.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5;
+}
diff --git a/google/ads/googleads/v1/resources/keyword_view.proto b/google/ads/googleads/v1/resources/keyword_view.proto
new file mode 100644
index 000000000..90fba7058
--- /dev/null
+++ b/google/ads/googleads/v1/resources/keyword_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the keyword view resource.
+
+// A keyword view.
+message KeywordView {
+ // The resource name of the keyword view.
+ // Keyword view resource names have the form:
+ //
+ // `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/label.proto b/google/ads/googleads/v1/resources/label.proto
new file mode 100644
index 000000000..647110a9d
--- /dev/null
+++ b/google/ads/googleads/v1/resources/label.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/text_label.proto";
+import "google/ads/googleads/v1/enums/label_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "LabelProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// A label.
+message Label {
+ // Name of the resource.
+ // Label resource names have the form:
+ // `customers/{customer_id}/labels/{label_id}`
+ string resource_name = 1;
+
+ // Id of the label. Read only.
+ google.protobuf.Int64Value id = 2;
+
+ // The name of the label.
+ //
+ // This field is required and should not be empty when creating a new label.
+ //
+ // The length of this string should be between 1 and 80, inclusive.
+ google.protobuf.StringValue name = 3;
+
+ // Status of the label. Read only.
+ google.ads.googleads.v1.enums.LabelStatusEnum.LabelStatus status = 4;
+
+ // A type of label displaying text on a colored background.
+ google.ads.googleads.v1.common.TextLabel text_label = 5;
+}
diff --git a/google/ads/googleads/v1/resources/language_constant.proto b/google/ads/googleads/v1/resources/language_constant.proto
new file mode 100644
index 000000000..9141c413f
--- /dev/null
+++ b/google/ads/googleads/v1/resources/language_constant.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "LanguageConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the language constant resource.
+
+// A language.
+message LanguageConstant {
+ // The resource name of the language constant.
+ // Language constant resource names have the form:
+ //
+ // `languageConstants/{criterion_id}`
+ string resource_name = 1;
+
+ // The ID of the language constant.
+ google.protobuf.Int64Value id = 2;
+
+ // The language code, e.g. "en_US", "en_AU", "es", "fr", etc.
+ google.protobuf.StringValue code = 3;
+
+ // The full name of the language in English, e.g., "English (US)", "Spanish",
+ // etc.
+ google.protobuf.StringValue name = 4;
+
+ // Whether the language is targetable.
+ google.protobuf.BoolValue targetable = 5;
+}
diff --git a/google/ads/googleads/v1/resources/location_view.proto b/google/ads/googleads/v1/resources/location_view.proto
new file mode 100644
index 000000000..68d43e6de
--- /dev/null
+++ b/google/ads/googleads/v1/resources/location_view.proto
@@ -0,0 +1,41 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "LocationViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the location view resource.
+
+// A location view summarizes the performance of campaigns by
+// Location criteria.
+message LocationView {
+ // The resource name of the location view.
+ // Location view resource names have the form:
+ //
+ // `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/managed_placement_view.proto b/google/ads/googleads/v1/resources/managed_placement_view.proto
new file mode 100644
index 000000000..4e6b4ab4a
--- /dev/null
+++ b/google/ads/googleads/v1/resources/managed_placement_view.proto
@@ -0,0 +1,41 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ManagedPlacementViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Managed Placement view resource.
+
+// A managed placement view.
+message ManagedPlacementView {
+ // The resource name of the Managed Placement view.
+ // Managed placement view resource names have the form:
+ //
+ //
+ // `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/media_file.proto b/google/ads/googleads/v1/resources/media_file.proto
new file mode 100644
index 000000000..ecf8d8322
--- /dev/null
+++ b/google/ads/googleads/v1/resources/media_file.proto
@@ -0,0 +1,114 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/media_type.proto";
+import "google/ads/googleads/v1/enums/mime_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "MediaFileProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the media file resource.
+
+// A media file.
+message MediaFile {
+ // The resource name of the media file.
+ // Media file resource names have the form:
+ //
+ // `customers/{customer_id}/mediaFiles/{media_file_id}`
+ string resource_name = 1;
+
+ // The ID of the media file.
+ google.protobuf.Int64Value id = 2;
+
+ // Type of the media file.
+ google.ads.googleads.v1.enums.MediaTypeEnum.MediaType type = 5;
+
+ // The mime type of the media file.
+ google.ads.googleads.v1.enums.MimeTypeEnum.MimeType mime_type = 6;
+
+ // The URL of where the original media file was downloaded from (or a file
+ // name).
+ google.protobuf.StringValue source_url = 7;
+
+ // The name of the media file. The name can be used by clients to help
+ // identify previously uploaded media.
+ google.protobuf.StringValue name = 8;
+
+ // The size of the media file in bytes.
+ google.protobuf.Int64Value file_size = 9;
+
+ // The specific type of the media file.
+ oneof mediatype {
+ // Encapsulates an Image.
+ MediaImage image = 3;
+
+ // A ZIP archive media the content of which contains HTML5 assets.
+ MediaBundle media_bundle = 4;
+
+ // Encapsulates an Audio.
+ MediaAudio audio = 10;
+
+ // Encapsulates a Video.
+ MediaVideo video = 11;
+ }
+}
+
+// Encapsulates an Image.
+message MediaImage {
+ // Raw image data.
+ google.protobuf.BytesValue data = 1;
+}
+
+// Represents a ZIP archive media the content of which contains HTML5 assets.
+message MediaBundle {
+ // Raw zipped data.
+ google.protobuf.BytesValue data = 1;
+}
+
+// Encapsulates an Audio.
+message MediaAudio {
+ // The duration of the Audio in milliseconds.
+ google.protobuf.Int64Value ad_duration_millis = 1;
+}
+
+// Encapsulates a Video.
+message MediaVideo {
+ // The duration of the Video in milliseconds.
+ google.protobuf.Int64Value ad_duration_millis = 1;
+
+ // The YouTube video ID (as seen in YouTube URLs).
+ google.protobuf.StringValue youtube_video_id = 2;
+
+ // The Advertising Digital Identification code for this video, as defined by
+ // the American Association of Advertising Agencies, used mainly for
+ // television commercials.
+ google.protobuf.StringValue advertising_id_code = 3;
+
+ // The Industry Standard Commercial Identifier code for this video, used
+ // mainly for television commercials.
+ google.protobuf.StringValue isci_code = 4;
+}
diff --git a/google/ads/googleads/v1/resources/merchant_center_link.proto b/google/ads/googleads/v1/resources/merchant_center_link.proto
new file mode 100644
index 000000000..327608e32
--- /dev/null
+++ b/google/ads/googleads/v1/resources/merchant_center_link.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/merchant_center_link_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "MerchantCenterLinkProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Merchant Center link resource.
+
+// A data sharing connection, proposed or in use,
+// between a Google Ads Customer and a Merchant Center account.
+message MerchantCenterLink {
+ // The resource name of the merchant center link.
+ // Merchant center link resource names have the form:
+ //
+ // `customers/{customer_id}/merchantCenterLinks/{merchant_center_id}`
+ string resource_name = 1;
+
+ // The ID of the Merchant Center account.
+ // This field is readonly.
+ google.protobuf.Int64Value id = 3;
+
+ // The name of the Merchant Center account.
+ // This field is readonly.
+ google.protobuf.StringValue merchant_center_account_name = 4;
+
+ // The status of the link.
+ google.ads.googleads.v1.enums.MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus status = 5;
+}
diff --git a/google/ads/googleads/v1/resources/mobile_app_category_constant.proto b/google/ads/googleads/v1/resources/mobile_app_category_constant.proto
new file mode 100644
index 000000000..0ef7d0766
--- /dev/null
+++ b/google/ads/googleads/v1/resources/mobile_app_category_constant.proto
@@ -0,0 +1,47 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "MobileAppCategoryConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Mobile App Category Constant resource.
+
+// A mobile application category constant.
+message MobileAppCategoryConstant {
+ // The resource name of the mobile app category constant.
+ // Mobile app category constant resource names have the form:
+ //
+ // `mobileAppCategoryConstants/{mobile_app_category_id}`
+ string resource_name = 1;
+
+ // The ID of the mobile app category constant.
+ google.protobuf.Int32Value id = 2;
+
+ // Mobile app category name.
+ google.protobuf.StringValue name = 3;
+}
diff --git a/google/ads/googleads/v1/resources/mobile_device_constant.proto b/google/ads/googleads/v1/resources/mobile_device_constant.proto
new file mode 100644
index 000000000..6169cd2c1
--- /dev/null
+++ b/google/ads/googleads/v1/resources/mobile_device_constant.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/mobile_device_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "MobileDeviceConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the mobile device constant resource.
+
+// A mobile device constant.
+message MobileDeviceConstant {
+ // The resource name of the mobile device constant.
+ // Mobile device constant resource names have the form:
+ //
+ // `mobileDeviceConstants/{criterion_id}`
+ string resource_name = 1;
+
+ // The ID of the mobile device constant.
+ google.protobuf.Int64Value id = 2;
+
+ // The name of the mobile device.
+ google.protobuf.StringValue name = 3;
+
+ // The manufacturer of the mobile device.
+ google.protobuf.StringValue manufacturer_name = 4;
+
+ // The operating system of the mobile device.
+ google.protobuf.StringValue operating_system_name = 5;
+
+ // The type of mobile device.
+ google.ads.googleads.v1.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6;
+}
diff --git a/google/ads/googleads/v1/resources/mutate_job.proto b/google/ads/googleads/v1/resources/mutate_job.proto
new file mode 100644
index 000000000..4293d4a2b
--- /dev/null
+++ b/google/ads/googleads/v1/resources/mutate_job.proto
@@ -0,0 +1,80 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/mutate_job_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "MutateJobProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the mutate job resource.
+
+// A list of mutates being processed asynchronously. The mutates are uploaded
+// by the user. The mutates themselves aren’t readable and the results of the
+// job can only be read using MutateJobService.ListMutateJobResults.
+message MutateJob {
+ // Additional information about the mutate job. This message is also used as
+ // metadata returned in mutate job Long Running Operations.
+ message MutateJobMetadata {
+ // The time when this mutate job was created.
+ // Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00"
+ google.protobuf.StringValue creation_date_time = 1;
+
+ // The time when this mutate job was completed.
+ // Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00"
+ google.protobuf.StringValue completion_date_time = 2;
+
+ // The fraction (between 0.0 and 1.0) of mutates that have been processed.
+ // This is empty if the job hasn't started running yet.
+ google.protobuf.DoubleValue estimated_completion_ratio = 3;
+
+ // The number of mutate operations in the mutate job.
+ google.protobuf.Int64Value operation_count = 4;
+
+ // The number of mutate operations executed by the mutate job.
+ // Present only if the job has started running.
+ google.protobuf.Int64Value executed_operation_count = 5;
+ }
+
+ // The resource name of the mutate job.
+ // Mutate job resource names have the form:
+ //
+ // `customers/{customer_id}/mutateJobs/{mutate_job_id}`
+ string resource_name = 1;
+
+ // ID of this mutate job.
+ google.protobuf.Int64Value id = 2;
+
+ // The next sequence token to use when adding operations. Only set when the
+ // mutate job status is PENDING.
+ google.protobuf.StringValue next_add_sequence_token = 3;
+
+ // Contains additional information about this mutate job.
+ MutateJobMetadata metadata = 4;
+
+ // Status of this mutate job.
+ google.ads.googleads.v1.enums.MutateJobStatusEnum.MutateJobStatus status = 5;
+}
diff --git a/google/ads/googleads/v1/resources/operating_system_version_constant.proto b/google/ads/googleads/v1/resources/operating_system_version_constant.proto
new file mode 100644
index 000000000..c859e324d
--- /dev/null
+++ b/google/ads/googleads/v1/resources/operating_system_version_constant.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/operating_system_version_operator_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "OperatingSystemVersionConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the operating system version constant resource.
+
+// A mobile operating system version or a range of versions, depending on
+// 'operator_type'. The complete list of available mobile platforms is available
+// <a
+//
+// href="https://developers.google.com/adwords/api/docs/appendix/codes-formats#mobile-platforms>
+// here</a>.
+message OperatingSystemVersionConstant {
+ // The resource name of the operating system version constant.
+ // Operating system version constant resource names have the form:
+ //
+ // `operatingSystemVersionConstants/{criterion_id}`
+ string resource_name = 1;
+
+ // The ID of the operating system version.
+ google.protobuf.Int64Value id = 2;
+
+ // Name of the operating system.
+ google.protobuf.StringValue name = 3;
+
+ // The OS Major Version number.
+ google.protobuf.Int32Value os_major_version = 4;
+
+ // The OS Minor Version number.
+ google.protobuf.Int32Value os_minor_version = 5;
+
+ // Determines whether this constant represents a single version or a range of
+ // versions.
+ google.ads.googleads.v1.enums.OperatingSystemVersionOperatorTypeEnum.OperatingSystemVersionOperatorType operator_type = 6;
+}
diff --git a/google/ads/googleads/v1/resources/parental_status_view.proto b/google/ads/googleads/v1/resources/parental_status_view.proto
new file mode 100644
index 000000000..d48a10fb6
--- /dev/null
+++ b/google/ads/googleads/v1/resources/parental_status_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ParentalStatusViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the parental status view resource.
+
+// A parental status view.
+message ParentalStatusView {
+ // The resource name of the parental status view.
+ // Parental Status view resource names have the form:
+ //
+ // `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/payments_account.proto b/google/ads/googleads/v1/resources/payments_account.proto
new file mode 100644
index 000000000..e333eecd5
--- /dev/null
+++ b/google/ads/googleads/v1/resources/payments_account.proto
@@ -0,0 +1,60 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "PaymentsAccountProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the PaymentsAccount resource.
+
+// A Payments account, which can be used to set up billing for an Ads customer.
+message PaymentsAccount {
+ // The resource name of the Payments account.
+ // PaymentsAccount resource names have the form:
+ //
+ // `customers/{customer_id}/paymentsAccounts/{payments_account_id}`
+ string resource_name = 1;
+
+ // A 16 digit ID used to identify a Payments account.
+ google.protobuf.StringValue payments_account_id = 2;
+
+ // The name of the Payments account.
+ google.protobuf.StringValue name = 3;
+
+ // The currency code of the Payments account.
+ // A subset of the currency codes derived from the ISO 4217 standard is
+ // supported.
+ google.protobuf.StringValue currency_code = 4;
+
+ // A 12 digit ID used to identify the Payments profile associated with the
+ // Payments account.
+ google.protobuf.StringValue payments_profile_id = 5;
+
+ // A secondary Payments profile ID present in uncommon situations, e.g.
+ // when a sequential liability agreement has been arranged.
+ google.protobuf.StringValue secondary_payments_profile_id = 6;
+}
diff --git a/google/ads/googleads/v1/resources/product_bidding_category_constant.proto b/google/ads/googleads/v1/resources/product_bidding_category_constant.proto
new file mode 100644
index 000000000..e482db099
--- /dev/null
+++ b/google/ads/googleads/v1/resources/product_bidding_category_constant.proto
@@ -0,0 +1,68 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/product_bidding_category_level.proto";
+import "google/ads/googleads/v1/enums/product_bidding_category_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ProductBiddingCategoryConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the ProductBiddingCategoryConstant resource.
+
+// A Product Bidding Category.
+message ProductBiddingCategoryConstant {
+ // The resource name of the product bidding category.
+ // Product bidding category resource names have the form:
+ //
+ // `productBiddingCategoryConstants/{country_code}~{level}~{id}`
+ string resource_name = 1;
+
+ // ID of the product bidding category.
+ //
+ // This ID is equivalent to the google_product_category ID as described in
+ // this article: https://support.google.com/merchants/answer/6324436.
+ google.protobuf.Int64Value id = 2;
+
+ // Two-letter upper-case country code of the product bidding category.
+ google.protobuf.StringValue country_code = 3;
+
+ // Resource name of the parent product bidding category.
+ google.protobuf.StringValue product_bidding_category_constant_parent = 4;
+
+ // Level of the product bidding category.
+ google.ads.googleads.v1.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 5;
+
+ // Status of the product bidding category.
+ google.ads.googleads.v1.enums.ProductBiddingCategoryStatusEnum.ProductBiddingCategoryStatus status = 6;
+
+ // Language code of the product bidding category.
+ google.protobuf.StringValue language_code = 7;
+
+ // Display value of the product bidding category localized according to
+ // language_code.
+ google.protobuf.StringValue localized_name = 8;
+}
diff --git a/google/ads/googleads/v1/resources/product_group_view.proto b/google/ads/googleads/v1/resources/product_group_view.proto
new file mode 100644
index 000000000..cc176d6f4
--- /dev/null
+++ b/google/ads/googleads/v1/resources/product_group_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ProductGroupViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ProductGroup View resource.
+
+// A product group view.
+message ProductGroupView {
+ // The resource name of the product group view.
+ // Product group view resource names have the form:
+ //
+ // `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/recommendation.proto b/google/ads/googleads/v1/resources/recommendation.proto
new file mode 100644
index 000000000..207995b8f
--- /dev/null
+++ b/google/ads/googleads/v1/resources/recommendation.proto
@@ -0,0 +1,264 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/keyword_match_type.proto";
+import "google/ads/googleads/v1/enums/recommendation_type.proto";
+import "google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto";
+import "google/ads/googleads/v1/resources/ad.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "RecommendationProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Recommendation resource.
+
+// A recommendation.
+message Recommendation {
+ // The impact of making the change as described in the recommendation.
+ // Some types of recommendations may not have impact information.
+ message RecommendationImpact {
+ // Base metrics at the time the recommendation was generated.
+ RecommendationMetrics base_metrics = 1;
+
+ // Estimated metrics if the recommendation is applied.
+ RecommendationMetrics potential_metrics = 2;
+ }
+
+ // Weekly account performance metrics. For some recommendation types, these
+ // are averaged over the past 90-day period and hence can be fractional.
+ message RecommendationMetrics {
+ // Number of ad impressions.
+ google.protobuf.DoubleValue impressions = 1;
+
+ // Number of ad clicks.
+ google.protobuf.DoubleValue clicks = 2;
+
+ // Cost (in micros) for advertising, in the local currency for the account.
+ google.protobuf.Int64Value cost_micros = 3;
+
+ // Number of conversions.
+ google.protobuf.DoubleValue conversions = 4;
+
+ // Number of video views for a video ad campaign.
+ google.protobuf.DoubleValue video_views = 5;
+ }
+
+ // The budget recommendation for budget constrained campaigns.
+ message CampaignBudgetRecommendation {
+ // The impact estimates for a given budget amount.
+ message CampaignBudgetRecommendationOption {
+ // The budget amount for this option.
+ google.protobuf.Int64Value budget_amount_micros = 1;
+
+ // The impact estimate if budget is changed to amount specified in this
+ // option.
+ RecommendationImpact impact = 2;
+ }
+
+ // The current budget amount in micros.
+ google.protobuf.Int64Value current_budget_amount_micros = 1;
+
+ // The recommended budget amount in micros.
+ google.protobuf.Int64Value recommended_budget_amount_micros = 2;
+
+ // The budget amounts and associated impact estimates for some values of
+ // possible budget amounts.
+ repeated CampaignBudgetRecommendationOption budget_options = 3;
+ }
+
+ // The keyword recommendation.
+ message KeywordRecommendation {
+ // The recommended keyword.
+ google.ads.googleads.v1.common.KeywordInfo keyword = 1;
+
+ // The recommended CPC (cost-per-click) bid.
+ google.protobuf.Int64Value recommended_cpc_bid_micros = 2;
+ }
+
+ // The Target CPA opt-in recommendation.
+ message TargetCpaOptInRecommendation {
+ // The Target CPA opt-in option with impact estimate.
+ message TargetCpaOptInRecommendationOption {
+ // The goal achieved by this option.
+ google.ads.googleads.v1.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal goal = 1;
+
+ // Average CPA target.
+ google.protobuf.Int64Value target_cpa_micros = 2;
+
+ // The minimum campaign budget, in local currency for the account,
+ // required to achieve the target CPA.
+ // Amount is specified in micros, where one million is equivalent to one
+ // currency unit.
+ google.protobuf.Int64Value required_campaign_budget_amount_micros = 3;
+
+ // The impact estimate if this option is selected.
+ RecommendationImpact impact = 4;
+ }
+
+ // The available goals and corresponding options for Target CPA strategy.
+ repeated TargetCpaOptInRecommendationOption options = 1;
+
+ // The recommended average CPA target. See required budget amount and impact
+ // of using this recommendation in options list.
+ google.protobuf.Int64Value recommended_target_cpa_micros = 2;
+ }
+
+ // The move unused budget recommendation.
+ message MoveUnusedBudgetRecommendation {
+ // The excess budget's resource_name.
+ google.protobuf.StringValue excess_campaign_budget = 1;
+
+ // The recommendation for the constrained budget to increase.
+ CampaignBudgetRecommendation budget_recommendation = 2;
+ }
+
+ // The text ad recommendation.
+ message TextAdRecommendation {
+ // Recommended ad.
+ Ad ad = 1;
+
+ // Creation date of the recommended ad.
+ // YYYY-MM-DD format, e.g., 2018-04-17.
+ google.protobuf.StringValue creation_date = 2;
+
+ // Date, if present, is the earliest when the recommendation will be auto
+ // applied.
+ // YYYY-MM-DD format, e.g., 2018-04-17.
+ google.protobuf.StringValue auto_apply_date = 3;
+ }
+
+ // The Maximize Conversions Opt-In recommendation.
+ message MaximizeConversionsOptInRecommendation {
+ // The recommended new budget amount.
+ google.protobuf.Int64Value recommended_budget_amount_micros = 1;
+ }
+
+ // The Enhanced Cost-Per-Click Opt-In recommendation.
+ message EnhancedCpcOptInRecommendation {
+
+ }
+
+ // The Maximize Clicks opt-in recommendation.
+ message MaximizeClicksOptInRecommendation {
+ // The recommended new budget amount.
+ // Only set if the current budget is too high.
+ google.protobuf.Int64Value recommended_budget_amount_micros = 1;
+ }
+
+ // The Optimize Ad Rotation recommendation.
+ message OptimizeAdRotationRecommendation {
+
+ }
+
+ // The Search Partners Opt-In recommendation.
+ message SearchPartnersOptInRecommendation {
+
+ }
+
+ // The keyword match type recommendation.
+ message KeywordMatchTypeRecommendation {
+ // The existing keyword where the match type should be more broad.
+ google.ads.googleads.v1.common.KeywordInfo keyword = 1;
+
+ // The recommended new match type.
+ google.ads.googleads.v1.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2;
+ }
+
+ // The resource name of the recommendation.
+ //
+ // `customers/{customer_id}/recommendations/{recommendation_id}`
+ string resource_name = 1;
+
+ // The type of recommendation.
+ google.ads.googleads.v1.enums.RecommendationTypeEnum.RecommendationType type = 2;
+
+ // The impact on account performance as a result of applying the
+ // recommendation.
+ RecommendationImpact impact = 3;
+
+ // The budget targeted by this recommendation. This will be set only when
+ // the recommendation affects a single campaign budget.
+ //
+ // This field will be set for the following recommendation types:
+ // CAMPAIGN_BUDGET
+ google.protobuf.StringValue campaign_budget = 5;
+
+ // The campaign targeted by this recommendation. This will be set only when
+ // the recommendation affects a single campaign.
+ //
+ // This field will be set for the following recommendation types:
+ // ENHANCED_CPC_OPT_IN, KEYWORD, MAXIMIZE_CLICKS_OPT_IN,
+ // MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, SEARCH_PARTNERS_OPT_IN,
+ // TARGET_CPA_OPT_IN, TEXT_AD
+ google.protobuf.StringValue campaign = 6;
+
+ // The ad group targeted by this recommendation. This will be set only when
+ // the recommendation affects a single ad group.
+ //
+ // This field will be set for the following recommendation types:
+ // KEYWORD, OPTIMIZE_AD_ROTATION, TEXT_AD
+ google.protobuf.StringValue ad_group = 7;
+
+ // Whether the recommendation is dismissed or not.
+ google.protobuf.BoolValue dismissed = 13;
+
+ // The details of recommendation.
+ oneof recommendation {
+ // The campaign budget recommendation.
+ CampaignBudgetRecommendation campaign_budget_recommendation = 4;
+
+ // The keyword recommendation.
+ KeywordRecommendation keyword_recommendation = 8;
+
+ // Add expanded text ad recommendation.
+ TextAdRecommendation text_ad_recommendation = 9;
+
+ // The TargetCPA opt-in recommendation.
+ TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10;
+
+ // The MaximizeConversions Opt-In recommendation.
+ MaximizeConversionsOptInRecommendation maximize_conversions_opt_in_recommendation = 11;
+
+ // The Enhanced Cost-Per-Click Opt-In recommendation.
+ EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12;
+
+ // The Search Partners Opt-In recommendation.
+ SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14;
+
+ // The MaximizeClicks Opt-In recommendation.
+ MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15;
+
+ // The Optimize Ad Rotation recommendation.
+ OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16;
+
+ // The keyword match type recommendation.
+ KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20;
+
+ // The move unused budget recommendation.
+ MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/remarketing_action.proto b/google/ads/googleads/v1/resources/remarketing_action.proto
new file mode 100644
index 000000000..907e64552
--- /dev/null
+++ b/google/ads/googleads/v1/resources/remarketing_action.proto
@@ -0,0 +1,56 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/tag_snippet.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "RemarketingActionProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Remarketing Action resource.
+
+// A remarketing action. A snippet of JavaScript code that will collect the
+// product id and the type of page people visited (product page, shopping cart
+// page, purchase page, general site visit) on an advertiser's website.
+message RemarketingAction {
+ // The resource name of the remarketing action.
+ // Remarketing action resource names have the form:
+ //
+ // `customers/{customer_id}/remarketingActions/{remarketing_action_id}`
+ string resource_name = 1;
+
+ // Id of the remarketing action.
+ google.protobuf.Int64Value id = 2;
+
+ // The name of the remarketing action.
+ //
+ // This field is required and should not be empty when creating new
+ // remarketing actions.
+ google.protobuf.StringValue name = 3;
+
+ // The snippets used for tracking remarketing actions.
+ repeated google.ads.googleads.v1.common.TagSnippet tag_snippets = 4;
+}
diff --git a/google/ads/googleads/v1/resources/search_term_view.proto b/google/ads/googleads/v1/resources/search_term_view.proto
new file mode 100644
index 000000000..59681b344
--- /dev/null
+++ b/google/ads/googleads/v1/resources/search_term_view.proto
@@ -0,0 +1,54 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/search_term_targeting_status.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "SearchTermViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the SearchTermView resource.
+
+// A search term view with metrics aggregated by search term at the ad group
+// level.
+message SearchTermView {
+ // The resource name of the search term view.
+ // Search term view resource names have the form:
+ //
+ // `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~
+ // {URL-base64 search term}`
+ string resource_name = 1;
+
+ // The search term.
+ google.protobuf.StringValue search_term = 2;
+
+ // The ad group the search term served in.
+ google.protobuf.StringValue ad_group = 3;
+
+ // Indicates whether the search term is currently one of your
+ // targeted or excluded keywords.
+ google.ads.googleads.v1.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatus status = 4;
+}
diff --git a/google/ads/googleads/v1/resources/shared_criterion.proto b/google/ads/googleads/v1/resources/shared_criterion.proto
new file mode 100644
index 000000000..673200924
--- /dev/null
+++ b/google/ads/googleads/v1/resources/shared_criterion.proto
@@ -0,0 +1,77 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/criterion_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "SharedCriterionProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the SharedCriterion resource.
+
+// A criterion belonging to a shared set.
+message SharedCriterion {
+ // The resource name of the shared criterion.
+ // Shared set resource names have the form:
+ //
+ // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`
+ string resource_name = 1;
+
+ // The shared set to which the shared criterion belongs.
+ google.protobuf.StringValue shared_set = 2;
+
+ // The ID of the criterion.
+ //
+ // This field is ignored for mutates.
+ google.protobuf.Int64Value criterion_id = 26;
+
+ // The type of the criterion.
+ google.ads.googleads.v1.enums.CriterionTypeEnum.CriterionType type = 4;
+
+ // The criterion.
+ //
+ // Exactly one must be set.
+ oneof criterion {
+ // Keyword.
+ google.ads.googleads.v1.common.KeywordInfo keyword = 3;
+
+ // YouTube Video.
+ google.ads.googleads.v1.common.YouTubeVideoInfo youtube_video = 5;
+
+ // YouTube Channel.
+ google.ads.googleads.v1.common.YouTubeChannelInfo youtube_channel = 6;
+
+ // Placement.
+ google.ads.googleads.v1.common.PlacementInfo placement = 7;
+
+ // Mobile App Category.
+ google.ads.googleads.v1.common.MobileAppCategoryInfo mobile_app_category = 8;
+
+ // Mobile application.
+ google.ads.googleads.v1.common.MobileApplicationInfo mobile_application = 9;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/shared_set.proto b/google/ads/googleads/v1/resources/shared_set.proto
new file mode 100644
index 000000000..60762d2e3
--- /dev/null
+++ b/google/ads/googleads/v1/resources/shared_set.proto
@@ -0,0 +1,67 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/enums/shared_set_status.proto";
+import "google/ads/googleads/v1/enums/shared_set_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "SharedSetProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the SharedSet resource.
+
+// SharedSets are used for sharing criterion exclusions across multiple
+// campaigns.
+message SharedSet {
+ // The resource name of the shared set.
+ // Shared set resource names have the form:
+ //
+ // `customers/{customer_id}/sharedSets/{shared_set_id}`
+ string resource_name = 1;
+
+ // The ID of this shared set. Read only.
+ google.protobuf.Int64Value id = 2;
+
+ // The type of this shared set: each shared set holds only a single kind
+ // of resource. Required. Immutable.
+ google.ads.googleads.v1.enums.SharedSetTypeEnum.SharedSetType type = 3;
+
+ // The name of this shared set. Required.
+ // Shared Sets must have names that are unique among active shared sets of
+ // the same type.
+ // The length of this string should be between 1 and 255 UTF-8 bytes,
+ // inclusive.
+ google.protobuf.StringValue name = 4;
+
+ // The status of this shared set. Read only.
+ google.ads.googleads.v1.enums.SharedSetStatusEnum.SharedSetStatus status = 5;
+
+ // The number of shared criteria within this shared set. Read only.
+ google.protobuf.Int64Value member_count = 6;
+
+ // The number of campaigns associated with this shared set. Read only.
+ google.protobuf.Int64Value reference_count = 7;
+}
diff --git a/google/ads/googleads/v1/resources/shopping_performance_view.proto b/google/ads/googleads/v1/resources/shopping_performance_view.proto
new file mode 100644
index 000000000..1fc5bc079
--- /dev/null
+++ b/google/ads/googleads/v1/resources/shopping_performance_view.proto
@@ -0,0 +1,44 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "ShoppingPerformanceViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the ShoppingPerformanceView resource.
+
+// Shopping performance view.
+// Provides Shopping campaign statistics aggregated at several product dimension
+// levels. Product dimension values from Merchant Center such as brand,
+// category, custom attributes, product condition and product type will reflect
+// the state of each dimension as of the date and time when the corresponding
+// event was recorded.
+message ShoppingPerformanceView {
+ // The resource name of the Shopping performance view.
+ // Shopping performance view resource names have the form:
+ // `customers/{customer_id}/shoppingPerformanceView`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/topic_constant.proto b/google/ads/googleads/v1/resources/topic_constant.proto
new file mode 100644
index 000000000..5a25e359a
--- /dev/null
+++ b/google/ads/googleads/v1/resources/topic_constant.proto
@@ -0,0 +1,59 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "TopicConstantProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the Topic Constant resource.
+
+// Use topics to target or exclude placements in the Google Display Network
+// based on the category into which the placement falls (for example,
+// "Pets & Animals/Pets/Dogs").
+message TopicConstant {
+ // The resource name of the topic constant.
+ // topic constant resource names have the form:
+ //
+ // `topicConstants/{topic_id}`
+ string resource_name = 1;
+
+ // The ID of the topic.
+ google.protobuf.Int64Value id = 2;
+
+ // Resource name of parent of the topic constant.
+ google.protobuf.StringValue topic_constant_parent = 3;
+
+ // The category to target or exclude. Each subsequent element in the array
+ // describes a more specific sub-category. For example,
+ // {"Pets & Animals", "Pets", "Dogs"} represents the
+ // "Pets & Animals/Pets/Dogs" category. A complete list of available topic
+ // categories is available
+ // <a
+ // href="https://developers.google.com/adwords/api/docs/appendix/verticals">
+ // here</a>
+ repeated google.protobuf.StringValue path = 4;
+}
diff --git a/google/ads/googleads/v1/resources/topic_view.proto b/google/ads/googleads/v1/resources/topic_view.proto
new file mode 100644
index 000000000..4a0a016a3
--- /dev/null
+++ b/google/ads/googleads/v1/resources/topic_view.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "TopicViewProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the topic view resource.
+
+// A topic view.
+message TopicView {
+ // The resource name of the topic view.
+ // Topic view resource names have the form:
+ //
+ // `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}`
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/resources/user_interest.proto b/google/ads/googleads/v1/resources/user_interest.proto
new file mode 100644
index 000000000..94094864a
--- /dev/null
+++ b/google/ads/googleads/v1/resources/user_interest.proto
@@ -0,0 +1,61 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/criterion_category_availability.proto";
+import "google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "UserInterestProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the User Interest resource.
+
+// A user interest: a particular interest-based vertical to be targeted.
+message UserInterest {
+ // The resource name of the user interest.
+ // User interest resource names have the form:
+ //
+ // `customers/{customer_id}/userInterests/{user_interest_id}`
+ string resource_name = 1;
+
+ // Taxonomy type of the user interest.
+ google.ads.googleads.v1.enums.UserInterestTaxonomyTypeEnum.UserInterestTaxonomyType taxonomy_type = 2;
+
+ // The ID of the user interest.
+ google.protobuf.Int64Value user_interest_id = 3;
+
+ // The name of the user interest.
+ google.protobuf.StringValue name = 4;
+
+ // The parent of the user interest.
+ google.protobuf.StringValue user_interest_parent = 5;
+
+ // True if the user interest is launched to all channels and locales.
+ google.protobuf.BoolValue launched_to_all = 6;
+
+ // Availability information of the user interest.
+ repeated google.ads.googleads.v1.common.CriterionCategoryAvailability availabilities = 7;
+}
diff --git a/google/ads/googleads/v1/resources/user_list.proto b/google/ads/googleads/v1/resources/user_list.proto
new file mode 100644
index 000000000..37acb2c2d
--- /dev/null
+++ b/google/ads/googleads/v1/resources/user_list.proto
@@ -0,0 +1,157 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/ads/googleads/v1/common/user_lists.proto";
+import "google/ads/googleads/v1/enums/access_reason.proto";
+import "google/ads/googleads/v1/enums/user_list_access_status.proto";
+import "google/ads/googleads/v1/enums/user_list_closing_reason.proto";
+import "google/ads/googleads/v1/enums/user_list_membership_status.proto";
+import "google/ads/googleads/v1/enums/user_list_size_range.proto";
+import "google/ads/googleads/v1/enums/user_list_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "UserListProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the User List resource.
+
+// A user list. This is a list of users a customer may target.
+message UserList {
+ // The resource name of the user list.
+ // User list resource names have the form:
+ //
+ // `customers/{customer_id}/userLists/{user_list_id}`
+ string resource_name = 1;
+
+ // Id of the user list.
+ google.protobuf.Int64Value id = 2;
+
+ // A flag that indicates if a user may edit a list. Depends on the list
+ // ownership and list type. For example, external remarketing user lists are
+ // not editable.
+ //
+ // This field is read-only.
+ google.protobuf.BoolValue read_only = 3;
+
+ // Name of this user list. Depending on its access_reason, the user list name
+ // may not be unique (e.g. if access_reason=SHARED)
+ google.protobuf.StringValue name = 4;
+
+ // Description of this user list.
+ google.protobuf.StringValue description = 5;
+
+ // Membership status of this user list. Indicates whether a user list is open
+ // or active. Only open user lists can accumulate more users and can be
+ // targeted to.
+ google.ads.googleads.v1.enums.UserListMembershipStatusEnum.UserListMembershipStatus membership_status = 6;
+
+ // An ID from external system. It is used by user list sellers to correlate
+ // IDs on their systems.
+ google.protobuf.StringValue integration_code = 7;
+
+ // Number of days a user's cookie stays on your list since its most recent
+ // addition to the list. This field must be between 0 and 540 inclusive.
+ // However, for CRM based userlists, this field can be set to 10000 which
+ // means no expiration.
+ //
+ // It'll be ignored for logical_user_list.
+ google.protobuf.Int64Value membership_life_span = 8;
+
+ // Estimated number of users in this user list, on the Google Display Network.
+ // This value is null if the number of users has not yet been determined.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value size_for_display = 9;
+
+ // Size range in terms of number of users of the UserList, on the Google
+ // Display Network.
+ //
+ // This field is read-only.
+ google.ads.googleads.v1.enums.UserListSizeRangeEnum.UserListSizeRange size_range_for_display = 10;
+
+ // Estimated number of users in this user list in the google.com domain.
+ // These are the users available for targeting in Search campaigns.
+ // This value is null if the number of users has not yet been determined.
+ //
+ // This field is read-only.
+ google.protobuf.Int64Value size_for_search = 11;
+
+ // Size range in terms of number of users of the UserList, for Search ads.
+ //
+ // This field is read-only.
+ google.ads.googleads.v1.enums.UserListSizeRangeEnum.UserListSizeRange size_range_for_search = 12;
+
+ // Type of this list.
+ //
+ // This field is read-only.
+ google.ads.googleads.v1.enums.UserListTypeEnum.UserListType type = 13;
+
+ // Indicating the reason why this user list membership status is closed. It is
+ // only populated on lists that were automatically closed due to inactivity,
+ // and will be cleared once the list membership status becomes open.
+ google.ads.googleads.v1.enums.UserListClosingReasonEnum.UserListClosingReason closing_reason = 14;
+
+ // Indicates the reason this account has been granted access to the list.
+ // The reason can be SHARED, OWNED, LICENSED or SUBSCRIBED.
+ //
+ // This field is read-only.
+ google.ads.googleads.v1.enums.AccessReasonEnum.AccessReason access_reason = 15;
+
+ // Indicates if this share is still enabled. When a UserList is shared with
+ // the user this field is set to ENABLED. Later the userList owner can decide
+ // to revoke the share and make it DISABLED.
+ // The default value of this field is set to ENABLED.
+ google.ads.googleads.v1.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16;
+
+ // Indicates if this user list is eligible for Google Search Network.
+ google.protobuf.BoolValue eligible_for_search = 17;
+
+ // Indicates this user list is eligible for Google Display Network.
+ //
+ // This field is read-only.
+ google.protobuf.BoolValue eligible_for_display = 18;
+
+ // The user list.
+ //
+ // Exactly one must be set.
+ oneof user_list {
+ // User list of CRM users provided by the advertiser.
+ google.ads.googleads.v1.common.CrmBasedUserListInfo crm_based_user_list = 19;
+
+ // User list which are similar to users from another UserList.
+ // These lists are readonly and automatically created by google.
+ google.ads.googleads.v1.common.SimilarUserListInfo similar_user_list = 20;
+
+ // User list generated by a rule.
+ google.ads.googleads.v1.common.RuleBasedUserListInfo rule_based_user_list = 21;
+
+ // User list that is a custom combination of user lists and user interests.
+ google.ads.googleads.v1.common.LogicalUserListInfo logical_user_list = 22;
+
+ // User list targeting as a collection of conversion or remarketing actions.
+ google.ads.googleads.v1.common.BasicUserListInfo basic_user_list = 23;
+ }
+}
diff --git a/google/ads/googleads/v1/resources/video.proto b/google/ads/googleads/v1/resources/video.proto
new file mode 100644
index 000000000..4b62393eb
--- /dev/null
+++ b/google/ads/googleads/v1/resources/video.proto
@@ -0,0 +1,53 @@
+// Copyright 2019 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.googleads.v1.resources;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/resources;resources";
+option java_multiple_files = true;
+option java_outer_classname = "VideoProto";
+option java_package = "com.google.ads.googleads.v1.resources";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V1::Resources";
+
+// Proto file describing the video resource.
+
+// A video.
+message Video {
+ // The resource name of the video.
+ // Video resource names have the form:
+ //
+ // `customers/{customer_id}/videos/{video_id}`
+ string resource_name = 1;
+
+ // The ID of the video.
+ google.protobuf.StringValue id = 2;
+
+ // The owner channel id of the video.
+ google.protobuf.StringValue channel_id = 3;
+
+ // The duration of the video in milliseconds.
+ google.protobuf.Int64Value duration_millis = 4;
+
+ // The title of the video.
+ google.protobuf.StringValue title = 5;
+}
diff --git a/google/ads/googleads/v1/services/account_budget_proposal_service.proto b/google/ads/googleads/v1/services/account_budget_proposal_service.proto
new file mode 100644
index 000000000..b14a20623
--- /dev/null
+++ b/google/ads/googleads/v1/services/account_budget_proposal_service.proto
@@ -0,0 +1,126 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/account_budget_proposal.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetProposalServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the AccountBudgetProposal service.
+
+// A service for managing account-level budgets via proposals.
+//
+// A proposal is a request to create a new budget or make changes to an
+// existing one.
+//
+// Reads for account-level budgets managed by these proposals will be
+// supported in a future version. Please use BudgetOrderService until then:
+// https://developers.google.com/adwords/api/docs/guides/budget-order
+//
+// Mutates:
+// The CREATE operation creates a new proposal.
+// UPDATE operations aren't supported.
+// The REMOVE operation cancels a pending proposal.
+service AccountBudgetProposalService {
+ // Returns an account-level budget proposal in full detail.
+ rpc GetAccountBudgetProposal(GetAccountBudgetProposalRequest) returns (google.ads.googleads.v1.resources.AccountBudgetProposal) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/accountBudgetProposals/*}"
+ };
+ }
+
+ // Creates, updates, or removes account budget proposals. Operation statuses
+ // are returned.
+ rpc MutateAccountBudgetProposal(MutateAccountBudgetProposalRequest) returns (MutateAccountBudgetProposalResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/accountBudgetProposals:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [AccountBudgetProposalService.GetAccountBudgetProposal][google.ads.googleads.v1.services.AccountBudgetProposalService.GetAccountBudgetProposal].
+message GetAccountBudgetProposalRequest {
+ // The resource name of the account-level budget proposal to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v1.services.AccountBudgetProposalService.MutateAccountBudgetProposal].
+message MutateAccountBudgetProposalRequest {
+ // The ID of the customer.
+ string customer_id = 1;
+
+ // The operation to perform on an individual account-level budget proposal.
+ AccountBudgetProposalOperation operation = 2;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 3;
+}
+
+// A single operation to propose the creation of a new account-level budget or
+// edit/end/remove an existing one.
+message AccountBudgetProposalOperation {
+ // FieldMask that determines which budget fields are modified. While budgets
+ // may be modified, proposals that propose such modifications are final.
+ // Therefore, update operations are not supported for proposals.
+ //
+ // Proposals that modify budgets have the 'update' proposal type. Specifying
+ // a mask for any other proposal type is considered an error.
+ google.protobuf.FieldMask update_mask = 3;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: A new proposal to create a new budget, edit an
+ // existing budget, end an actively running budget, or remove an approved
+ // budget scheduled to start in the future.
+ // No resource name is expected for the new proposal.
+ google.ads.googleads.v1.resources.AccountBudgetProposal create = 2;
+
+ // Remove operation: A resource name for the removed proposal is expected,
+ // in this format:
+ //
+ //
+ // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
+ // A request may be cancelled iff it is pending.
+ string remove = 1;
+ }
+}
+
+// Response message for account-level budget mutate operations.
+message MutateAccountBudgetProposalResponse {
+ // The result of the mutate.
+ MutateAccountBudgetProposalResult result = 2;
+}
+
+// The result for the account budget proposal mutate.
+message MutateAccountBudgetProposalResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/account_budget_service.proto b/google/ads/googleads/v1/services/account_budget_service.proto
new file mode 100644
index 000000000..d3254277f
--- /dev/null
+++ b/google/ads/googleads/v1/services/account_budget_service.proto
@@ -0,0 +1,51 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/account_budget.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AccountBudgetServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the AccountBudget service.
+
+// A service for fetching an account-level budget.
+//
+// Account-level budgets are mutated by creating proposal resources.
+service AccountBudgetService {
+ // Returns an account-level budget in full detail.
+ rpc GetAccountBudget(GetAccountBudgetRequest) returns (google.ads.googleads.v1.resources.AccountBudget) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/accountBudgets/*}"
+ };
+ }
+}
+
+// Request message for
+// [AccountBudgetService.GetAccountBudget][google.ads.googleads.v1.services.AccountBudgetService.GetAccountBudget].
+message GetAccountBudgetRequest {
+ // The resource name of the account-level budget to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_ad_label_service.proto b/google/ads/googleads/v1/services/ad_group_ad_label_service.proto
new file mode 100644
index 000000000..023c314b9
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_ad_label_service.proto
@@ -0,0 +1,113 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group_ad_label.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAdLabelServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Group Ad Label service.
+
+// Service to manage labels on ad group ads.
+service AdGroupAdLabelService {
+ // Returns the requested ad group ad label in full detail.
+ rpc GetAdGroupAdLabel(GetAdGroupAdLabelRequest) returns (google.ads.googleads.v1.resources.AdGroupAdLabel) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupAdLabels/*}"
+ };
+ }
+
+ // Creates and removes ad group ad labels.
+ // Operation statuses are returned.
+ rpc MutateAdGroupAdLabels(MutateAdGroupAdLabelsRequest) returns (MutateAdGroupAdLabelsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupAdLabels:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdGroupAdLabelService.GetAdGroupAdLabel][google.ads.googleads.v1.services.AdGroupAdLabelService.GetAdGroupAdLabel].
+message GetAdGroupAdLabelRequest {
+ // The resource name of the ad group ad label to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v1.services.AdGroupAdLabelService.MutateAdGroupAdLabels].
+message MutateAdGroupAdLabelsRequest {
+ // ID of the customer whose ad group ad labels are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on ad group ad labels.
+ repeated AdGroupAdLabelOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on an ad group ad label.
+message AdGroupAdLabelOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad group ad
+ // label.
+ google.ads.googleads.v1.resources.AdGroupAdLabel create = 1;
+
+ // Remove operation: A resource name for the ad group ad label
+ // being removed, in this format:
+ //
+ // `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}
+ // _{label_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for an ad group ad labels mutate.
+message MutateAdGroupAdLabelsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupAdLabelResult results = 2;
+}
+
+// The result for an ad group ad label mutate.
+message MutateAdGroupAdLabelResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_ad_service.proto b/google/ads/googleads/v1/services/ad_group_ad_service.proto
new file mode 100644
index 000000000..b45e23b0a
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_ad_service.proto
@@ -0,0 +1,121 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/common/policy.proto";
+import "google/ads/googleads/v1/resources/ad_group_ad.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAdServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Group Ad service.
+
+// Service to manage ads in an ad group.
+service AdGroupAdService {
+ // Returns the requested ad in full detail.
+ rpc GetAdGroupAd(GetAdGroupAdRequest) returns (google.ads.googleads.v1.resources.AdGroupAd) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupAds/*}"
+ };
+ }
+
+ // Creates, updates, or removes ads. Operation statuses are returned.
+ rpc MutateAdGroupAds(MutateAdGroupAdsRequest) returns (MutateAdGroupAdsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupAds:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdGroupAdService.GetAdGroupAd][google.ads.googleads.v1.services.AdGroupAdService.GetAdGroupAd].
+message GetAdGroupAdRequest {
+ // The resource name of the ad to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v1.services.AdGroupAdService.MutateAdGroupAds].
+message MutateAdGroupAdsRequest {
+ // The ID of the customer whose ads are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual ads.
+ repeated AdGroupAdOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an ad group ad.
+message AdGroupAdOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // Configuration for how policies are validated.
+ google.ads.googleads.v1.common.PolicyValidationParameter policy_validation_parameter = 5;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad.
+ google.ads.googleads.v1.resources.AdGroupAd create = 1;
+
+ // Update operation: The ad is expected to have a valid resource name.
+ google.ads.googleads.v1.resources.AdGroupAd update = 2;
+
+ // Remove operation: A resource name for the removed ad is expected,
+ // in this format:
+ //
+ // `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an ad group ad mutate.
+message MutateAdGroupAdsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupAdResult results = 2;
+}
+
+// The result for the ad mutate.
+message MutateAdGroupAdResult {
+ // The resource name returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_audience_view_service.proto b/google/ads/googleads/v1/services/ad_group_audience_view_service.proto
new file mode 100644
index 000000000..f65c31227
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_audience_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group_audience_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupAudienceViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the AdGroup Audience View service.
+
+// Service to manage ad group audience views.
+service AdGroupAudienceViewService {
+ // Returns the requested ad group audience view in full detail.
+ rpc GetAdGroupAudienceView(GetAdGroupAudienceViewRequest) returns (google.ads.googleads.v1.resources.AdGroupAudienceView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupAudienceViews/*}"
+ };
+ }
+}
+
+// Request message for [AdGroupAudienceViewService.GetAdGoupAudienceView][].
+message GetAdGroupAudienceViewRequest {
+ // The resource name of the ad group audience view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto b/google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto
new file mode 100644
index 000000000..c2b0951fc
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto
@@ -0,0 +1,121 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group_bid_modifier.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupBidModifierServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Group Bid Modifier service.
+
+// Service to manage ad group bid modifiers.
+service AdGroupBidModifierService {
+ // Returns the requested ad group bid modifier in full detail.
+ rpc GetAdGroupBidModifier(GetAdGroupBidModifierRequest) returns (google.ads.googleads.v1.resources.AdGroupBidModifier) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupBidModifiers/*}"
+ };
+ }
+
+ // Creates, updates, or removes ad group bid modifiers.
+ // Operation statuses are returned.
+ rpc MutateAdGroupBidModifiers(MutateAdGroupBidModifiersRequest) returns (MutateAdGroupBidModifiersResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupBidModifiers:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdGroupBidModifierService.GetAdGroupBidModifier][google.ads.googleads.v1.services.AdGroupBidModifierService.GetAdGroupBidModifier].
+message GetAdGroupBidModifierRequest {
+ // The resource name of the ad group bid modifier to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v1.services.AdGroupBidModifierService.MutateAdGroupBidModifiers].
+message MutateAdGroupBidModifiersRequest {
+ // ID of the customer whose ad group bid modifiers are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual ad group bid modifiers.
+ repeated AdGroupBidModifierOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove, update) on an ad group bid modifier.
+message AdGroupBidModifierOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad group bid
+ // modifier.
+ google.ads.googleads.v1.resources.AdGroupBidModifier create = 1;
+
+ // Update operation: The ad group bid modifier is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.AdGroupBidModifier update = 2;
+
+ // Remove operation: A resource name for the removed ad group bid modifier
+ // is expected, in this format:
+ //
+ //
+ // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for ad group bid modifiers mutate.
+message MutateAdGroupBidModifiersResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupBidModifierResult results = 2;
+}
+
+// The result for the criterion mutate.
+message MutateAdGroupBidModifierResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_criterion_label_service.proto b/google/ads/googleads/v1/services/ad_group_criterion_label_service.proto
new file mode 100644
index 000000000..5238af362
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_criterion_label_service.proto
@@ -0,0 +1,115 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group_criterion_label.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupCriterionLabelServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Group Criterion Label service.
+
+// Service to manage labels on ad group criteria.
+service AdGroupCriterionLabelService {
+ // Returns the requested ad group criterion label in full detail.
+ rpc GetAdGroupCriterionLabel(GetAdGroupCriterionLabelRequest) returns (google.ads.googleads.v1.resources.AdGroupCriterionLabel) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupCriterionLabels/*}"
+ };
+ }
+
+ // Creates and removes ad group criterion labels.
+ // Operation statuses are returned.
+ rpc MutateAdGroupCriterionLabels(MutateAdGroupCriterionLabelsRequest) returns (MutateAdGroupCriterionLabelsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupCriterionLabels:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [AdGroupCriterionLabelService.GetAdGroupCriterionLabel][google.ads.googleads.v1.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel].
+message GetAdGroupCriterionLabelRequest {
+ // The resource name of the ad group criterion label to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v1.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels].
+message MutateAdGroupCriterionLabelsRequest {
+ // ID of the customer whose ad group criterion labels are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on ad group criterion labels.
+ repeated AdGroupCriterionLabelOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on an ad group criterion label.
+message AdGroupCriterionLabelOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad group
+ // label.
+ google.ads.googleads.v1.resources.AdGroupCriterionLabel create = 1;
+
+ // Remove operation: A resource name for the ad group criterion label
+ // being removed, in this format:
+ //
+ //
+ // `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for an ad group criterion labels mutate.
+message MutateAdGroupCriterionLabelsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupCriterionLabelResult results = 2;
+}
+
+// The result for an ad group criterion label mutate.
+message MutateAdGroupCriterionLabelResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_criterion_service.proto b/google/ads/googleads/v1/services/ad_group_criterion_service.proto
new file mode 100644
index 000000000..ee33089f3
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_criterion_service.proto
@@ -0,0 +1,130 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/common/policy.proto";
+import "google/ads/googleads/v1/resources/ad_group_criterion.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupCriterionServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Group Criterion service.
+
+// Service to manage ad group criteria.
+service AdGroupCriterionService {
+ // Returns the requested criterion in full detail.
+ rpc GetAdGroupCriterion(GetAdGroupCriterionRequest) returns (google.ads.googleads.v1.resources.AdGroupCriterion) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupCriteria/*}"
+ };
+ }
+
+ // Creates, updates, or removes criteria. Operation statuses are returned.
+ rpc MutateAdGroupCriteria(MutateAdGroupCriteriaRequest) returns (MutateAdGroupCriteriaResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupCriteria:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdGroupCriterionService.GetAdGroupCriterion][google.ads.googleads.v1.services.AdGroupCriterionService.GetAdGroupCriterion].
+message GetAdGroupCriterionRequest {
+ // The resource name of the criterion to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v1.services.AdGroupCriterionService.MutateAdGroupCriteria].
+message MutateAdGroupCriteriaRequest {
+ // ID of the customer whose criteria are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual criteria.
+ repeated AdGroupCriterionOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove, update) on an ad group criterion.
+message AdGroupCriterionOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The list of policy violation keys that should not cause a
+ // PolicyViolationError to be reported. Not all policy violations are
+ // exemptable, please refer to the is_exemptible field in the returned
+ // PolicyViolationError.
+ //
+ // Resources violating these polices will be saved, but will not be eligible
+ // to serve. They may begin serving at a later time due to a change in
+ // policies, re-review of the resource, or a change in advertiser
+ // certificates.
+ repeated google.ads.googleads.v1.common.PolicyViolationKey exempt_policy_violation_keys = 5;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new criterion.
+ google.ads.googleads.v1.resources.AdGroupCriterion create = 1;
+
+ // Update operation: The criterion is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.AdGroupCriterion update = 2;
+
+ // Remove operation: A resource name for the removed criterion is expected,
+ // in this format:
+ //
+ // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an ad group criterion mutate.
+message MutateAdGroupCriteriaResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupCriterionResult results = 2;
+}
+
+// The result for the criterion mutate.
+message MutateAdGroupCriterionResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_extension_setting_service.proto b/google/ads/googleads/v1/services/ad_group_extension_setting_service.proto
new file mode 100644
index 000000000..331747dab
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_extension_setting_service.proto
@@ -0,0 +1,124 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group_extension_setting.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupExtensionSettingServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the AdGroupExtensionSetting service.
+
+// Service to manage ad group extension settings.
+service AdGroupExtensionSettingService {
+ // Returns the requested ad group extension setting in full detail.
+ rpc GetAdGroupExtensionSetting(GetAdGroupExtensionSettingRequest) returns (google.ads.googleads.v1.resources.AdGroupExtensionSetting) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupExtensionSettings/*}"
+ };
+ }
+
+ // Creates, updates, or removes ad group extension settings. Operation
+ // statuses are returned.
+ rpc MutateAdGroupExtensionSettings(MutateAdGroupExtensionSettingsRequest) returns (MutateAdGroupExtensionSettingsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupExtensionSettings:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [AdGroupExtensionSettingService.GetAdGroupExtensionSetting][google.ads.googleads.v1.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting].
+message GetAdGroupExtensionSettingRequest {
+ // The resource name of the ad group extension setting to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v1.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings].
+message MutateAdGroupExtensionSettingsRequest {
+ // The ID of the customer whose ad group extension settings are being
+ // modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual ad group extension
+ // settings.
+ repeated AdGroupExtensionSettingOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an ad group extension setting.
+message AdGroupExtensionSettingOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad group
+ // extension setting.
+ google.ads.googleads.v1.resources.AdGroupExtensionSetting create = 1;
+
+ // Update operation: The ad group extension setting is expected to have a
+ // valid resource name.
+ google.ads.googleads.v1.resources.AdGroupExtensionSetting update = 2;
+
+ // Remove operation: A resource name for the removed ad group extension
+ // setting is expected, in this format:
+ //
+ // `customers/{customer_id}/adGroupExtensionSettings/{feed_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an ad group extension setting mutate.
+message MutateAdGroupExtensionSettingsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupExtensionSettingResult results = 2;
+}
+
+// The result for the ad group extension setting mutate.
+message MutateAdGroupExtensionSettingResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_feed_service.proto b/google/ads/googleads/v1/services/ad_group_feed_service.proto
new file mode 100644
index 000000000..5226c7505
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_feed_service.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group_feed.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupFeedServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the AdGroupFeed service.
+
+// Service to manage ad group feeds.
+service AdGroupFeedService {
+ // Returns the requested ad group feed in full detail.
+ rpc GetAdGroupFeed(GetAdGroupFeedRequest) returns (google.ads.googleads.v1.resources.AdGroupFeed) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupFeeds/*}"
+ };
+ }
+
+ // Creates, updates, or removes ad group feeds. Operation statuses are
+ // returned.
+ rpc MutateAdGroupFeeds(MutateAdGroupFeedsRequest) returns (MutateAdGroupFeedsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupFeeds:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdGroupFeedService.GetAdGroupFeed][google.ads.googleads.v1.services.AdGroupFeedService.GetAdGroupFeed].
+message GetAdGroupFeedRequest {
+ // The resource name of the ad group feed to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v1.services.AdGroupFeedService.MutateAdGroupFeeds].
+message MutateAdGroupFeedsRequest {
+ // The ID of the customer whose ad group feeds are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual ad group feeds.
+ repeated AdGroupFeedOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an ad group feed.
+message AdGroupFeedOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad group feed.
+ google.ads.googleads.v1.resources.AdGroupFeed create = 1;
+
+ // Update operation: The ad group feed is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.AdGroupFeed update = 2;
+
+ // Remove operation: A resource name for the removed ad group feed is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an ad group feed mutate.
+message MutateAdGroupFeedsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupFeedResult results = 2;
+}
+
+// The result for the ad group feed mutate.
+message MutateAdGroupFeedResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_label_service.proto b/google/ads/googleads/v1/services/ad_group_label_service.proto
new file mode 100644
index 000000000..069b68cc1
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_label_service.proto
@@ -0,0 +1,112 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group_label.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupLabelServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Group Label service.
+
+// Service to manage labels on ad groups.
+service AdGroupLabelService {
+ // Returns the requested ad group label in full detail.
+ rpc GetAdGroupLabel(GetAdGroupLabelRequest) returns (google.ads.googleads.v1.resources.AdGroupLabel) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroupLabels/*}"
+ };
+ }
+
+ // Creates and removes ad group labels.
+ // Operation statuses are returned.
+ rpc MutateAdGroupLabels(MutateAdGroupLabelsRequest) returns (MutateAdGroupLabelsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroupLabels:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdGroupLabelService.GetAdGroupLabel][google.ads.googleads.v1.services.AdGroupLabelService.GetAdGroupLabel].
+message GetAdGroupLabelRequest {
+ // The resource name of the ad group label to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v1.services.AdGroupLabelService.MutateAdGroupLabels].
+message MutateAdGroupLabelsRequest {
+ // ID of the customer whose ad group labels are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on ad group labels.
+ repeated AdGroupLabelOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on an ad group label.
+message AdGroupLabelOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad group
+ // label.
+ google.ads.googleads.v1.resources.AdGroupLabel create = 1;
+
+ // Remove operation: A resource name for the ad group label
+ // being removed, in this format:
+ //
+ // `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for an ad group labels mutate.
+message MutateAdGroupLabelsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupLabelResult results = 2;
+}
+
+// The result for an ad group label mutate.
+message MutateAdGroupLabelResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_group_service.proto b/google/ads/googleads/v1/services/ad_group_service.proto
new file mode 100644
index 000000000..e72a45a5b
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_group_service.proto
@@ -0,0 +1,117 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_group.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdGroupServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Group service.
+
+// Service to manage ad groups.
+service AdGroupService {
+ // Returns the requested ad group in full detail.
+ rpc GetAdGroup(GetAdGroupRequest) returns (google.ads.googleads.v1.resources.AdGroup) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adGroups/*}"
+ };
+ }
+
+ // Creates, updates, or removes ad groups. Operation statuses are returned.
+ rpc MutateAdGroups(MutateAdGroupsRequest) returns (MutateAdGroupsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adGroups:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdGroupService.GetAdGroup][google.ads.googleads.v1.services.AdGroupService.GetAdGroup].
+message GetAdGroupRequest {
+ // The resource name of the ad group to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdGroupService.MutateAdGroups][google.ads.googleads.v1.services.AdGroupService.MutateAdGroups].
+message MutateAdGroupsRequest {
+ // The ID of the customer whose ad groups are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual ad groups.
+ repeated AdGroupOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an ad group.
+message AdGroupOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad group.
+ google.ads.googleads.v1.resources.AdGroup create = 1;
+
+ // Update operation: The ad group is expected to have a valid resource name.
+ google.ads.googleads.v1.resources.AdGroup update = 2;
+
+ // Remove operation: A resource name for the removed ad group is expected,
+ // in this format:
+ //
+ // `customers/{customer_id}/adGroups/{ad_group_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an ad group mutate.
+message MutateAdGroupsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdGroupResult results = 2;
+}
+
+// The result for the ad group mutate.
+message MutateAdGroupResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_parameter_service.proto b/google/ads/googleads/v1/services/ad_parameter_service.proto
new file mode 100644
index 000000000..0cb7605de
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_parameter_service.proto
@@ -0,0 +1,120 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_parameter.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdParameterServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Ad Parameter service.
+
+// Service to manage ad parameters.
+service AdParameterService {
+ // Returns the requested ad parameter in full detail.
+ rpc GetAdParameter(GetAdParameterRequest) returns (google.ads.googleads.v1.resources.AdParameter) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adParameters/*}"
+ };
+ }
+
+ // Creates, updates, or removes ad parameters. Operation statuses are
+ // returned.
+ rpc MutateAdParameters(MutateAdParametersRequest) returns (MutateAdParametersResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/adParameters:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AdParameterService.GetAdParameter][google.ads.googleads.v1.services.AdParameterService.GetAdParameter]
+message GetAdParameterRequest {
+ // The resource name of the ad parameter to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AdParameterService.MutateAdParameters][google.ads.googleads.v1.services.AdParameterService.MutateAdParameters]
+message MutateAdParametersRequest {
+ // The ID of the customer whose ad parameters are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual ad parameters.
+ repeated AdParameterOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on ad parameter.
+message AdParameterOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new ad parameter.
+ google.ads.googleads.v1.resources.AdParameter create = 1;
+
+ // Update operation: The ad parameter is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.AdParameter update = 2;
+
+ // Remove operation: A resource name for the ad parameter to remove is
+ // expected in this format:
+ //
+ //
+ // `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`
+ string remove = 3;
+ }
+}
+
+// Response message for an ad parameter mutate.
+message MutateAdParametersResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateAdParameterResult results = 2;
+}
+
+// The result for the ad parameter mutate.
+message MutateAdParameterResult {
+ // The resource name returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/ad_schedule_view_service.proto b/google/ads/googleads/v1/services/ad_schedule_view_service.proto
new file mode 100644
index 000000000..03b8db481
--- /dev/null
+++ b/google/ads/googleads/v1/services/ad_schedule_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/ad_schedule_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AdScheduleViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the AdSchedule View service.
+
+// Service to fetch ad schedule views.
+service AdScheduleViewService {
+ // Returns the requested ad schedule view in full detail.
+ rpc GetAdScheduleView(GetAdScheduleViewRequest) returns (google.ads.googleads.v1.resources.AdScheduleView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/adScheduleViews/*}"
+ };
+ }
+}
+
+// Request message for [AdScheduleViewService.GetAdScheduleView][google.ads.googleads.v1.services.AdScheduleViewService.GetAdScheduleView].
+message GetAdScheduleViewRequest {
+ // The resource name of the ad schedule view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/age_range_view_service.proto b/google/ads/googleads/v1/services/age_range_view_service.proto
new file mode 100644
index 000000000..12d215ab3
--- /dev/null
+++ b/google/ads/googleads/v1/services/age_range_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/age_range_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AgeRangeViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Age Range View service.
+
+// Service to manage age range views.
+service AgeRangeViewService {
+ // Returns the requested age range view in full detail.
+ rpc GetAgeRangeView(GetAgeRangeViewRequest) returns (google.ads.googleads.v1.resources.AgeRangeView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/ageRangeViews/*}"
+ };
+ }
+}
+
+// Request message for [AgeRangeViewService.GetAgeRangeView][google.ads.googleads.v1.services.AgeRangeViewService.GetAgeRangeView].
+message GetAgeRangeViewRequest {
+ // The resource name of the age range view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/asset_service.proto b/google/ads/googleads/v1/services/asset_service.proto
new file mode 100644
index 000000000..7f95551ae
--- /dev/null
+++ b/google/ads/googleads/v1/services/asset_service.proto
@@ -0,0 +1,86 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/asset.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "AssetServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Asset service.
+
+// Service to manage assets.
+service AssetService {
+ // Returns the requested asset in full detail.
+ rpc GetAsset(GetAssetRequest) returns (google.ads.googleads.v1.resources.Asset) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/assets/*}"
+ };
+ }
+
+ // Creates assets. Operation statuses are returned.
+ rpc MutateAssets(MutateAssetsRequest) returns (MutateAssetsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/assets:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [AssetService.GetAsset][google.ads.googleads.v1.services.AssetService.GetAsset]
+message GetAssetRequest {
+ // The resource name of the asset to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [AssetService.MutateAssets][google.ads.googleads.v1.services.AssetService.MutateAssets]
+message MutateAssetsRequest {
+ // The ID of the customer whose assets are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual assets.
+ repeated AssetOperation operations = 2;
+}
+
+// A single operation to create an asset.
+message AssetOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new asset.
+ google.ads.googleads.v1.resources.Asset create = 1;
+ }
+}
+
+// Response message for an asset mutate.
+message MutateAssetsResponse {
+ // All results for the mutate.
+ repeated MutateAssetResult results = 2;
+}
+
+// The result for the asset mutate.
+message MutateAssetResult {
+ // The resource name returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/bidding_strategy_service.proto b/google/ads/googleads/v1/services/bidding_strategy_service.proto
new file mode 100644
index 000000000..a6969c891
--- /dev/null
+++ b/google/ads/googleads/v1/services/bidding_strategy_service.proto
@@ -0,0 +1,120 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/bidding_strategy.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingStrategyServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Bidding Strategy service.
+
+// Service to manage bidding strategies.
+service BiddingStrategyService {
+ // Returns the requested bidding strategy in full detail.
+ rpc GetBiddingStrategy(GetBiddingStrategyRequest) returns (google.ads.googleads.v1.resources.BiddingStrategy) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/biddingStrategies/*}"
+ };
+ }
+
+ // Creates, updates, or removes bidding strategies. Operation statuses are
+ // returned.
+ rpc MutateBiddingStrategies(MutateBiddingStrategiesRequest) returns (MutateBiddingStrategiesResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/biddingStrategies:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [BiddingStrategyService.GetBiddingStrategy][google.ads.googleads.v1.services.BiddingStrategyService.GetBiddingStrategy].
+message GetBiddingStrategyRequest {
+ // The resource name of the bidding strategy to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v1.services.BiddingStrategyService.MutateBiddingStrategies].
+message MutateBiddingStrategiesRequest {
+ // The ID of the customer whose bidding strategies are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual bidding strategies.
+ repeated BiddingStrategyOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a bidding strategy.
+message BiddingStrategyOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new bidding
+ // strategy.
+ google.ads.googleads.v1.resources.BiddingStrategy create = 1;
+
+ // Update operation: The bidding strategy is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.BiddingStrategy update = 2;
+
+ // Remove operation: A resource name for the removed bidding strategy is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for bidding strategy mutate.
+message MutateBiddingStrategiesResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateBiddingStrategyResult results = 2;
+}
+
+// The result for the bidding strategy mutate.
+message MutateBiddingStrategyResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/billing_setup_service.proto b/google/ads/googleads/v1/services/billing_setup_service.proto
new file mode 100644
index 000000000..469a4a16c
--- /dev/null
+++ b/google/ads/googleads/v1/services/billing_setup_service.proto
@@ -0,0 +1,104 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/billing_setup.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "BillingSetupServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the BillingSetup service.
+
+// A service for designating the business entity responsible for accrued costs.
+//
+// A billing setup is associated with a Payments account. Billing-related
+// activity for all billing setups associated with a particular Payments account
+// will appear on a single invoice generated monthly.
+//
+// Mutates:
+// The REMOVE operation cancels a pending billing setup.
+// The CREATE operation creates a new billing setup.
+service BillingSetupService {
+ // Returns a billing setup.
+ rpc GetBillingSetup(GetBillingSetupRequest) returns (google.ads.googleads.v1.resources.BillingSetup) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/billingSetups/*}"
+ };
+ }
+
+ // Creates a billing setup, or cancels an existing billing setup.
+ rpc MutateBillingSetup(MutateBillingSetupRequest) returns (MutateBillingSetupResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/billingSetups:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [BillingSetupService.GetBillingSetup][google.ads.googleads.v1.services.BillingSetupService.GetBillingSetup].
+message GetBillingSetupRequest {
+ // The resource name of the billing setup to fetch.
+ string resource_name = 1;
+}
+
+// Request message for billing setup mutate operations.
+message MutateBillingSetupRequest {
+ // Id of the customer to apply the billing setup mutate operation to.
+ string customer_id = 1;
+
+ // The operation to perform.
+ BillingSetupOperation operation = 2;
+}
+
+// A single operation on a billing setup, which describes the cancellation of an
+// existing billing setup.
+message BillingSetupOperation {
+ // Only one of these operations can be set. "Update" operations are not
+ // supported.
+ oneof operation {
+ // Creates a billing setup. No resource name is expected for the new billing
+ // setup.
+ google.ads.googleads.v1.resources.BillingSetup create = 2;
+
+ // Resource name of the billing setup to remove. A setup cannot be
+ // removed unless it is in a pending state or its scheduled start time is in
+ // the future. The resource name looks like
+ // `customers/{customer_id}/billingSetups/{billing_id}`.
+ string remove = 1;
+ }
+}
+
+// Response message for a billing setup operation.
+message MutateBillingSetupResponse {
+ // A result that identifies the resource affected by the mutate request.
+ MutateBillingSetupResult result = 1;
+}
+
+// Result for a single billing setup mutate.
+message MutateBillingSetupResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_audience_view_service.proto b/google/ads/googleads/v1/services/campaign_audience_view_service.proto
new file mode 100644
index 000000000..56cb13ba8
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_audience_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_audience_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignAudienceViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Campaign Audience View service.
+
+// Service to manage campaign audience views.
+service CampaignAudienceViewService {
+ // Returns the requested campaign audience view in full detail.
+ rpc GetCampaignAudienceView(GetCampaignAudienceViewRequest) returns (google.ads.googleads.v1.resources.CampaignAudienceView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignAudienceViews/*}"
+ };
+ }
+}
+
+// Request message for [CampaignAudienceViewService.GetCampaignAudienceView][google.ads.googleads.v1.services.CampaignAudienceViewService.GetCampaignAudienceView].
+message GetCampaignAudienceViewRequest {
+ // The resource name of the campaign audience view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_bid_modifier_service.proto b/google/ads/googleads/v1/services/campaign_bid_modifier_service.proto
new file mode 100644
index 000000000..3d43e1cdb
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_bid_modifier_service.proto
@@ -0,0 +1,121 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_bid_modifier.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignBidModifierServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Campaign Bid Modifier service.
+
+// Service to manage campaign bid modifiers.
+service CampaignBidModifierService {
+ // Returns the requested campaign bid modifier in full detail.
+ rpc GetCampaignBidModifier(GetCampaignBidModifierRequest) returns (google.ads.googleads.v1.resources.CampaignBidModifier) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignBidModifiers/*}"
+ };
+ }
+
+ // Creates, updates, or removes campaign bid modifiers.
+ // Operation statuses are returned.
+ rpc MutateCampaignBidModifiers(MutateCampaignBidModifiersRequest) returns (MutateCampaignBidModifiersResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaignBidModifiers:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CampaignBidModifierService.GetCampaignBidModifier][google.ads.googleads.v1.services.CampaignBidModifierService.GetCampaignBidModifier].
+message GetCampaignBidModifierRequest {
+ // The resource name of the campaign bid modifier to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CampaignBidModifierService.MutateCampaignBidModifier][].
+message MutateCampaignBidModifiersRequest {
+ // ID of the customer whose campaign bid modifiers are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual campaign bid modifiers.
+ repeated CampaignBidModifierOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove, update) on a campaign bid modifier.
+message CampaignBidModifierOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new campaign bid
+ // modifier.
+ google.ads.googleads.v1.resources.CampaignBidModifier create = 1;
+
+ // Update operation: The campaign bid modifier is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.CampaignBidModifier update = 2;
+
+ // Remove operation: A resource name for the removed campaign bid modifier
+ // is expected, in this format:
+ //
+ //
+ // `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for campaign bid modifiers mutate.
+message MutateCampaignBidModifiersResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignBidModifierResult results = 2;
+}
+
+// The result for the criterion mutate.
+message MutateCampaignBidModifierResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_budget_service.proto b/google/ads/googleads/v1/services/campaign_budget_service.proto
new file mode 100644
index 000000000..c92804038
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_budget_service.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_budget.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignBudgetServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Campaign Budget service.
+
+// Service to manage campaign budgets.
+service CampaignBudgetService {
+ // Returns the requested Campaign Budget in full detail.
+ rpc GetCampaignBudget(GetCampaignBudgetRequest) returns (google.ads.googleads.v1.resources.CampaignBudget) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignBudgets/*}"
+ };
+ }
+
+ // Creates, updates, or removes campaign budgets. Operation statuses are
+ // returned.
+ rpc MutateCampaignBudgets(MutateCampaignBudgetsRequest) returns (MutateCampaignBudgetsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaignBudgets:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CampaignBudgetService.GetCampaignBudget][google.ads.googleads.v1.services.CampaignBudgetService.GetCampaignBudget].
+message GetCampaignBudgetRequest {
+ // The resource name of the campaign budget to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v1.services.CampaignBudgetService.MutateCampaignBudgets].
+message MutateCampaignBudgetsRequest {
+ // The ID of the customer whose campaign budgets are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual campaign budgets.
+ repeated CampaignBudgetOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a campaign budget.
+message CampaignBudgetOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new budget.
+ google.ads.googleads.v1.resources.CampaignBudget create = 1;
+
+ // Update operation: The campaign budget is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.CampaignBudget update = 2;
+
+ // Remove operation: A resource name for the removed budget is expected, in
+ // this format:
+ //
+ // `customers/{customer_id}/campaignBudgets/{budget_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for campaign budget mutate.
+message MutateCampaignBudgetsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignBudgetResult results = 2;
+}
+
+// The result for the campaign budget mutate.
+message MutateCampaignBudgetResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_criterion_service.proto b/google/ads/googleads/v1/services/campaign_criterion_service.proto
new file mode 100644
index 000000000..b1bf77a6a
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_criterion_service.proto
@@ -0,0 +1,118 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_criterion.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignCriterionServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Campaign Criterion service.
+
+// Service to manage campaign criteria.
+service CampaignCriterionService {
+ // Returns the requested criterion in full detail.
+ rpc GetCampaignCriterion(GetCampaignCriterionRequest) returns (google.ads.googleads.v1.resources.CampaignCriterion) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignCriteria/*}"
+ };
+ }
+
+ // Creates, updates, or removes criteria. Operation statuses are returned.
+ rpc MutateCampaignCriteria(MutateCampaignCriteriaRequest) returns (MutateCampaignCriteriaResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaignCriteria:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CampaignCriterionService.GetCampaignCriterion][google.ads.googleads.v1.services.CampaignCriterionService.GetCampaignCriterion].
+message GetCampaignCriterionRequest {
+ // The resource name of the criterion to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v1.services.CampaignCriterionService.MutateCampaignCriteria].
+message MutateCampaignCriteriaRequest {
+ // The ID of the customer whose criteria are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual criteria.
+ repeated CampaignCriterionOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a campaign criterion.
+message CampaignCriterionOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new criterion.
+ google.ads.googleads.v1.resources.CampaignCriterion create = 1;
+
+ // Update operation: The criterion is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.CampaignCriterion update = 2;
+
+ // Remove operation: A resource name for the removed criterion is expected,
+ // in this format:
+ //
+ // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for campaign criterion mutate.
+message MutateCampaignCriteriaResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignCriterionResult results = 2;
+}
+
+// The result for the criterion mutate.
+message MutateCampaignCriterionResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_extension_setting_service.proto b/google/ads/googleads/v1/services/campaign_extension_setting_service.proto
new file mode 100644
index 000000000..b1c8ff93c
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_extension_setting_service.proto
@@ -0,0 +1,124 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_extension_setting.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignExtensionSettingServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the CampaignExtensionSetting service.
+
+// Service to manage campaign extension settings.
+service CampaignExtensionSettingService {
+ // Returns the requested campaign extension setting in full detail.
+ rpc GetCampaignExtensionSetting(GetCampaignExtensionSettingRequest) returns (google.ads.googleads.v1.resources.CampaignExtensionSetting) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignExtensionSettings/*}"
+ };
+ }
+
+ // Creates, updates, or removes campaign extension settings. Operation
+ // statuses are returned.
+ rpc MutateCampaignExtensionSettings(MutateCampaignExtensionSettingsRequest) returns (MutateCampaignExtensionSettingsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaignExtensionSettings:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [CampaignExtensionSettingService.GetCampaignExtensionSetting][google.ads.googleads.v1.services.CampaignExtensionSettingService.GetCampaignExtensionSetting].
+message GetCampaignExtensionSettingRequest {
+ // The resource name of the campaign extension setting to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v1.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings].
+message MutateCampaignExtensionSettingsRequest {
+ // The ID of the customer whose campaign extension settings are being
+ // modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual campaign extension
+ // settings.
+ repeated CampaignExtensionSettingOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a campaign extension setting.
+message CampaignExtensionSettingOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new campaign
+ // extension setting.
+ google.ads.googleads.v1.resources.CampaignExtensionSetting create = 1;
+
+ // Update operation: The campaign extension setting is expected to have a
+ // valid resource name.
+ google.ads.googleads.v1.resources.CampaignExtensionSetting update = 2;
+
+ // Remove operation: A resource name for the removed campaign extension
+ // setting is expected, in this format:
+ //
+ // `customers/{customer_id}/campaignExtensionSettings/{feed_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a campaign extension setting mutate.
+message MutateCampaignExtensionSettingsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignExtensionSettingResult results = 2;
+}
+
+// The result for the campaign extension setting mutate.
+message MutateCampaignExtensionSettingResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_feed_service.proto b/google/ads/googleads/v1/services/campaign_feed_service.proto
new file mode 100644
index 000000000..1ed8c1e5e
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_feed_service.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_feed.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignFeedServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the CampaignFeed service.
+
+// Service to manage campaign feeds.
+service CampaignFeedService {
+ // Returns the requested campaign feed in full detail.
+ rpc GetCampaignFeed(GetCampaignFeedRequest) returns (google.ads.googleads.v1.resources.CampaignFeed) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignFeeds/*}"
+ };
+ }
+
+ // Creates, updates, or removes campaign feeds. Operation statuses are
+ // returned.
+ rpc MutateCampaignFeeds(MutateCampaignFeedsRequest) returns (MutateCampaignFeedsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaignFeeds:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CampaignFeedService.GetCampaignFeed][google.ads.googleads.v1.services.CampaignFeedService.GetCampaignFeed].
+message GetCampaignFeedRequest {
+ // The resource name of the campaign feed to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v1.services.CampaignFeedService.MutateCampaignFeeds].
+message MutateCampaignFeedsRequest {
+ // The ID of the customer whose campaign feeds are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual campaign feeds.
+ repeated CampaignFeedOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a campaign feed.
+message CampaignFeedOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new campaign feed.
+ google.ads.googleads.v1.resources.CampaignFeed create = 1;
+
+ // Update operation: The campaign feed is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.CampaignFeed update = 2;
+
+ // Remove operation: A resource name for the removed campaign feed is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a campaign feed mutate.
+message MutateCampaignFeedsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignFeedResult results = 2;
+}
+
+// The result for the campaign feed mutate.
+message MutateCampaignFeedResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_label_service.proto b/google/ads/googleads/v1/services/campaign_label_service.proto
new file mode 100644
index 000000000..1b9cc6d8c
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_label_service.proto
@@ -0,0 +1,112 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_label.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignLabelServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Campaign Label service.
+
+// Service to manage labels on campaigns.
+service CampaignLabelService {
+ // Returns the requested campaign-label relationship in full detail.
+ rpc GetCampaignLabel(GetCampaignLabelRequest) returns (google.ads.googleads.v1.resources.CampaignLabel) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignLabels/*}"
+ };
+ }
+
+ // Creates and removes campaign-label relationships.
+ // Operation statuses are returned.
+ rpc MutateCampaignLabels(MutateCampaignLabelsRequest) returns (MutateCampaignLabelsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaignLabels:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CampaignLabelService.GetCampaignLabel][google.ads.googleads.v1.services.CampaignLabelService.GetCampaignLabel].
+message GetCampaignLabelRequest {
+ // The resource name of the campaign-label relationship to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v1.services.CampaignLabelService.MutateCampaignLabels].
+message MutateCampaignLabelsRequest {
+ // ID of the customer whose campaign-label relationships are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on campaign-label relationships.
+ repeated CampaignLabelOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on a campaign-label relationship.
+message CampaignLabelOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new campaign-label
+ // relationship.
+ google.ads.googleads.v1.resources.CampaignLabel create = 1;
+
+ // Remove operation: A resource name for the campaign-label relationship
+ // being removed, in this format:
+ //
+ // `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for a campaign labels mutate.
+message MutateCampaignLabelsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignLabelResult results = 2;
+}
+
+// The result for a campaign label mutate.
+message MutateCampaignLabelResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_service.proto b/google/ads/googleads/v1/services/campaign_service.proto
new file mode 100644
index 000000000..183bf87ea
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_service.proto
@@ -0,0 +1,118 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Campaign service.
+
+// Service to manage campaigns.
+service CampaignService {
+ // Returns the requested campaign in full detail.
+ rpc GetCampaign(GetCampaignRequest) returns (google.ads.googleads.v1.resources.Campaign) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaigns/*}"
+ };
+ }
+
+ // Creates, updates, or removes campaigns. Operation statuses are returned.
+ rpc MutateCampaigns(MutateCampaignsRequest) returns (MutateCampaignsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaigns:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CampaignService.GetCampaign][google.ads.googleads.v1.services.CampaignService.GetCampaign].
+message GetCampaignRequest {
+ // The resource name of the campaign to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CampaignService.MutateCampaigns][google.ads.googleads.v1.services.CampaignService.MutateCampaigns].
+message MutateCampaignsRequest {
+ // The ID of the customer whose campaigns are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual campaigns.
+ repeated CampaignOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a campaign.
+message CampaignOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new campaign.
+ google.ads.googleads.v1.resources.Campaign create = 1;
+
+ // Update operation: The campaign is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.Campaign update = 2;
+
+ // Remove operation: A resource name for the removed campaign is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/campaigns/{campaign_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for campaign mutate.
+message MutateCampaignsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignResult results = 2;
+}
+
+// The result for the campaign mutate.
+message MutateCampaignResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/campaign_shared_set_service.proto b/google/ads/googleads/v1/services/campaign_shared_set_service.proto
new file mode 100644
index 000000000..483e09f74
--- /dev/null
+++ b/google/ads/googleads/v1/services/campaign_shared_set_service.proto
@@ -0,0 +1,112 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/campaign_shared_set.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CampaignSharedSetServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Campaign Shared Set service.
+
+// Service to manage campaign shared sets.
+service CampaignSharedSetService {
+ // Returns the requested campaign shared set in full detail.
+ rpc GetCampaignSharedSet(GetCampaignSharedSetRequest) returns (google.ads.googleads.v1.resources.CampaignSharedSet) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/campaignSharedSets/*}"
+ };
+ }
+
+ // Creates or removes campaign shared sets. Operation statuses are returned.
+ rpc MutateCampaignSharedSets(MutateCampaignSharedSetsRequest) returns (MutateCampaignSharedSetsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/campaignSharedSets:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CampaignSharedSetService.GetCampaignSharedSet][google.ads.googleads.v1.services.CampaignSharedSetService.GetCampaignSharedSet].
+message GetCampaignSharedSetRequest {
+ // The resource name of the campaign shared set to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v1.services.CampaignSharedSetService.MutateCampaignSharedSets].
+message MutateCampaignSharedSetsRequest {
+ // The ID of the customer whose campaign shared sets are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual campaign shared sets.
+ repeated CampaignSharedSetOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on an campaign shared set.
+message CampaignSharedSetOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new campaign
+ // shared set.
+ google.ads.googleads.v1.resources.CampaignSharedSet create = 1;
+
+ // Remove operation: A resource name for the removed campaign shared set is
+ // expected, in this format:
+ //
+ //
+ // `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a campaign shared set mutate.
+message MutateCampaignSharedSetsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCampaignSharedSetResult results = 2;
+}
+
+// The result for the campaign shared set mutate.
+message MutateCampaignSharedSetResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/carrier_constant_service.proto b/google/ads/googleads/v1/services/carrier_constant_service.proto
new file mode 100644
index 000000000..e785c86c8
--- /dev/null
+++ b/google/ads/googleads/v1/services/carrier_constant_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/carrier_constant.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CarrierConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the carrier constant service.
+
+// Service to fetch carrier constants.
+service CarrierConstantService {
+ // Returns the requested carrier constant in full detail.
+ rpc GetCarrierConstant(GetCarrierConstantRequest) returns (google.ads.googleads.v1.resources.CarrierConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=carrierConstants/*}"
+ };
+ }
+}
+
+// Request message for [CarrierConstantService.GetCarrierConstant][google.ads.googleads.v1.services.CarrierConstantService.GetCarrierConstant].
+message GetCarrierConstantRequest {
+ // Resource name of the carrier constant to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/change_status_service.proto b/google/ads/googleads/v1/services/change_status_service.proto
new file mode 100644
index 000000000..04d72f948
--- /dev/null
+++ b/google/ads/googleads/v1/services/change_status_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/change_status.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ChangeStatusServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Change Status service.
+
+// Service to fetch change statuses.
+service ChangeStatusService {
+ // Returns the requested change status in full detail.
+ rpc GetChangeStatus(GetChangeStatusRequest) returns (google.ads.googleads.v1.resources.ChangeStatus) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/changeStatus/*}"
+ };
+ }
+}
+
+// Request message for '[ChangeStatusService.GetChangeStatus][google.ads.googleads.v1.services.ChangeStatusService.GetChangeStatus]'.
+message GetChangeStatusRequest {
+ // The resource name of the change status to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/click_view_service.proto b/google/ads/googleads/v1/services/click_view_service.proto
new file mode 100644
index 000000000..77fdfe16e
--- /dev/null
+++ b/google/ads/googleads/v1/services/click_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/click_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ClickViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the ClickView service.
+
+// Service to fetch click views.
+service ClickViewService {
+ // Returns the requested click view in full detail.
+ rpc GetClickView(GetClickViewRequest) returns (google.ads.googleads.v1.resources.ClickView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/clickViews/*}"
+ };
+ }
+}
+
+// Request message for [ClickViewService.GetClickView][google.ads.googleads.v1.services.ClickViewService.GetClickView].
+message GetClickViewRequest {
+ // The resource name of the click view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/conversion_action_service.proto b/google/ads/googleads/v1/services/conversion_action_service.proto
new file mode 100644
index 000000000..32654d710
--- /dev/null
+++ b/google/ads/googleads/v1/services/conversion_action_service.proto
@@ -0,0 +1,120 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/conversion_action.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionActionServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Conversion Action service.
+
+// Service to manage conversion actions.
+service ConversionActionService {
+ // Returns the requested conversion action.
+ rpc GetConversionAction(GetConversionActionRequest) returns (google.ads.googleads.v1.resources.ConversionAction) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/conversionActions/*}"
+ };
+ }
+
+ // Creates, updates or removes conversion actions. Operation statuses are
+ // returned.
+ rpc MutateConversionActions(MutateConversionActionsRequest) returns (MutateConversionActionsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/conversionActions:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [ConversionActionService.GetConversionAction][google.ads.googleads.v1.services.ConversionActionService.GetConversionAction].
+message GetConversionActionRequest {
+ // The resource name of the conversion action to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v1.services.ConversionActionService.MutateConversionActions].
+message MutateConversionActionsRequest {
+ // The ID of the customer whose conversion actions are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual conversion actions.
+ repeated ConversionActionOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a conversion action.
+message ConversionActionOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new conversion
+ // action.
+ google.ads.googleads.v1.resources.ConversionAction create = 1;
+
+ // Update operation: The conversion action is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.ConversionAction update = 2;
+
+ // Remove operation: A resource name for the removed conversion action is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/conversionActions/{conversion_action_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for [ConversionActionService.MutateConversionActions][google.ads.googleads.v1.services.ConversionActionService.MutateConversionActions].
+message MutateConversionActionsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateConversionActionResult results = 2;
+}
+
+// The result for the conversion action mutate.
+message MutateConversionActionResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/conversion_adjustment_upload_service.proto b/google/ads/googleads/v1/services/conversion_adjustment_upload_service.proto
new file mode 100644
index 000000000..07c8d4c2d
--- /dev/null
+++ b/google/ads/googleads/v1/services/conversion_adjustment_upload_service.proto
@@ -0,0 +1,158 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/enums/conversion_adjustment_type.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionAdjustmentUploadServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Service to upload conversion adjustments.
+service ConversionAdjustmentUploadService {
+ // Processes the given conversion adjustments.
+ rpc UploadConversionAdjustments(UploadConversionAdjustmentsRequest) returns (UploadConversionAdjustmentsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}:uploadConversionAdjustments"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v1.services.ConversionAdjustmentUploadService.UploadConversionAdjustments].
+message UploadConversionAdjustmentsRequest {
+ // The ID of the customer performing the upload.
+ string customer_id = 1;
+
+ // The conversion adjustments that are being uploaded.
+ repeated ConversionAdjustment conversion_adjustments = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried out
+ // in one transaction if and only if they are all valid. This should always be
+ // set to true.
+ bool partial_failure = 3;
+}
+
+// Response message for
+// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v1.services.ConversionAdjustmentUploadService.UploadConversionAdjustments].
+message UploadConversionAdjustmentsResponse {
+ // Errors that pertain to conversion adjustment failures in the partial
+ // failure mode. Returned when all errors occur inside the adjustments. If any
+ // errors occur outside the adjustments (e.g. auth errors), we return an RPC
+ // level error.
+ google.rpc.Status partial_failure_error = 1;
+
+ // Returned for successfully processed conversion adjustments. Proto will be
+ // empty for rows that received an error.
+ repeated ConversionAdjustmentResult results = 2;
+}
+
+// A conversion adjustment.
+message ConversionAdjustment {
+ // Resource name of the conversion action associated with this conversion
+ // adjustment. Note: Although this resource name consists of a customer id and
+ // a conversion action id, validation will ignore the customer id and use the
+ // conversion action id as the sole identifier of the conversion action.
+ google.protobuf.StringValue conversion_action = 3;
+
+ // The date time at which the adjustment occurred. Must be after the
+ // conversion_date_time. The timezone must be specified. The format is
+ // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00".
+ google.protobuf.StringValue adjustment_date_time = 4;
+
+ // The adjustment type.
+ google.ads.googleads.v1.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5;
+
+ // Information needed to restate the conversion's value.
+ // Required for restatements. Should not be supplied for retractions. An error
+ // will be returned if provided for a retraction.
+ RestatementValue restatement_value = 6;
+
+ // Identifies the conversion to be adjusted.
+ oneof conversion_identifier {
+ // Uniquely identifies a conversion that was reported without an order ID
+ // specified.
+ GclidDateTimePair gclid_date_time_pair = 1;
+
+ // The order ID of the conversion to be adjusted. If the conversion was
+ // reported with an order ID specified, that order ID must be used as the
+ // identifier here.
+ google.protobuf.StringValue order_id = 2;
+ }
+}
+
+// Contains information needed to restate a conversion's value.
+message RestatementValue {
+ // The restated conversion value. This is the value of the conversion after
+ // restatement. For example, to change the value of a conversion from 100 to
+ // 70, an adjusted value of 70 should be reported.
+ google.protobuf.DoubleValue adjusted_value = 1;
+
+ // The currency of the restated value. If not provided, then the default
+ // currency from the conversion action is used, and if that is not set then
+ // the account currency is used. This is the ISO 4217 3-character currency
+ // code e.g. USD or EUR.
+ google.protobuf.StringValue currency_code = 2;
+}
+
+// Uniquely identifies a conversion that was reported without an order ID
+// specified.
+message GclidDateTimePair {
+ // Google click ID (gclid) associated with the original conversion for this
+ // adjustment.
+ google.protobuf.StringValue gclid = 1;
+
+ // The date time at which the original conversion for this adjustment
+ // occurred. The timezone must be specified. The format is "yyyy-mm-dd
+ // hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00".
+ google.protobuf.StringValue conversion_date_time = 2;
+}
+
+// Information identifying a successfully processed ConversionAdjustment.
+message ConversionAdjustmentResult {
+ // Resource name of the conversion action associated with this conversion
+ // adjustment.
+ google.protobuf.StringValue conversion_action = 3;
+
+ // The date time at which the adjustment occurred. The format is
+ // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00".
+ google.protobuf.StringValue adjustment_date_time = 4;
+
+ // The adjustment type.
+ google.ads.googleads.v1.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType adjustment_type = 5;
+
+ // Identifies the conversion that was adjusted.
+ oneof conversion_identifier {
+ // Uniquely identifies a conversion that was reported without an order ID
+ // specified.
+ GclidDateTimePair gclid_date_time_pair = 1;
+
+ // The order ID of the conversion that was adjusted.
+ google.protobuf.StringValue order_id = 2;
+ }
+}
diff --git a/google/ads/googleads/v1/services/conversion_upload_service.proto b/google/ads/googleads/v1/services/conversion_upload_service.proto
new file mode 100644
index 000000000..315f7e04a
--- /dev/null
+++ b/google/ads/googleads/v1/services/conversion_upload_service.proto
@@ -0,0 +1,208 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ConversionUploadServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Service to upload conversions.
+service ConversionUploadService {
+ // Processes the given click conversions.
+ rpc UploadClickConversions(UploadClickConversionsRequest) returns (UploadClickConversionsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}:uploadClickConversions"
+ body: "*"
+ };
+ }
+
+ // Processes the given call conversions.
+ rpc UploadCallConversions(UploadCallConversionsRequest) returns (UploadCallConversionsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}:uploadCallConversions"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v1.services.ConversionUploadService.UploadClickConversions].
+message UploadClickConversionsRequest {
+ // The ID of the customer performing the upload.
+ string customer_id = 1;
+
+ // The conversions that are being uploaded.
+ repeated ClickConversion conversions = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // This should always be set to true.
+ bool partial_failure = 3;
+}
+
+// Response message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v1.services.ConversionUploadService.UploadClickConversions].
+message UploadClickConversionsResponse {
+ // Errors that pertain to conversion failures in the partial failure mode.
+ // Returned when all errors occur inside the conversions. If any errors occur
+ // outside the conversions (e.g. auth errors), we return an RPC level error.
+ google.rpc.Status partial_failure_error = 1;
+
+ // Returned for successfully processed conversions. Proto will be empty for
+ // rows that received an error.
+ repeated ClickConversionResult results = 2;
+}
+
+// Request message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v1.services.ConversionUploadService.UploadCallConversions].
+message UploadCallConversionsRequest {
+ // The ID of the customer performing the upload.
+ string customer_id = 1;
+
+ // The conversions that are being uploaded.
+ repeated CallConversion conversions = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // This should always be set to true.
+ bool partial_failure = 3;
+}
+
+// Response message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v1.services.ConversionUploadService.UploadCallConversions].
+message UploadCallConversionsResponse {
+ // Errors that pertain to conversion failures in the partial failure mode.
+ // Returned when all errors occur inside the conversions. If any errors occur
+ // outside the conversions (e.g. auth errors), we return an RPC level error.
+ google.rpc.Status partial_failure_error = 1;
+
+ // Returned for successfully processed conversions. Proto will be empty for
+ // rows that received an error.
+ repeated CallConversionResult results = 2;
+}
+
+// A click conversion.
+message ClickConversion {
+ // The Google click ID (gclid) associated with this conversion.
+ google.protobuf.StringValue gclid = 1;
+
+ // Resource name of the conversion action associated with this conversion.
+ // Note: Although this resource name consists of a customer id and a
+ // conversion action id, validation will ignore the customer id and use the
+ // conversion action id as the sole identifier of the conversion action.
+ google.protobuf.StringValue conversion_action = 2;
+
+ // The date time at which the conversion occurred. Must be after
+ // the click time. The timezone must be specified. The format is
+ // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. “2019-01-01 12:32:45-08:00”.
+ google.protobuf.StringValue conversion_date_time = 3;
+
+ // The value of the conversion for the advertiser.
+ google.protobuf.DoubleValue conversion_value = 4;
+
+ // Currency associated with the conversion value. This is the ISO 4217
+ // 3-character currency code. For example: USD, EUR.
+ google.protobuf.StringValue currency_code = 5;
+
+ // The order ID associated with the conversion. An order id can only be used
+ // for one conversion per conversion action.
+ google.protobuf.StringValue order_id = 6;
+
+ // Additional data about externally attributed conversions. This field
+ // is required for conversions with an externally attributed conversion
+ // action, but should not be set otherwise.
+ ExternalAttributionData external_attribution_data = 7;
+}
+
+// A call conversion.
+message CallConversion {
+ // The caller id from which this call was placed. Caller id is expected to be
+ // in E.164 format with preceding '+' sign. e.g. "+16502531234".
+ google.protobuf.StringValue caller_id = 1;
+
+ // The date time at which the call occurred. The timezone must be specified.
+ // The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm",
+ // e.g. "2019-01-01 12:32:45-08:00".
+ google.protobuf.StringValue call_start_date_time = 2;
+
+ // Resource name of the conversion action associated with this conversion.
+ // Note: Although this resource name consists of a customer id and a
+ // conversion action id, validation will ignore the customer id and use the
+ // conversion action id as the sole identifier of the conversion action.
+ google.protobuf.StringValue conversion_action = 3;
+
+ // The date time at which the conversion occurred. Must be after the call
+ // time. The timezone must be specified. The format is
+ // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00".
+ google.protobuf.StringValue conversion_date_time = 4;
+
+ // The value of the conversion for the advertiser.
+ google.protobuf.DoubleValue conversion_value = 5;
+
+ // Currency associated with the conversion value. This is the ISO 4217
+ // 3-character currency code. For example: USD, EUR.
+ google.protobuf.StringValue currency_code = 6;
+}
+
+// Contains additional information about externally attributed conversions.
+message ExternalAttributionData {
+ // Represents the fraction of the conversion that is attributed to the
+ // Google Ads click.
+ google.protobuf.DoubleValue external_attribution_credit = 1;
+
+ // Specifies the attribution model name.
+ google.protobuf.StringValue external_attribution_model = 2;
+}
+
+// Identifying information for a successfully processed ClickConversion.
+message ClickConversionResult {
+ // The Google Click ID (gclid) associated with this conversion.
+ google.protobuf.StringValue gclid = 1;
+
+ // Resource name of the conversion action associated with this conversion.
+ google.protobuf.StringValue conversion_action = 2;
+
+ // The date time at which the conversion occurred. The format is
+ // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. “2019-01-01 12:32:45-08:00”.
+ google.protobuf.StringValue conversion_date_time = 3;
+}
+
+// Identifying information for a successfully processed CallConversionUpload.
+message CallConversionResult {
+ // The caller id from which this call was placed. Caller id is expected to be
+ // in E.164 format with preceding '+' sign.
+ google.protobuf.StringValue caller_id = 1;
+
+ // The date time at which the call occurred. The format is
+ // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00".
+ google.protobuf.StringValue call_start_date_time = 2;
+
+ // Resource name of the conversion action associated with this conversion.
+ google.protobuf.StringValue conversion_action = 3;
+
+ // The date time at which the conversion occurred. The format is
+ // "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. "2019-01-01 12:32:45-08:00".
+ google.protobuf.StringValue conversion_date_time = 4;
+}
diff --git a/google/ads/googleads/v1/services/custom_interest_service.proto b/google/ads/googleads/v1/services/custom_interest_service.proto
new file mode 100644
index 000000000..754fcc05f
--- /dev/null
+++ b/google/ads/googleads/v1/services/custom_interest_service.proto
@@ -0,0 +1,100 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/custom_interest.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomInterestServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Custom Interest service.
+
+// Service to manage custom interests.
+service CustomInterestService {
+ // Returns the requested custom interest in full detail.
+ rpc GetCustomInterest(GetCustomInterestRequest) returns (google.ads.googleads.v1.resources.CustomInterest) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customInterests/*}"
+ };
+ }
+
+ // Creates or updates custom interests. Operation statuses are returned.
+ rpc MutateCustomInterests(MutateCustomInterestsRequest) returns (MutateCustomInterestsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/customInterests:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CustomInterestService.GetCustomInterest][google.ads.googleads.v1.services.CustomInterestService.GetCustomInterest].
+message GetCustomInterestRequest {
+ // The resource name of the custom interest to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CustomInterestService.MutateCustomInterests][google.ads.googleads.v1.services.CustomInterestService.MutateCustomInterests].
+message MutateCustomInterestsRequest {
+ // The ID of the customer whose custom interests are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual custom interests.
+ repeated CustomInterestOperation operations = 2;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update) on a custom interest.
+message CustomInterestOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new custom
+ // interest.
+ google.ads.googleads.v1.resources.CustomInterest create = 1;
+
+ // Update operation: The custom interest is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.CustomInterest update = 2;
+ }
+}
+
+// Response message for custom interest mutate.
+message MutateCustomInterestsResponse {
+ // All results for the mutate.
+ repeated MutateCustomInterestResult results = 2;
+}
+
+// The result for the custom interest mutate.
+message MutateCustomInterestResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_client_link_service.proto b/google/ads/googleads/v1/services/customer_client_link_service.proto
new file mode 100644
index 000000000..ea25b599f
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_client_link_service.proto
@@ -0,0 +1,92 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer_client_link.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerClientLinkServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Service to manage customer client links.
+service CustomerClientLinkService {
+ // Returns the requested CustomerClientLink in full detail.
+ rpc GetCustomerClientLink(GetCustomerClientLinkRequest) returns (google.ads.googleads.v1.resources.CustomerClientLink) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customerClientLinks/*}"
+ };
+ }
+
+ // Creates or updates a customer client link. Operation statuses are returned.
+ rpc MutateCustomerClientLink(MutateCustomerClientLinkRequest) returns (MutateCustomerClientLinkResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/customerClientLinks:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CustomerClientLinkService.GetCustomerClientLink][google.ads.googleads.v1.services.CustomerClientLinkService.GetCustomerClientLink].
+message GetCustomerClientLinkRequest {
+ // The resource name of the customer client link to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v1.services.CustomerClientLinkService.MutateCustomerClientLink].
+message MutateCustomerClientLinkRequest {
+ // The ID of the customer whose customer link are being modified.
+ string customer_id = 1;
+
+ // The operation to perform on the individual CustomerClientLink.
+ CustomerClientLinkOperation operation = 2;
+}
+
+// A single operation (create, update) on a CustomerClientLink.
+message CustomerClientLinkOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new link.
+ google.ads.googleads.v1.resources.CustomerClientLink create = 1;
+
+ // Update operation: The link is expected to have a valid resource name.
+ google.ads.googleads.v1.resources.CustomerClientLink update = 2;
+ }
+}
+
+// Response message for a CustomerClientLink mutate.
+message MutateCustomerClientLinkResponse {
+ // A result that identifies the resource affected by the mutate request.
+ MutateCustomerClientLinkResult result = 1;
+}
+
+// The result for a single customer client link mutate.
+message MutateCustomerClientLinkResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_client_service.proto b/google/ads/googleads/v1/services/customer_client_service.proto
new file mode 100644
index 000000000..2689f09d5
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_client_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer_client.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerClientServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Customer Client service.
+
+// Service to get clients in a customer's hierarchy.
+service CustomerClientService {
+ // Returns the requested client in full detail.
+ rpc GetCustomerClient(GetCustomerClientRequest) returns (google.ads.googleads.v1.resources.CustomerClient) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customerClients/*}"
+ };
+ }
+}
+
+// Request message for [CustomerClientService.GetCustomerClient][google.ads.googleads.v1.services.CustomerClientService.GetCustomerClient].
+message GetCustomerClientRequest {
+ // The resource name of the client to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_extension_setting_service.proto b/google/ads/googleads/v1/services/customer_extension_setting_service.proto
new file mode 100644
index 000000000..d1c78bead
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_extension_setting_service.proto
@@ -0,0 +1,124 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer_extension_setting.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerExtensionSettingServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the CustomerExtensionSetting service.
+
+// Service to manage customer extension settings.
+service CustomerExtensionSettingService {
+ // Returns the requested customer extension setting in full detail.
+ rpc GetCustomerExtensionSetting(GetCustomerExtensionSettingRequest) returns (google.ads.googleads.v1.resources.CustomerExtensionSetting) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customerExtensionSettings/*}"
+ };
+ }
+
+ // Creates, updates, or removes customer extension settings. Operation
+ // statuses are returned.
+ rpc MutateCustomerExtensionSettings(MutateCustomerExtensionSettingsRequest) returns (MutateCustomerExtensionSettingsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/customerExtensionSettings:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [CustomerExtensionSettingService.GetCustomerExtensionSetting][google.ads.googleads.v1.services.CustomerExtensionSettingService.GetCustomerExtensionSetting].
+message GetCustomerExtensionSettingRequest {
+ // The resource name of the customer extension setting to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v1.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings].
+message MutateCustomerExtensionSettingsRequest {
+ // The ID of the customer whose customer extension settings are being
+ // modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual customer extension
+ // settings.
+ repeated CustomerExtensionSettingOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a customer extension setting.
+message CustomerExtensionSettingOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new customer
+ // extension setting.
+ google.ads.googleads.v1.resources.CustomerExtensionSetting create = 1;
+
+ // Update operation: The customer extension setting is expected to have a
+ // valid resource name.
+ google.ads.googleads.v1.resources.CustomerExtensionSetting update = 2;
+
+ // Remove operation: A resource name for the removed customer extension
+ // setting is expected, in this format:
+ //
+ // `customers/{customer_id}/customerExtensionSettings/{feed_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a customer extension setting mutate.
+message MutateCustomerExtensionSettingsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCustomerExtensionSettingResult results = 2;
+}
+
+// The result for the customer extension setting mutate.
+message MutateCustomerExtensionSettingResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_feed_service.proto b/google/ads/googleads/v1/services/customer_feed_service.proto
new file mode 100644
index 000000000..e8d5a0269
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_feed_service.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer_feed.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerFeedServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the CustomerFeed service.
+
+// Service to manage customer feeds.
+service CustomerFeedService {
+ // Returns the requested customer feed in full detail.
+ rpc GetCustomerFeed(GetCustomerFeedRequest) returns (google.ads.googleads.v1.resources.CustomerFeed) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customerFeeds/*}"
+ };
+ }
+
+ // Creates, updates, or removes customer feeds. Operation statuses are
+ // returned.
+ rpc MutateCustomerFeeds(MutateCustomerFeedsRequest) returns (MutateCustomerFeedsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/customerFeeds:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CustomerFeedService.GetCustomerFeed][google.ads.googleads.v1.services.CustomerFeedService.GetCustomerFeed].
+message GetCustomerFeedRequest {
+ // The resource name of the customer feed to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v1.services.CustomerFeedService.MutateCustomerFeeds].
+message MutateCustomerFeedsRequest {
+ // The ID of the customer whose customer feeds are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual customer feeds.
+ repeated CustomerFeedOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a customer feed.
+message CustomerFeedOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new customer feed.
+ google.ads.googleads.v1.resources.CustomerFeed create = 1;
+
+ // Update operation: The customer feed is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.CustomerFeed update = 2;
+
+ // Remove operation: A resource name for the removed customer feed is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/customerFeeds/{feed_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a customer feed mutate.
+message MutateCustomerFeedsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCustomerFeedResult results = 2;
+}
+
+// The result for the customer feed mutate.
+message MutateCustomerFeedResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_label_service.proto b/google/ads/googleads/v1/services/customer_label_service.proto
new file mode 100644
index 000000000..b34fa77e1
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_label_service.proto
@@ -0,0 +1,112 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer_label.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerLabelServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Customer Label service.
+
+// Service to manage labels on customers.
+service CustomerLabelService {
+ // Returns the requested customer-label relationship in full detail.
+ rpc GetCustomerLabel(GetCustomerLabelRequest) returns (google.ads.googleads.v1.resources.CustomerLabel) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customerLabels/*}"
+ };
+ }
+
+ // Creates and removes customer-label relationships.
+ // Operation statuses are returned.
+ rpc MutateCustomerLabels(MutateCustomerLabelsRequest) returns (MutateCustomerLabelsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/customerLabels:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CustomerLabelService.GetCustomerLabel][google.ads.googleads.v1.services.CustomerLabelService.GetCustomerLabel].
+message GetCustomerLabelRequest {
+ // The resource name of the customer-label relationship to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v1.services.CustomerLabelService.MutateCustomerLabels].
+message MutateCustomerLabelsRequest {
+ // ID of the customer whose customer-label relationships are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on customer-label relationships.
+ repeated CustomerLabelOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on a customer-label relationship.
+message CustomerLabelOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new customer-label
+ // relationship.
+ google.ads.googleads.v1.resources.CustomerLabel create = 1;
+
+ // Remove operation: A resource name for the customer-label relationship
+ // being removed, in this format:
+ //
+ // `customers/{customer_id}/customerLabels/{label_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for a customer labels mutate.
+message MutateCustomerLabelsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCustomerLabelResult results = 2;
+}
+
+// The result for a customer label mutate.
+message MutateCustomerLabelResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_manager_link_service.proto b/google/ads/googleads/v1/services/customer_manager_link_service.proto
new file mode 100644
index 000000000..fc0cb82c8
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_manager_link_service.proto
@@ -0,0 +1,92 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer_manager_link.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerManagerLinkServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Service to manage customer-manager links.
+service CustomerManagerLinkService {
+ // Returns the requested CustomerManagerLink in full detail.
+ rpc GetCustomerManagerLink(GetCustomerManagerLinkRequest) returns (google.ads.googleads.v1.resources.CustomerManagerLink) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customerManagerLinks/*}"
+ };
+ }
+
+ // Creates or updates customer manager links. Operation statuses are returned.
+ rpc MutateCustomerManagerLink(MutateCustomerManagerLinkRequest) returns (MutateCustomerManagerLinkResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/customerManagerLinks:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CustomerManagerLinkService.GetCustomerManagerLink][google.ads.googleads.v1.services.CustomerManagerLinkService.GetCustomerManagerLink].
+message GetCustomerManagerLinkRequest {
+ // The resource name of the CustomerManagerLink to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v1.services.CustomerManagerLinkService.MutateCustomerManagerLink].
+message MutateCustomerManagerLinkRequest {
+ // The ID of the customer whose customer manager links are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual customer manager links.
+ repeated CustomerManagerLinkOperation operations = 2;
+}
+
+// Updates the status of a CustomerManagerLink.
+// The following actions are possible:
+// 1. Update operation with status ACTIVE accepts a pending invitation.
+// 2. Update operation with status REFUSED declines a pending invitation.
+// 3. Update operation with status INACTIVE terminates link to manager.
+message CustomerManagerLinkOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Update operation: The link is expected to have a valid resource name.
+ google.ads.googleads.v1.resources.CustomerManagerLink update = 2;
+ }
+}
+
+// Response message for a CustomerManagerLink mutate.
+message MutateCustomerManagerLinkResponse {
+ // A result that identifies the resource affected by the mutate request.
+ repeated MutateCustomerManagerLinkResult results = 1;
+}
+
+// The result for the customer manager link mutate.
+message MutateCustomerManagerLinkResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_negative_criterion_service.proto b/google/ads/googleads/v1/services/customer_negative_criterion_service.proto
new file mode 100644
index 000000000..67ff7174d
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_negative_criterion_service.proto
@@ -0,0 +1,112 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer_negative_criterion.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerNegativeCriterionServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Customer Negative Criterion service.
+
+// Service to manage customer negative criteria.
+service CustomerNegativeCriterionService {
+ // Returns the requested criterion in full detail.
+ rpc GetCustomerNegativeCriterion(GetCustomerNegativeCriterionRequest) returns (google.ads.googleads.v1.resources.CustomerNegativeCriterion) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/customerNegativeCriteria/*}"
+ };
+ }
+
+ // Creates or removes criteria. Operation statuses are returned.
+ rpc MutateCustomerNegativeCriteria(MutateCustomerNegativeCriteriaRequest) returns (MutateCustomerNegativeCriteriaResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/customerNegativeCriteria:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [CustomerNegativeCriterionService.GetCustomerNegativeCriterion][google.ads.googleads.v1.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion].
+message GetCustomerNegativeCriterionRequest {
+ // The resource name of the criterion to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v1.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria].
+message MutateCustomerNegativeCriteriaRequest {
+ // The ID of the customer whose criteria are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual criteria.
+ repeated CustomerNegativeCriterionOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create or remove) on a customer level negative criterion.
+message CustomerNegativeCriterionOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new criterion.
+ google.ads.googleads.v1.resources.CustomerNegativeCriterion create = 1;
+
+ // Remove operation: A resource name for the removed criterion is expected,
+ // in this format:
+ //
+ // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for customer negative criterion mutate.
+message MutateCustomerNegativeCriteriaResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateCustomerNegativeCriteriaResult results = 2;
+}
+
+// The result for the criterion mutate.
+message MutateCustomerNegativeCriteriaResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/customer_service.proto b/google/ads/googleads/v1/services/customer_service.proto
new file mode 100644
index 000000000..a71750f2e
--- /dev/null
+++ b/google/ads/googleads/v1/services/customer_service.proto
@@ -0,0 +1,136 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/customer.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "CustomerServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Customer service.
+
+// Service to manage customers.
+service CustomerService {
+ // Returns the requested customer in full detail.
+ rpc GetCustomer(GetCustomerRequest) returns (google.ads.googleads.v1.resources.Customer) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*}"
+ };
+ }
+
+ // Updates a customer. Operation statuses are returned.
+ rpc MutateCustomer(MutateCustomerRequest) returns (MutateCustomerResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}:mutate"
+ body: "*"
+ };
+ }
+
+ // Returns resource names of customers directly accessible by the
+ // user authenticating the call.
+ rpc ListAccessibleCustomers(ListAccessibleCustomersRequest) returns (ListAccessibleCustomersResponse) {
+ option (google.api.http) = {
+ get: "/v1/customers:listAccessibleCustomers"
+ };
+ }
+
+ // Creates a new client under manager. The new client customer is returned.
+ rpc CreateCustomerClient(CreateCustomerClientRequest) returns (CreateCustomerClientResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}:createCustomerClient"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [CustomerService.GetCustomer][google.ads.googleads.v1.services.CustomerService.GetCustomer].
+message GetCustomerRequest {
+ // The resource name of the customer to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [CustomerService.MutateCustomer][google.ads.googleads.v1.services.CustomerService.MutateCustomer].
+message MutateCustomerRequest {
+ // The ID of the customer being modified.
+ string customer_id = 1;
+
+ // The operation to perform on the customer
+ CustomerOperation operation = 4;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 5;
+}
+
+// Request message for [CustomerService.CreateCustomerClient][google.ads.googleads.v1.services.CustomerService.CreateCustomerClient].
+message CreateCustomerClientRequest {
+ // The ID of the Manager under whom client customer is being created.
+ string customer_id = 1;
+
+ // The new client customer to create. The resource name on this customer
+ // will be ignored.
+ google.ads.googleads.v1.resources.Customer customer_client = 2;
+}
+
+// A single update on a customer.
+message CustomerOperation {
+ // Mutate operation. Only updates are supported for customer.
+ google.ads.googleads.v1.resources.Customer update = 1;
+
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 2;
+}
+
+// Response message for CreateCustomerClient mutate.
+message CreateCustomerClientResponse {
+ // The resource name of the newly created customer client.
+ string resource_name = 2;
+}
+
+// Response message for customer mutate.
+message MutateCustomerResponse {
+ // Result for the mutate.
+ MutateCustomerResult result = 2;
+}
+
+// The result for the customer mutate.
+message MutateCustomerResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
+
+// Request message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v1.services.CustomerService.ListAccessibleCustomers].
+message ListAccessibleCustomersRequest {
+
+}
+
+// Response message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v1.services.CustomerService.ListAccessibleCustomers].
+message ListAccessibleCustomersResponse {
+ // Resource name of customers directly accessible by the
+ // user authenticating the call.
+ repeated string resource_names = 1;
+}
diff --git a/google/ads/googleads/v1/services/detail_placement_view_service.proto b/google/ads/googleads/v1/services/detail_placement_view_service.proto
new file mode 100644
index 000000000..c006fbb53
--- /dev/null
+++ b/google/ads/googleads/v1/services/detail_placement_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/detail_placement_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "DetailPlacementViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Detail Placement View service.
+
+// Service to fetch Detail Placement views.
+service DetailPlacementViewService {
+ // Returns the requested Detail Placement view in full detail.
+ rpc GetDetailPlacementView(GetDetailPlacementViewRequest) returns (google.ads.googleads.v1.resources.DetailPlacementView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/detailPlacementViews/*}"
+ };
+ }
+}
+
+// Request message for [DetailPlacementViewService.GetDetailPlacementView][google.ads.googleads.v1.services.DetailPlacementViewService.GetDetailPlacementView].
+message GetDetailPlacementViewRequest {
+ // The resource name of the Detail Placement view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/display_keyword_view_service.proto b/google/ads/googleads/v1/services/display_keyword_view_service.proto
new file mode 100644
index 000000000..525bfffcf
--- /dev/null
+++ b/google/ads/googleads/v1/services/display_keyword_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/display_keyword_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "DisplayKeywordViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Display Keyword View service.
+
+// Service to manage display keyword views.
+service DisplayKeywordViewService {
+ // Returns the requested display keyword view in full detail.
+ rpc GetDisplayKeywordView(GetDisplayKeywordViewRequest) returns (google.ads.googleads.v1.resources.DisplayKeywordView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/displayKeywordViews/*}"
+ };
+ }
+}
+
+// Request message for [DisplayKeywordViewService.GetDisplayKeywordView][google.ads.googleads.v1.services.DisplayKeywordViewService.GetDisplayKeywordView].
+message GetDisplayKeywordViewRequest {
+ // The resource name of the display keyword view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/domain_category_service.proto b/google/ads/googleads/v1/services/domain_category_service.proto
new file mode 100644
index 000000000..5fa1c8a09
--- /dev/null
+++ b/google/ads/googleads/v1/services/domain_category_service.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/domain_category.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "DomainCategoryServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the DomainCategory Service.
+
+// Service to fetch domain categories.
+service DomainCategoryService {
+ // Returns the requested domain category.
+ rpc GetDomainCategory(GetDomainCategoryRequest) returns (google.ads.googleads.v1.resources.DomainCategory) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/domainCategories/*}"
+ };
+ }
+}
+
+// Request message for
+// [DomainCategoryService.GetDomainCategory][google.ads.googleads.v1.services.DomainCategoryService.GetDomainCategory].
+message GetDomainCategoryRequest {
+ // Resource name of the domain category to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/dynamic_search_ads_search_term_view_service.proto b/google/ads/googleads/v1/services/dynamic_search_ads_search_term_view_service.proto
new file mode 100644
index 000000000..ac745836c
--- /dev/null
+++ b/google/ads/googleads/v1/services/dynamic_search_ads_search_term_view_service.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "DynamicSearchAdsSearchTermViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Dynamic Search Ads Search Term View service.
+
+// Service to fetch dynamic search ads views.
+service DynamicSearchAdsSearchTermViewService {
+ // Returns the requested dynamic search ads search term view in full detail.
+ rpc GetDynamicSearchAdsSearchTermView(GetDynamicSearchAdsSearchTermViewRequest) returns (google.ads.googleads.v1.resources.DynamicSearchAdsSearchTermView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}"
+ };
+ }
+}
+
+// Request message for
+// [DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView][google.ads.googleads.v1.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView].
+message GetDynamicSearchAdsSearchTermViewRequest {
+ // The resource name of the dynamic search ads search term view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/extension_feed_item_service.proto b/google/ads/googleads/v1/services/extension_feed_item_service.proto
new file mode 100644
index 000000000..8b05fbbcc
--- /dev/null
+++ b/google/ads/googleads/v1/services/extension_feed_item_service.proto
@@ -0,0 +1,108 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/extension_feed_item.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionFeedItemServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the ExtensionFeedItem service.
+
+// Service to manage extension feed items.
+service ExtensionFeedItemService {
+ // Returns the requested extension feed item in full detail.
+ rpc GetExtensionFeedItem(GetExtensionFeedItemRequest) returns (google.ads.googleads.v1.resources.ExtensionFeedItem) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/extensionFeedItems/*}"
+ };
+ }
+
+ // Creates, updates, or removes extension feed items. Operation
+ // statuses are returned.
+ rpc MutateExtensionFeedItems(MutateExtensionFeedItemsRequest) returns (MutateExtensionFeedItemsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/extensionFeedItems:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [ExtensionFeedItemService.GetExtensionFeedItem][google.ads.googleads.v1.services.ExtensionFeedItemService.GetExtensionFeedItem].
+message GetExtensionFeedItemRequest {
+ // The resource name of the extension feed item to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v1.services.ExtensionFeedItemService.MutateExtensionFeedItems].
+message MutateExtensionFeedItemsRequest {
+ // The ID of the customer whose extension feed items are being
+ // modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual extension feed items.
+ repeated ExtensionFeedItemOperation operations = 2;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an extension feed item.
+message ExtensionFeedItemOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new extension
+ // feed item.
+ google.ads.googleads.v1.resources.ExtensionFeedItem create = 1;
+
+ // Update operation: The extension feed item is expected to have a
+ // valid resource name.
+ google.ads.googleads.v1.resources.ExtensionFeedItem update = 2;
+
+ // Remove operation: A resource name for the removed extension feed item
+ // is expected, in this format:
+ //
+ // `customers/{customer_id}/extensionFeedItems/{feed_item_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an extension feed item mutate.
+message MutateExtensionFeedItemsResponse {
+ // All results for the mutate.
+ repeated MutateExtensionFeedItemResult results = 2;
+}
+
+// The result for the extension feed item mutate.
+message MutateExtensionFeedItemResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/feed_item_service.proto b/google/ads/googleads/v1/services/feed_item_service.proto
new file mode 100644
index 000000000..bc0719a8b
--- /dev/null
+++ b/google/ads/googleads/v1/services/feed_item_service.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/feed_item.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the FeedItem service.
+
+// Service to manage feed items.
+service FeedItemService {
+ // Returns the requested feed item in full detail.
+ rpc GetFeedItem(GetFeedItemRequest) returns (google.ads.googleads.v1.resources.FeedItem) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/feedItems/*}"
+ };
+ }
+
+ // Creates, updates, or removes feed items. Operation statuses are
+ // returned.
+ rpc MutateFeedItems(MutateFeedItemsRequest) returns (MutateFeedItemsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/feedItems:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [FeedItemService.GetFeedItem][google.ads.googleads.v1.services.FeedItemService.GetFeedItem].
+message GetFeedItemRequest {
+ // The resource name of the feed item to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [FeedItemService.MutateFeedItems][google.ads.googleads.v1.services.FeedItemService.MutateFeedItems].
+message MutateFeedItemsRequest {
+ // The ID of the customer whose feed items are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual feed items.
+ repeated FeedItemOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an feed item.
+message FeedItemOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new feed item.
+ google.ads.googleads.v1.resources.FeedItem create = 1;
+
+ // Update operation: The feed item is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.FeedItem update = 2;
+
+ // Remove operation: A resource name for the removed feed item is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an feed item mutate.
+message MutateFeedItemsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateFeedItemResult results = 2;
+}
+
+// The result for the feed item mutate.
+message MutateFeedItemResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/feed_item_target_service.proto b/google/ads/googleads/v1/services/feed_item_target_service.proto
new file mode 100644
index 000000000..08dba26d7
--- /dev/null
+++ b/google/ads/googleads/v1/services/feed_item_target_service.proto
@@ -0,0 +1,94 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/feed_item_target.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "FeedItemTargetServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the FeedItemTarget service.
+
+// Service to manage feed item targets.
+service FeedItemTargetService {
+ // Returns the requested feed item targets in full detail.
+ rpc GetFeedItemTarget(GetFeedItemTargetRequest) returns (google.ads.googleads.v1.resources.FeedItemTarget) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/feedItemTargets/*}"
+ };
+ }
+
+ // Creates or removes feed item targets. Operation statuses are returned.
+ rpc MutateFeedItemTargets(MutateFeedItemTargetsRequest) returns (MutateFeedItemTargetsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/feedItemTargets:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [FeedItemTargetService.GetFeedItemTarget][google.ads.googleads.v1.services.FeedItemTargetService.GetFeedItemTarget].
+message GetFeedItemTargetRequest {
+ // The resource name of the feed item targets to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v1.services.FeedItemTargetService.MutateFeedItemTargets].
+message MutateFeedItemTargetsRequest {
+ // The ID of the customer whose feed item targets are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual feed item targets.
+ repeated FeedItemTargetOperation operations = 2;
+}
+
+// A single operation (create, remove) on an feed item target.
+message FeedItemTargetOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new feed item
+ // target.
+ google.ads.googleads.v1.resources.FeedItemTarget create = 1;
+
+ // Remove operation: A resource name for the removed feed item target is
+ // expected, in this format:
+ //
+ //
+ // `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for an feed item target mutate.
+message MutateFeedItemTargetsResponse {
+ // All results for the mutate.
+ repeated MutateFeedItemTargetResult results = 2;
+}
+
+// The result for the feed item target mutate.
+message MutateFeedItemTargetResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/feed_mapping_service.proto b/google/ads/googleads/v1/services/feed_mapping_service.proto
new file mode 100644
index 000000000..397515d5d
--- /dev/null
+++ b/google/ads/googleads/v1/services/feed_mapping_service.proto
@@ -0,0 +1,111 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/feed_mapping.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "FeedMappingServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the FeedMapping service.
+
+// Service to manage feed mappings.
+service FeedMappingService {
+ // Returns the requested feed mapping in full detail.
+ rpc GetFeedMapping(GetFeedMappingRequest) returns (google.ads.googleads.v1.resources.FeedMapping) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/feedMappings/*}"
+ };
+ }
+
+ // Creates or removes feed mappings. Operation statuses are
+ // returned.
+ rpc MutateFeedMappings(MutateFeedMappingsRequest) returns (MutateFeedMappingsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/feedMappings:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [FeedMappingService.GetFeedMapping][google.ads.googleads.v1.services.FeedMappingService.GetFeedMapping].
+message GetFeedMappingRequest {
+ // The resource name of the feed mapping to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [FeedMappingService.MutateFeedMappings][google.ads.googleads.v1.services.FeedMappingService.MutateFeedMappings].
+message MutateFeedMappingsRequest {
+ // The ID of the customer whose feed mappings are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual feed mappings.
+ repeated FeedMappingOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on a feed mapping.
+message FeedMappingOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new feed mapping.
+ google.ads.googleads.v1.resources.FeedMapping create = 1;
+
+ // Remove operation: A resource name for the removed feed mapping is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a feed mapping mutate.
+message MutateFeedMappingsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateFeedMappingResult results = 2;
+}
+
+// The result for the feed mapping mutate.
+message MutateFeedMappingResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/feed_placeholder_view_service.proto b/google/ads/googleads/v1/services/feed_placeholder_view_service.proto
new file mode 100644
index 000000000..f572e7d94
--- /dev/null
+++ b/google/ads/googleads/v1/services/feed_placeholder_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/feed_placeholder_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "FeedPlaceholderViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the FeedPlaceholderView service.
+
+// Service to fetch feed placeholder views.
+service FeedPlaceholderViewService {
+ // Returns the requested feed placeholder view in full detail.
+ rpc GetFeedPlaceholderView(GetFeedPlaceholderViewRequest) returns (google.ads.googleads.v1.resources.FeedPlaceholderView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/feedPlaceholderViews/*}"
+ };
+ }
+}
+
+// Request message for [FeedPlaceholderViewService.GetFeedPlaceholderView][google.ads.googleads.v1.services.FeedPlaceholderViewService.GetFeedPlaceholderView].
+message GetFeedPlaceholderViewRequest {
+ // The resource name of the feed placeholder view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/feed_service.proto b/google/ads/googleads/v1/services/feed_service.proto
new file mode 100644
index 000000000..4c828dfb1
--- /dev/null
+++ b/google/ads/googleads/v1/services/feed_service.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/feed.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "FeedServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Feed service.
+
+// Service to manage feeds.
+service FeedService {
+ // Returns the requested feed in full detail.
+ rpc GetFeed(GetFeedRequest) returns (google.ads.googleads.v1.resources.Feed) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/feeds/*}"
+ };
+ }
+
+ // Creates, updates, or removes feeds. Operation statuses are
+ // returned.
+ rpc MutateFeeds(MutateFeedsRequest) returns (MutateFeedsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/feeds:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [FeedService.GetFeed][google.ads.googleads.v1.services.FeedService.GetFeed].
+message GetFeedRequest {
+ // The resource name of the feed to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [FeedService.MutateFeeds][google.ads.googleads.v1.services.FeedService.MutateFeeds].
+message MutateFeedsRequest {
+ // The ID of the customer whose feeds are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual feeds.
+ repeated FeedOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an feed.
+message FeedOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new feed.
+ google.ads.googleads.v1.resources.Feed create = 1;
+
+ // Update operation: The feed is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.Feed update = 2;
+
+ // Remove operation: A resource name for the removed feed is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/feeds/{feed_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for an feed mutate.
+message MutateFeedsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateFeedResult results = 2;
+}
+
+// The result for the feed mutate.
+message MutateFeedResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/gender_view_service.proto b/google/ads/googleads/v1/services/gender_view_service.proto
new file mode 100644
index 000000000..a31b50ab7
--- /dev/null
+++ b/google/ads/googleads/v1/services/gender_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/gender_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "GenderViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Gender View service.
+
+// Service to manage gender views.
+service GenderViewService {
+ // Returns the requested gender view in full detail.
+ rpc GetGenderView(GetGenderViewRequest) returns (google.ads.googleads.v1.resources.GenderView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/genderViews/*}"
+ };
+ }
+}
+
+// Request message for [GenderViewService.GetGenderView][google.ads.googleads.v1.services.GenderViewService.GetGenderView].
+message GetGenderViewRequest {
+ // The resource name of the gender view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/geo_target_constant_service.proto b/google/ads/googleads/v1/services/geo_target_constant_service.proto
new file mode 100644
index 000000000..ef64c6f5e
--- /dev/null
+++ b/google/ads/googleads/v1/services/geo_target_constant_service.proto
@@ -0,0 +1,119 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/geo_target_constant.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "GeoTargetConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Geo target constant service.
+
+// Service to fetch geo target constants.
+service GeoTargetConstantService {
+ // Returns the requested geo target constant in full detail.
+ rpc GetGeoTargetConstant(GetGeoTargetConstantRequest) returns (google.ads.googleads.v1.resources.GeoTargetConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=geoTargetConstants/*}"
+ };
+ }
+
+ // Returns GeoTargetConstant suggestions by location name or by resource name.
+ rpc SuggestGeoTargetConstants(SuggestGeoTargetConstantsRequest) returns (SuggestGeoTargetConstantsResponse) {
+ option (google.api.http) = {
+ post: "/v1/geoTargetConstants:suggest"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [GeoTargetConstantService.GetGeoTargetConstant][google.ads.googleads.v1.services.GeoTargetConstantService.GetGeoTargetConstant].
+message GetGeoTargetConstantRequest {
+ // The resource name of the geo target constant to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [GeoTargetConstantService.SuggestGeoTargetConstantsRequest][].
+message SuggestGeoTargetConstantsRequest {
+ // A list of location names.
+ message LocationNames {
+ // A list of location names.
+ repeated google.protobuf.StringValue names = 1;
+ }
+
+ // A list of geo target constant resource names.
+ message GeoTargets {
+ // A list of geo target constant resource names.
+ repeated google.protobuf.StringValue geo_target_constants = 1;
+ }
+
+ // If possible, returned geo targets are translated using this locale. If not,
+ // en is used by default. This is also used as a hint for returned geo
+ // targets.
+ google.protobuf.StringValue locale = 3;
+
+ // Returned geo targets are restricted to this country code.
+ google.protobuf.StringValue country_code = 5;
+
+ // Required. A selector of geo target constants.
+ oneof query {
+ // The location names to search by. At most 25 names can be set.
+ LocationNames location_names = 1;
+
+ // The geo target constant resource names to filter by.
+ GeoTargets geo_targets = 2;
+ }
+}
+
+// Response message for [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v1.services.GeoTargetConstantService.SuggestGeoTargetConstants]
+message SuggestGeoTargetConstantsResponse {
+ // Geo target constant suggestions.
+ repeated GeoTargetConstantSuggestion geo_target_constant_suggestions = 1;
+}
+
+// A geo target constant suggestion.
+message GeoTargetConstantSuggestion {
+ // The language this GeoTargetConstantSuggestion is currently translated to.
+ // It affects the name of geo target fields. For example, if locale=en, then
+ // name=Spain. If locale=es, then name=España. The default locale will be
+ // returned if no translation exists for the locale in the request.
+ google.protobuf.StringValue locale = 1;
+
+ // Approximate user population that will be targeted, rounded to the
+ // nearest 100.
+ google.protobuf.Int64Value reach = 2;
+
+ // If the request searched by location name, this is the location name that
+ // matched the geo target.
+ google.protobuf.StringValue search_term = 3;
+
+ // The GeoTargetConstant result.
+ google.ads.googleads.v1.resources.GeoTargetConstant geo_target_constant = 4;
+
+ // The list of parents of the geo target constant.
+ repeated google.ads.googleads.v1.resources.GeoTargetConstant geo_target_constant_parents = 5;
+}
diff --git a/google/ads/googleads/v1/services/geographic_view_service.proto b/google/ads/googleads/v1/services/geographic_view_service.proto
new file mode 100644
index 000000000..96f6ac339
--- /dev/null
+++ b/google/ads/googleads/v1/services/geographic_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/geographic_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "GeographicViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the GeographicViewService.
+
+// Service to manage geographic views.
+service GeographicViewService {
+ // Returns the requested geographic view in full detail.
+ rpc GetGeographicView(GetGeographicViewRequest) returns (google.ads.googleads.v1.resources.GeographicView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/geographicViews/*}"
+ };
+ }
+}
+
+// Request message for [GeographicViewService.GetGeographicView][google.ads.googleads.v1.services.GeographicViewService.GetGeographicView].
+message GetGeographicViewRequest {
+ // The resource name of the geographic view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/google_ads_field_service.proto b/google/ads/googleads/v1/services/google_ads_field_service.proto
new file mode 100644
index 000000000..b6ee36d52
--- /dev/null
+++ b/google/ads/googleads/v1/services/google_ads_field_service.proto
@@ -0,0 +1,86 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/google_ads_field.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "GoogleAdsFieldServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the GoogleAdsFieldService
+
+// Service to fetch Google Ads API fields.
+service GoogleAdsFieldService {
+ // Returns just the requested field.
+ rpc GetGoogleAdsField(GetGoogleAdsFieldRequest) returns (google.ads.googleads.v1.resources.GoogleAdsField) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=googleAdsFields/*}"
+ };
+ }
+
+ // Returns all fields that match the search query.
+ rpc SearchGoogleAdsFields(SearchGoogleAdsFieldsRequest) returns (SearchGoogleAdsFieldsResponse) {
+ option (google.api.http) = {
+ post: "/v1/googleAdsFields:search"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v1.services.GoogleAdsFieldService.GetGoogleAdsField].
+message GetGoogleAdsFieldRequest {
+ // The resource name of the field to get.
+ string resource_name = 1;
+}
+
+// Request message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v1.services.GoogleAdsFieldService.SearchGoogleAdsFields].
+message SearchGoogleAdsFieldsRequest {
+ // The query string.
+ string query = 1;
+
+ // Token of the page to retrieve. If not specified, the first page of
+ // results will be returned. Use the value obtained from `next_page_token`
+ // in the previous response in order to request the next page of results.
+ string page_token = 2;
+
+ // Number of elements to retrieve in a single page.
+ // When too large a page is requested, the server may decide to further
+ // limit the number of returned resources.
+ int32 page_size = 3;
+}
+
+// Response message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v1.services.GoogleAdsFieldService.SearchGoogleAdsFields].
+message SearchGoogleAdsFieldsResponse {
+ // The list of fields that matched the query.
+ repeated google.ads.googleads.v1.resources.GoogleAdsField results = 1;
+
+ // Pagination token used to retrieve the next page of results. Pass the
+ // content of this string as the `page_token` attribute of the next request.
+ // `next_page_token` is not returned for the last page.
+ string next_page_token = 2;
+
+ // Total number of results that match the query ignoring the LIMIT clause.
+ int64 total_results_count = 3;
+}
diff --git a/google/ads/googleads/v1/services/google_ads_service.proto b/google/ads/googleads/v1/services/google_ads_service.proto
new file mode 100644
index 000000000..e7a656a76
--- /dev/null
+++ b/google/ads/googleads/v1/services/google_ads_service.proto
@@ -0,0 +1,739 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/common/metrics.proto";
+import "google/ads/googleads/v1/common/segments.proto";
+import "google/ads/googleads/v1/resources/account_budget.proto";
+import "google/ads/googleads/v1/resources/account_budget_proposal.proto";
+import "google/ads/googleads/v1/resources/ad_group.proto";
+import "google/ads/googleads/v1/resources/ad_group_ad.proto";
+import "google/ads/googleads/v1/resources/ad_group_ad_label.proto";
+import "google/ads/googleads/v1/resources/ad_group_audience_view.proto";
+import "google/ads/googleads/v1/resources/ad_group_bid_modifier.proto";
+import "google/ads/googleads/v1/resources/ad_group_criterion.proto";
+import "google/ads/googleads/v1/resources/ad_group_criterion_label.proto";
+import "google/ads/googleads/v1/resources/ad_group_extension_setting.proto";
+import "google/ads/googleads/v1/resources/ad_group_feed.proto";
+import "google/ads/googleads/v1/resources/ad_group_label.proto";
+import "google/ads/googleads/v1/resources/ad_schedule_view.proto";
+import "google/ads/googleads/v1/resources/age_range_view.proto";
+import "google/ads/googleads/v1/resources/asset.proto";
+import "google/ads/googleads/v1/resources/bidding_strategy.proto";
+import "google/ads/googleads/v1/resources/billing_setup.proto";
+import "google/ads/googleads/v1/resources/campaign.proto";
+import "google/ads/googleads/v1/resources/campaign_audience_view.proto";
+import "google/ads/googleads/v1/resources/campaign_bid_modifier.proto";
+import "google/ads/googleads/v1/resources/campaign_budget.proto";
+import "google/ads/googleads/v1/resources/campaign_criterion.proto";
+import "google/ads/googleads/v1/resources/campaign_extension_setting.proto";
+import "google/ads/googleads/v1/resources/campaign_feed.proto";
+import "google/ads/googleads/v1/resources/campaign_label.proto";
+import "google/ads/googleads/v1/resources/campaign_shared_set.proto";
+import "google/ads/googleads/v1/resources/carrier_constant.proto";
+import "google/ads/googleads/v1/resources/change_status.proto";
+import "google/ads/googleads/v1/resources/click_view.proto";
+import "google/ads/googleads/v1/resources/conversion_action.proto";
+import "google/ads/googleads/v1/resources/custom_interest.proto";
+import "google/ads/googleads/v1/resources/customer.proto";
+import "google/ads/googleads/v1/resources/customer_client.proto";
+import "google/ads/googleads/v1/resources/customer_client_link.proto";
+import "google/ads/googleads/v1/resources/customer_extension_setting.proto";
+import "google/ads/googleads/v1/resources/customer_feed.proto";
+import "google/ads/googleads/v1/resources/customer_label.proto";
+import "google/ads/googleads/v1/resources/customer_manager_link.proto";
+import "google/ads/googleads/v1/resources/customer_negative_criterion.proto";
+import "google/ads/googleads/v1/resources/detail_placement_view.proto";
+import "google/ads/googleads/v1/resources/display_keyword_view.proto";
+import "google/ads/googleads/v1/resources/domain_category.proto";
+import "google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto";
+import "google/ads/googleads/v1/resources/extension_feed_item.proto";
+import "google/ads/googleads/v1/resources/feed.proto";
+import "google/ads/googleads/v1/resources/feed_item.proto";
+import "google/ads/googleads/v1/resources/feed_item_target.proto";
+import "google/ads/googleads/v1/resources/feed_mapping.proto";
+import "google/ads/googleads/v1/resources/feed_placeholder_view.proto";
+import "google/ads/googleads/v1/resources/gender_view.proto";
+import "google/ads/googleads/v1/resources/geo_target_constant.proto";
+import "google/ads/googleads/v1/resources/geographic_view.proto";
+import "google/ads/googleads/v1/resources/group_placement_view.proto";
+import "google/ads/googleads/v1/resources/hotel_group_view.proto";
+import "google/ads/googleads/v1/resources/hotel_performance_view.proto";
+import "google/ads/googleads/v1/resources/keyword_plan.proto";
+import "google/ads/googleads/v1/resources/keyword_plan_ad_group.proto";
+import "google/ads/googleads/v1/resources/keyword_plan_campaign.proto";
+import "google/ads/googleads/v1/resources/keyword_plan_keyword.proto";
+import "google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto";
+import "google/ads/googleads/v1/resources/keyword_view.proto";
+import "google/ads/googleads/v1/resources/label.proto";
+import "google/ads/googleads/v1/resources/language_constant.proto";
+import "google/ads/googleads/v1/resources/location_view.proto";
+import "google/ads/googleads/v1/resources/managed_placement_view.proto";
+import "google/ads/googleads/v1/resources/media_file.proto";
+import "google/ads/googleads/v1/resources/mobile_app_category_constant.proto";
+import "google/ads/googleads/v1/resources/mobile_device_constant.proto";
+import "google/ads/googleads/v1/resources/operating_system_version_constant.proto";
+import "google/ads/googleads/v1/resources/parental_status_view.proto";
+import "google/ads/googleads/v1/resources/product_bidding_category_constant.proto";
+import "google/ads/googleads/v1/resources/product_group_view.proto";
+import "google/ads/googleads/v1/resources/recommendation.proto";
+import "google/ads/googleads/v1/resources/remarketing_action.proto";
+import "google/ads/googleads/v1/resources/search_term_view.proto";
+import "google/ads/googleads/v1/resources/shared_criterion.proto";
+import "google/ads/googleads/v1/resources/shared_set.proto";
+import "google/ads/googleads/v1/resources/shopping_performance_view.proto";
+import "google/ads/googleads/v1/resources/topic_constant.proto";
+import "google/ads/googleads/v1/resources/topic_view.proto";
+import "google/ads/googleads/v1/resources/user_interest.proto";
+import "google/ads/googleads/v1/resources/user_list.proto";
+import "google/ads/googleads/v1/resources/video.proto";
+import "google/ads/googleads/v1/services/ad_group_ad_label_service.proto";
+import "google/ads/googleads/v1/services/ad_group_ad_service.proto";
+import "google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto";
+import "google/ads/googleads/v1/services/ad_group_criterion_label_service.proto";
+import "google/ads/googleads/v1/services/ad_group_criterion_service.proto";
+import "google/ads/googleads/v1/services/ad_group_extension_setting_service.proto";
+import "google/ads/googleads/v1/services/ad_group_feed_service.proto";
+import "google/ads/googleads/v1/services/ad_group_label_service.proto";
+import "google/ads/googleads/v1/services/ad_group_service.proto";
+import "google/ads/googleads/v1/services/ad_parameter_service.proto";
+import "google/ads/googleads/v1/services/asset_service.proto";
+import "google/ads/googleads/v1/services/bidding_strategy_service.proto";
+import "google/ads/googleads/v1/services/campaign_bid_modifier_service.proto";
+import "google/ads/googleads/v1/services/campaign_budget_service.proto";
+import "google/ads/googleads/v1/services/campaign_criterion_service.proto";
+import "google/ads/googleads/v1/services/campaign_extension_setting_service.proto";
+import "google/ads/googleads/v1/services/campaign_feed_service.proto";
+import "google/ads/googleads/v1/services/campaign_label_service.proto";
+import "google/ads/googleads/v1/services/campaign_service.proto";
+import "google/ads/googleads/v1/services/campaign_shared_set_service.proto";
+import "google/ads/googleads/v1/services/conversion_action_service.proto";
+import "google/ads/googleads/v1/services/customer_extension_setting_service.proto";
+import "google/ads/googleads/v1/services/customer_feed_service.proto";
+import "google/ads/googleads/v1/services/customer_label_service.proto";
+import "google/ads/googleads/v1/services/customer_negative_criterion_service.proto";
+import "google/ads/googleads/v1/services/customer_service.proto";
+import "google/ads/googleads/v1/services/extension_feed_item_service.proto";
+import "google/ads/googleads/v1/services/feed_item_service.proto";
+import "google/ads/googleads/v1/services/feed_item_target_service.proto";
+import "google/ads/googleads/v1/services/feed_mapping_service.proto";
+import "google/ads/googleads/v1/services/feed_service.proto";
+import "google/ads/googleads/v1/services/label_service.proto";
+import "google/ads/googleads/v1/services/media_file_service.proto";
+import "google/ads/googleads/v1/services/remarketing_action_service.proto";
+import "google/ads/googleads/v1/services/shared_criterion_service.proto";
+import "google/ads/googleads/v1/services/shared_set_service.proto";
+import "google/ads/googleads/v1/services/user_list_service.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "GoogleAdsServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the GoogleAdsService.
+
+// Service to fetch data and metrics across resources.
+service GoogleAdsService {
+ // Returns all rows that match the search query.
+ rpc Search(SearchGoogleAdsRequest) returns (SearchGoogleAdsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/googleAds:search"
+ body: "*"
+ };
+ }
+
+ // Creates, updates, or removes resources. Operation statuses are returned.
+ rpc Mutate(MutateGoogleAdsRequest) returns (MutateGoogleAdsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/googleAds:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [GoogleAdsService.Search][google.ads.googleads.v1.services.GoogleAdsService.Search].
+message SearchGoogleAdsRequest {
+ // The ID of the customer being queried.
+ string customer_id = 1;
+
+ // The query string.
+ string query = 2;
+
+ // Token of the page to retrieve. If not specified, the first
+ // page of results will be returned. Use the value obtained from
+ // `next_page_token` in the previous response in order to request
+ // the next page of results.
+ string page_token = 3;
+
+ // Number of elements to retrieve in a single page.
+ // When too large a page is requested, the server may decide to
+ // further limit the number of returned resources.
+ int32 page_size = 4;
+
+ // If true, the request is validated but not executed.
+ bool validate_only = 5;
+}
+
+// Response message for [GoogleAdsService.Search][google.ads.googleads.v1.services.GoogleAdsService.Search].
+message SearchGoogleAdsResponse {
+ // The list of rows that matched the query.
+ repeated GoogleAdsRow results = 1;
+
+ // Pagination token used to retrieve the next page of results.
+ // Pass the content of this string as the `page_token` attribute of
+ // the next request. `next_page_token` is not returned for the last
+ // page.
+ string next_page_token = 2;
+
+ // Total number of results that match the query ignoring the LIMIT
+ // clause.
+ int64 total_results_count = 3;
+
+ // FieldMask that represents what fields were requested by the user.
+ google.protobuf.FieldMask field_mask = 5;
+}
+
+// A returned row from the query.
+message GoogleAdsRow {
+ // The account budget in the query.
+ google.ads.googleads.v1.resources.AccountBudget account_budget = 42;
+
+ // The account budget proposal referenced in the query.
+ google.ads.googleads.v1.resources.AccountBudgetProposal account_budget_proposal = 43;
+
+ // The ad group referenced in the query.
+ google.ads.googleads.v1.resources.AdGroup ad_group = 3;
+
+ // The ad referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupAd ad_group_ad = 16;
+
+ // The ad group ad label referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupAdLabel ad_group_ad_label = 120;
+
+ // The ad group audience view referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupAudienceView ad_group_audience_view = 57;
+
+ // The bid modifier referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupBidModifier ad_group_bid_modifier = 24;
+
+ // The criterion referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupCriterion ad_group_criterion = 17;
+
+ // The ad group criterion label referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupCriterionLabel ad_group_criterion_label = 121;
+
+ // The ad group extension setting referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupExtensionSetting ad_group_extension_setting = 112;
+
+ // The ad group feed referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupFeed ad_group_feed = 67;
+
+ // The ad group label referenced in the query.
+ google.ads.googleads.v1.resources.AdGroupLabel ad_group_label = 115;
+
+ // The age range view referenced in the query.
+ google.ads.googleads.v1.resources.AgeRangeView age_range_view = 48;
+
+ // The ad schedule view referenced in the query.
+ google.ads.googleads.v1.resources.AdScheduleView ad_schedule_view = 89;
+
+ // The domain category referenced in the query.
+ google.ads.googleads.v1.resources.DomainCategory domain_category = 91;
+
+ // The asset referenced in the query.
+ google.ads.googleads.v1.resources.Asset asset = 105;
+
+ // The bidding strategy referenced in the query.
+ google.ads.googleads.v1.resources.BiddingStrategy bidding_strategy = 18;
+
+ // The billing setup referenced in the query.
+ google.ads.googleads.v1.resources.BillingSetup billing_setup = 41;
+
+ // The campaign budget referenced in the query.
+ google.ads.googleads.v1.resources.CampaignBudget campaign_budget = 19;
+
+ // The campaign referenced in the query.
+ google.ads.googleads.v1.resources.Campaign campaign = 2;
+
+ // The campaign audience view referenced in the query.
+ google.ads.googleads.v1.resources.CampaignAudienceView campaign_audience_view = 69;
+
+ // The campaign bid modifier referenced in the query.
+ google.ads.googleads.v1.resources.CampaignBidModifier campaign_bid_modifier = 26;
+
+ // The campaign criterion referenced in the query.
+ google.ads.googleads.v1.resources.CampaignCriterion campaign_criterion = 20;
+
+ // The campaign extension setting referenced in the query.
+ google.ads.googleads.v1.resources.CampaignExtensionSetting campaign_extension_setting = 113;
+
+ // The campaign feed referenced in the query.
+ google.ads.googleads.v1.resources.CampaignFeed campaign_feed = 63;
+
+ // The campaign label referenced in the query.
+ google.ads.googleads.v1.resources.CampaignLabel campaign_label = 108;
+
+ // Campaign Shared Set referenced in AWQL query.
+ google.ads.googleads.v1.resources.CampaignSharedSet campaign_shared_set = 30;
+
+ // The carrier constant referenced in the query.
+ google.ads.googleads.v1.resources.CarrierConstant carrier_constant = 66;
+
+ // The ChangeStatus referenced in the query.
+ google.ads.googleads.v1.resources.ChangeStatus change_status = 37;
+
+ // The conversion action referenced in the query.
+ google.ads.googleads.v1.resources.ConversionAction conversion_action = 103;
+
+ // The ClickView referenced in the query.
+ google.ads.googleads.v1.resources.ClickView click_view = 122;
+
+ // The CustomInterest referenced in the query.
+ google.ads.googleads.v1.resources.CustomInterest custom_interest = 104;
+
+ // The customer referenced in the query.
+ google.ads.googleads.v1.resources.Customer customer = 1;
+
+ // The CustomerManagerLink referenced in the query.
+ google.ads.googleads.v1.resources.CustomerManagerLink customer_manager_link = 61;
+
+ // The CustomerClientLink referenced in the query.
+ google.ads.googleads.v1.resources.CustomerClientLink customer_client_link = 62;
+
+ // The CustomerClient referenced in the query.
+ google.ads.googleads.v1.resources.CustomerClient customer_client = 70;
+
+ // The customer extension setting referenced in the query.
+ google.ads.googleads.v1.resources.CustomerExtensionSetting customer_extension_setting = 114;
+
+ // The customer feed referenced in the query.
+ google.ads.googleads.v1.resources.CustomerFeed customer_feed = 64;
+
+ // The customer label referenced in the query.
+ google.ads.googleads.v1.resources.CustomerLabel customer_label = 124;
+
+ // The customer negative criterion referenced in the query.
+ google.ads.googleads.v1.resources.CustomerNegativeCriterion customer_negative_criterion = 88;
+
+ // The detail placement view referenced in the query.
+ google.ads.googleads.v1.resources.DetailPlacementView detail_placement_view = 118;
+
+ // The display keyword view referenced in the query.
+ google.ads.googleads.v1.resources.DisplayKeywordView display_keyword_view = 47;
+
+ // The dynamic search ads search term view referenced in the query.
+ google.ads.googleads.v1.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106;
+
+ // The extension feed item referenced in the query.
+ google.ads.googleads.v1.resources.ExtensionFeedItem extension_feed_item = 85;
+
+ // The feed referenced in the query.
+ google.ads.googleads.v1.resources.Feed feed = 46;
+
+ // The feed item referenced in the query.
+ google.ads.googleads.v1.resources.FeedItem feed_item = 50;
+
+ // The feed item target referenced in the query.
+ google.ads.googleads.v1.resources.FeedItemTarget feed_item_target = 116;
+
+ // The feed mapping referenced in the query.
+ google.ads.googleads.v1.resources.FeedMapping feed_mapping = 58;
+
+ // The feed placeholder view referenced in the query.
+ google.ads.googleads.v1.resources.FeedPlaceholderView feed_placeholder_view = 97;
+
+ // The gender view referenced in the query.
+ google.ads.googleads.v1.resources.GenderView gender_view = 40;
+
+ // The geo target constant referenced in the query.
+ google.ads.googleads.v1.resources.GeoTargetConstant geo_target_constant = 23;
+
+ // The geographic view referenced in the query.
+ google.ads.googleads.v1.resources.GeographicView geographic_view = 125;
+
+ // The group placement view referenced in the query.
+ google.ads.googleads.v1.resources.GroupPlacementView group_placement_view = 119;
+
+ // The hotel group view referenced in the query.
+ google.ads.googleads.v1.resources.HotelGroupView hotel_group_view = 51;
+
+ // The hotel performance view referenced in the query.
+ google.ads.googleads.v1.resources.HotelPerformanceView hotel_performance_view = 71;
+
+ // The keyword view referenced in the query.
+ google.ads.googleads.v1.resources.KeywordView keyword_view = 21;
+
+ // The keyword plan referenced in the query.
+ google.ads.googleads.v1.resources.KeywordPlan keyword_plan = 32;
+
+ // The keyword plan campaign referenced in the query.
+ google.ads.googleads.v1.resources.KeywordPlanCampaign keyword_plan_campaign = 33;
+
+ // The keyword plan negative keyword referenced in the query.
+ google.ads.googleads.v1.resources.KeywordPlanNegativeKeyword keyword_plan_negative_keyword = 34;
+
+ // The keyword plan ad group referenced in the query.
+ google.ads.googleads.v1.resources.KeywordPlanAdGroup keyword_plan_ad_group = 35;
+
+ // The keyword plan keyword referenced in the query.
+ google.ads.googleads.v1.resources.KeywordPlanKeyword keyword_plan_keyword = 36;
+
+ // The label referenced in the query.
+ google.ads.googleads.v1.resources.Label label = 52;
+
+ // The language constant referenced in the query.
+ google.ads.googleads.v1.resources.LanguageConstant language_constant = 55;
+
+ // The location view referenced in the query.
+ google.ads.googleads.v1.resources.LocationView location_view = 123;
+
+ // The managed placement view referenced in the query.
+ google.ads.googleads.v1.resources.ManagedPlacementView managed_placement_view = 53;
+
+ // The media file referenced in the query.
+ google.ads.googleads.v1.resources.MediaFile media_file = 90;
+
+ // The mobile app category constant referenced in the query.
+ google.ads.googleads.v1.resources.MobileAppCategoryConstant mobile_app_category_constant = 87;
+
+ // The mobile device constant referenced in the query.
+ google.ads.googleads.v1.resources.MobileDeviceConstant mobile_device_constant = 98;
+
+ // The operating system version constant referenced in the query.
+ google.ads.googleads.v1.resources.OperatingSystemVersionConstant operating_system_version_constant = 86;
+
+ // The parental status view referenced in the query.
+ google.ads.googleads.v1.resources.ParentalStatusView parental_status_view = 45;
+
+ // The Product Bidding Category referenced in the query.
+ google.ads.googleads.v1.resources.ProductBiddingCategoryConstant product_bidding_category_constant = 109;
+
+ // The product group view referenced in the query.
+ google.ads.googleads.v1.resources.ProductGroupView product_group_view = 54;
+
+ // The recommendation referenced in the query.
+ google.ads.googleads.v1.resources.Recommendation recommendation = 22;
+
+ // The search term view referenced in the query.
+ google.ads.googleads.v1.resources.SearchTermView search_term_view = 68;
+
+ // The shared set referenced in the query.
+ google.ads.googleads.v1.resources.SharedCriterion shared_criterion = 29;
+
+ // The shared set referenced in the query.
+ google.ads.googleads.v1.resources.SharedSet shared_set = 27;
+
+ // The shopping performance view referenced in the query.
+ google.ads.googleads.v1.resources.ShoppingPerformanceView shopping_performance_view = 117;
+
+ // The topic view referenced in the query.
+ google.ads.googleads.v1.resources.TopicView topic_view = 44;
+
+ // The user interest referenced in the query.
+ google.ads.googleads.v1.resources.UserInterest user_interest = 59;
+
+ // The user list referenced in the query.
+ google.ads.googleads.v1.resources.UserList user_list = 38;
+
+ // The remarketing action referenced in the query.
+ google.ads.googleads.v1.resources.RemarketingAction remarketing_action = 60;
+
+ // The topic constant referenced in the query.
+ google.ads.googleads.v1.resources.TopicConstant topic_constant = 31;
+
+ // The video referenced in the query.
+ google.ads.googleads.v1.resources.Video video = 39;
+
+ // The metrics.
+ google.ads.googleads.v1.common.Metrics metrics = 4;
+
+ // The segments.
+ google.ads.googleads.v1.common.Segments segments = 102;
+}
+
+// Request message for [GoogleAdsService.Mutate][google.ads.googleads.v1.services.GoogleAdsService.Mutate].
+message MutateGoogleAdsRequest {
+ // The ID of the customer whose resources are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual resources.
+ repeated MutateOperation mutate_operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// Response message for [GoogleAdsService.Mutate][google.ads.googleads.v1.services.GoogleAdsService.Mutate].
+message MutateGoogleAdsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All responses for the mutate.
+ repeated MutateOperationResponse mutate_operation_responses = 1;
+}
+
+// A single operation (create, update, remove) on a resource.
+message MutateOperation {
+ // The mutate operation.
+ oneof operation {
+ // An ad group ad label mutate operation.
+ AdGroupAdLabelOperation ad_group_ad_label_operation = 17;
+
+ // An ad group ad mutate operation.
+ AdGroupAdOperation ad_group_ad_operation = 1;
+
+ // An ad group bid modifier mutate operation.
+ AdGroupBidModifierOperation ad_group_bid_modifier_operation = 2;
+
+ // An ad group criterion label mutate operation.
+ AdGroupCriterionLabelOperation ad_group_criterion_label_operation = 18;
+
+ // An ad group criterion mutate operation.
+ AdGroupCriterionOperation ad_group_criterion_operation = 3;
+
+ // An ad group extension setting mutate operation.
+ AdGroupExtensionSettingOperation ad_group_extension_setting_operation = 19;
+
+ // An ad group feed mutate operation.
+ AdGroupFeedOperation ad_group_feed_operation = 20;
+
+ // An ad group label mutate operation.
+ AdGroupLabelOperation ad_group_label_operation = 21;
+
+ // An ad group mutate operation.
+ AdGroupOperation ad_group_operation = 5;
+
+ // An ad parameter mutate operation.
+ AdParameterOperation ad_parameter_operation = 22;
+
+ // An asset mutate operation.
+ AssetOperation asset_operation = 23;
+
+ // A bidding strategy mutate operation.
+ BiddingStrategyOperation bidding_strategy_operation = 6;
+
+ // A campaign bid modifier mutate operation.
+ CampaignBidModifierOperation campaign_bid_modifier_operation = 7;
+
+ // A campaign budget mutate operation.
+ CampaignBudgetOperation campaign_budget_operation = 8;
+
+ // A campaign criterion mutate operation.
+ CampaignCriterionOperation campaign_criterion_operation = 13;
+
+ // A campaign extension setting mutate operation.
+ CampaignExtensionSettingOperation campaign_extension_setting_operation = 26;
+
+ // A campaign feed mutate operation.
+ CampaignFeedOperation campaign_feed_operation = 27;
+
+ // A campaign label mutate operation.
+ CampaignLabelOperation campaign_label_operation = 28;
+
+ // A campaign mutate operation.
+ CampaignOperation campaign_operation = 10;
+
+ // A campaign shared set mutate operation.
+ CampaignSharedSetOperation campaign_shared_set_operation = 11;
+
+ // A conversion action mutate operation.
+ ConversionActionOperation conversion_action_operation = 12;
+
+ // A customer extension setting mutate operation.
+ CustomerExtensionSettingOperation customer_extension_setting_operation = 30;
+
+ // A customer feed mutate operation.
+ CustomerFeedOperation customer_feed_operation = 31;
+
+ // A customer label mutate operation.
+ CustomerLabelOperation customer_label_operation = 32;
+
+ // A customer negative criterion mutate operation.
+ CustomerNegativeCriterionOperation customer_negative_criterion_operation = 34;
+
+ // A customer mutate operation.
+ CustomerOperation customer_operation = 35;
+
+ // An extension feed item mutate operation.
+ ExtensionFeedItemOperation extension_feed_item_operation = 36;
+
+ // A feed item mutate operation.
+ FeedItemOperation feed_item_operation = 37;
+
+ // A feed item target mutate operation.
+ FeedItemTargetOperation feed_item_target_operation = 38;
+
+ // A feed mapping mutate operation.
+ FeedMappingOperation feed_mapping_operation = 39;
+
+ // A feed mutate operation.
+ FeedOperation feed_operation = 40;
+
+ // A label mutate operation.
+ LabelOperation label_operation = 41;
+
+ // A media file mutate operation.
+ MediaFileOperation media_file_operation = 42;
+
+ // A remarketing action mutate operation.
+ RemarketingActionOperation remarketing_action_operation = 43;
+
+ // A shared criterion mutate operation.
+ SharedCriterionOperation shared_criterion_operation = 14;
+
+ // A shared set mutate operation.
+ SharedSetOperation shared_set_operation = 15;
+
+ // A user list mutate operation.
+ UserListOperation user_list_operation = 16;
+ }
+}
+
+// Response message for the resource mutate.
+message MutateOperationResponse {
+ // The mutate response
+ oneof response {
+ // The result for the ad group ad label mutate.
+ MutateAdGroupAdLabelResult ad_group_ad_label_result = 17;
+
+ // The result for the ad group ad mutate.
+ MutateAdGroupAdResult ad_group_ad_result = 1;
+
+ // The result for the ad group bid modifier mutate.
+ MutateAdGroupBidModifierResult ad_group_bid_modifier_result = 2;
+
+ // The result for the ad group criterion label mutate.
+ MutateAdGroupCriterionLabelResult ad_group_criterion_label_result = 18;
+
+ // The result for the ad group criterion mutate.
+ MutateAdGroupCriterionResult ad_group_criterion_result = 3;
+
+ // The result for the ad group extension setting mutate.
+ MutateAdGroupExtensionSettingResult ad_group_extension_setting_result = 19;
+
+ // The result for the ad group feed mutate.
+ MutateAdGroupFeedResult ad_group_feed_result = 20;
+
+ // The result for the ad group label mutate.
+ MutateAdGroupLabelResult ad_group_label_result = 21;
+
+ // The result for the ad group mutate.
+ MutateAdGroupResult ad_group_result = 5;
+
+ // The result for the ad parameter mutate.
+ MutateAdParameterResult ad_parameter_result = 22;
+
+ // The result for the asset mutate.
+ MutateAssetResult asset_result = 23;
+
+ // The result for the bidding strategy mutate.
+ MutateBiddingStrategyResult bidding_strategy_result = 6;
+
+ // The result for the campaign bid modifier mutate.
+ MutateCampaignBidModifierResult campaign_bid_modifier_result = 7;
+
+ // The result for the campaign budget mutate.
+ MutateCampaignBudgetResult campaign_budget_result = 8;
+
+ // The result for the campaign criterion mutate.
+ MutateCampaignCriterionResult campaign_criterion_result = 13;
+
+ // The result for the campaign extension setting mutate.
+ MutateCampaignExtensionSettingResult campaign_extension_setting_result = 26;
+
+ // The result for the campaign feed mutate.
+ MutateCampaignFeedResult campaign_feed_result = 27;
+
+ // The result for the campaign label mutate.
+ MutateCampaignLabelResult campaign_label_result = 28;
+
+ // The result for the campaign mutate.
+ MutateCampaignResult campaign_result = 10;
+
+ // The result for the campaign shared set mutate.
+ MutateCampaignSharedSetResult campaign_shared_set_result = 11;
+
+ // The result for the conversion action mutate.
+ MutateConversionActionResult conversion_action_result = 12;
+
+ // The result for the customer extension setting mutate.
+ MutateCustomerExtensionSettingResult customer_extension_setting_result = 30;
+
+ // The result for the customer feed mutate.
+ MutateCustomerFeedResult customer_feed_result = 31;
+
+ // The result for the customer label mutate.
+ MutateCustomerLabelResult customer_label_result = 32;
+
+ // The result for the customer negative criterion mutate.
+ MutateCustomerNegativeCriteriaResult customer_negative_criterion_result = 34;
+
+ // The result for the customer mutate.
+ MutateCustomerResult customer_result = 35;
+
+ // The result for the extension feed item mutate.
+ MutateExtensionFeedItemResult extension_feed_item_result = 36;
+
+ // The result for the feed item mutate.
+ MutateFeedItemResult feed_item_result = 37;
+
+ // The result for the feed item target mutate.
+ MutateFeedItemTargetResult feed_item_target_result = 38;
+
+ // The result for the feed mapping mutate.
+ MutateFeedMappingResult feed_mapping_result = 39;
+
+ // The result for the feed mutate.
+ MutateFeedResult feed_result = 40;
+
+ // The result for the label mutate.
+ MutateLabelResult label_result = 41;
+
+ // The result for the media file mutate.
+ MutateMediaFileResult media_file_result = 42;
+
+ // The result for the remarketing action mutate.
+ MutateRemarketingActionResult remarketing_action_result = 43;
+
+ // The result for the shared criterion mutate.
+ MutateSharedCriterionResult shared_criterion_result = 14;
+
+ // The result for the shared set mutate.
+ MutateSharedSetResult shared_set_result = 15;
+
+ // The result for the user list mutate.
+ MutateUserListResult user_list_result = 16;
+ }
+}
diff --git a/google/ads/googleads/v1/services/group_placement_view_service.proto b/google/ads/googleads/v1/services/group_placement_view_service.proto
new file mode 100644
index 000000000..25722f843
--- /dev/null
+++ b/google/ads/googleads/v1/services/group_placement_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/group_placement_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "GroupPlacementViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Group Placement View service.
+
+// Service to fetch Group Placement views.
+service GroupPlacementViewService {
+ // Returns the requested Group Placement view in full detail.
+ rpc GetGroupPlacementView(GetGroupPlacementViewRequest) returns (google.ads.googleads.v1.resources.GroupPlacementView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/groupPlacementViews/*}"
+ };
+ }
+}
+
+// Request message for [GroupPlacementViewService.GetGroupPlacementView][google.ads.googleads.v1.services.GroupPlacementViewService.GetGroupPlacementView].
+message GetGroupPlacementViewRequest {
+ // The resource name of the Group Placement view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/hotel_group_view_service.proto b/google/ads/googleads/v1/services/hotel_group_view_service.proto
new file mode 100644
index 000000000..afbb26f41
--- /dev/null
+++ b/google/ads/googleads/v1/services/hotel_group_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/hotel_group_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "HotelGroupViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Hotel Group View Service.
+
+// Service to manage Hotel Group Views.
+service HotelGroupViewService {
+ // Returns the requested Hotel Group View in full detail.
+ rpc GetHotelGroupView(GetHotelGroupViewRequest) returns (google.ads.googleads.v1.resources.HotelGroupView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/hotelGroupViews/*}"
+ };
+ }
+}
+
+// Request message for [HotelGroupViewService.GetHotelGroupView][google.ads.googleads.v1.services.HotelGroupViewService.GetHotelGroupView].
+message GetHotelGroupViewRequest {
+ // Resource name of the Hotel Group View to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/hotel_performance_view_service.proto b/google/ads/googleads/v1/services/hotel_performance_view_service.proto
new file mode 100644
index 000000000..dc3fe735e
--- /dev/null
+++ b/google/ads/googleads/v1/services/hotel_performance_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/hotel_performance_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "HotelPerformanceViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Hotel Performance View Service.
+
+// Service to manage Hotel Performance Views.
+service HotelPerformanceViewService {
+ // Returns the requested Hotel Performance View in full detail.
+ rpc GetHotelPerformanceView(GetHotelPerformanceViewRequest) returns (google.ads.googleads.v1.resources.HotelPerformanceView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/hotelPerformanceView}"
+ };
+ }
+}
+
+// Request message for [HotelPerformanceViewService.GetHotelPerformanceView][google.ads.googleads.v1.services.HotelPerformanceViewService.GetHotelPerformanceView].
+message GetHotelPerformanceViewRequest {
+ // Resource name of the Hotel Performance View to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/keyword_plan_ad_group_service.proto b/google/ads/googleads/v1/services/keyword_plan_ad_group_service.proto
new file mode 100644
index 000000000..1d2619800
--- /dev/null
+++ b/google/ads/googleads/v1/services/keyword_plan_ad_group_service.proto
@@ -0,0 +1,121 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/keyword_plan_ad_group.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanAdGroupServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the keyword plan ad group service.
+
+// Service to manage Keyword Plan ad groups.
+service KeywordPlanAdGroupService {
+ // Returns the requested Keyword Plan ad group in full detail.
+ rpc GetKeywordPlanAdGroup(GetKeywordPlanAdGroupRequest) returns (google.ads.googleads.v1.resources.KeywordPlanAdGroup) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/keywordPlanAdGroups/*}"
+ };
+ }
+
+ // Creates, updates, or removes Keyword Plan ad groups. Operation statuses are
+ // returned.
+ rpc MutateKeywordPlanAdGroups(MutateKeywordPlanAdGroupsRequest) returns (MutateKeywordPlanAdGroupsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/keywordPlanAdGroups:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [KeywordPlanAdGroupService.GetKeywordPlanAdGroup][google.ads.googleads.v1.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup].
+message GetKeywordPlanAdGroupRequest {
+ // The resource name of the Keyword Plan ad group to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v1.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups].
+message MutateKeywordPlanAdGroupsRequest {
+ // The ID of the customer whose Keyword Plan ad groups are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual Keyword Plan ad groups.
+ repeated KeywordPlanAdGroupOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a Keyword Plan ad group.
+message KeywordPlanAdGroupOperation {
+ // The FieldMask that determines which resource fields are modified in an
+ // update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new Keyword Plan
+ // ad group.
+ google.ads.googleads.v1.resources.KeywordPlanAdGroup create = 1;
+
+ // Update operation: The Keyword Plan ad group is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.KeywordPlanAdGroup update = 2;
+
+ // Remove operation: A resource name for the removed Keyword Plan ad group
+ // is expected, in this format:
+ //
+ // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a Keyword Plan ad group mutate.
+message MutateKeywordPlanAdGroupsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateKeywordPlanAdGroupResult results = 2;
+}
+
+// The result for the Keyword Plan ad group mutate.
+message MutateKeywordPlanAdGroupResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/keyword_plan_campaign_service.proto b/google/ads/googleads/v1/services/keyword_plan_campaign_service.proto
new file mode 100644
index 000000000..3a88cf0b3
--- /dev/null
+++ b/google/ads/googleads/v1/services/keyword_plan_campaign_service.proto
@@ -0,0 +1,122 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/keyword_plan_campaign.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanCampaignServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the keyword plan campaign service.
+
+// Service to manage Keyword Plan campaigns.
+service KeywordPlanCampaignService {
+ // Returns the requested Keyword Plan campaign in full detail.
+ rpc GetKeywordPlanCampaign(GetKeywordPlanCampaignRequest) returns (google.ads.googleads.v1.resources.KeywordPlanCampaign) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/keywordPlanCampaigns/*}"
+ };
+ }
+
+ // Creates, updates, or removes Keyword Plan campaigns. Operation statuses are
+ // returned.
+ rpc MutateKeywordPlanCampaigns(MutateKeywordPlanCampaignsRequest) returns (MutateKeywordPlanCampaignsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/keywordPlanCampaigns:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [KeywordPlanCampaignService.GetKeywordPlanCampaign][google.ads.googleads.v1.services.KeywordPlanCampaignService.GetKeywordPlanCampaign].
+message GetKeywordPlanCampaignRequest {
+ // The resource name of the Keyword Plan campaign to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v1.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns].
+message MutateKeywordPlanCampaignsRequest {
+ // The ID of the customer whose Keyword Plan campaigns are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual Keyword Plan campaigns.
+ repeated KeywordPlanCampaignOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a Keyword Plan campaign.
+message KeywordPlanCampaignOperation {
+ // The FieldMask that determines which resource fields are modified in an
+ // update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new Keyword Plan
+ // campaign.
+ google.ads.googleads.v1.resources.KeywordPlanCampaign create = 1;
+
+ // Update operation: The Keyword Plan campaign is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.KeywordPlanCampaign update = 2;
+
+ // Remove operation: A resource name for the removed Keyword Plan campaign
+ // is expected, in this format:
+ //
+ // `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a Keyword Plan campaign mutate.
+message MutateKeywordPlanCampaignsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateKeywordPlanCampaignResult results = 2;
+}
+
+// The result for the Keyword Plan campaign mutate.
+message MutateKeywordPlanCampaignResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/keyword_plan_idea_service.proto b/google/ads/googleads/v1/services/keyword_plan_idea_service.proto
new file mode 100644
index 000000000..680538041
--- /dev/null
+++ b/google/ads/googleads/v1/services/keyword_plan_idea_service.proto
@@ -0,0 +1,114 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/common/keyword_plan_common.proto";
+import "google/ads/googleads/v1/enums/keyword_plan_network.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanIdeaServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the keyword plan idea service.
+
+// Service to generate keyword ideas.
+service KeywordPlanIdeaService {
+ // Returns a list of keyword ideas.
+ rpc GenerateKeywordIdeas(GenerateKeywordIdeasRequest) returns (GenerateKeywordIdeaResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}:generateKeywordIdeas"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [KeywordIdeaService.GenerateKeywordIdeas][].
+message GenerateKeywordIdeasRequest {
+ // The ID of the customer with the recommendation.
+ string customer_id = 1;
+
+ // The resource name of the language to target.
+ // Required
+ google.protobuf.StringValue language = 7;
+
+ // The resource names of the location to target.
+ // Max 10
+ repeated google.protobuf.StringValue geo_target_constants = 8;
+
+ // Targeting network.
+ google.ads.googleads.v1.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 9;
+
+ // The type of seed to generate keyword ideas.
+ oneof seed {
+ // A Keyword and a specific Url to generate ideas from
+ // e.g. cars, www.example.com/cars.
+ KeywordAndUrlSeed keyword_and_url_seed = 2;
+
+ // A Keyword or phrase to generate ideas from, e.g. cars.
+ KeywordSeed keyword_seed = 3;
+
+ // A specific url to generate ideas from, e.g. www.example.com/cars.
+ UrlSeed url_seed = 5;
+ }
+}
+
+// Keyword And Url Seed
+message KeywordAndUrlSeed {
+ // The URL to crawl in order to generate keyword ideas.
+ google.protobuf.StringValue url = 1;
+
+ // Requires at least one keyword.
+ repeated google.protobuf.StringValue keywords = 2;
+}
+
+// Keyword Seed
+message KeywordSeed {
+ // Requires at least one keyword.
+ repeated google.protobuf.StringValue keywords = 1;
+}
+
+// Url Seed
+message UrlSeed {
+ // The URL to crawl in order to generate keyword ideas.
+ google.protobuf.StringValue url = 1;
+}
+
+// Response message for [KeywordIdeaService.GenerateKeywordIdeas][].
+message GenerateKeywordIdeaResponse {
+ // Results of generating keyword ideas.
+ repeated GenerateKeywordIdeaResult results = 1;
+}
+
+// The result of generating keyword ideas.
+message GenerateKeywordIdeaResult {
+ // Text of the keyword idea.
+ // As in Keyword Plan historical metrics, this text may not be an actual
+ // keyword, but the canonical form of multiple keywords.
+ // See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService.
+ google.protobuf.StringValue text = 2;
+
+ // The historical metrics for the keyword
+ google.ads.googleads.v1.common.KeywordPlanHistoricalMetrics keyword_idea_metrics = 3;
+}
diff --git a/google/ads/googleads/v1/services/keyword_plan_keyword_service.proto b/google/ads/googleads/v1/services/keyword_plan_keyword_service.proto
new file mode 100644
index 000000000..6be32086a
--- /dev/null
+++ b/google/ads/googleads/v1/services/keyword_plan_keyword_service.proto
@@ -0,0 +1,121 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/keyword_plan_keyword.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanKeywordServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the keyword plan keyword service.
+
+// Service to manage Keyword Plan ad group keywords.
+service KeywordPlanKeywordService {
+ // Returns the requested Keyword Plan keyword in full detail.
+ rpc GetKeywordPlanKeyword(GetKeywordPlanKeywordRequest) returns (google.ads.googleads.v1.resources.KeywordPlanKeyword) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/keywordPlanKeywords/*}"
+ };
+ }
+
+ // Creates, updates, or removes Keyword Plan keywords. Operation statuses are
+ // returned.
+ rpc MutateKeywordPlanKeywords(MutateKeywordPlanKeywordsRequest) returns (MutateKeywordPlanKeywordsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/keywordPlanKeywords:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [KeywordPlanKeywordService.GetKeywordPlanKeyword][google.ads.googleads.v1.services.KeywordPlanKeywordService.GetKeywordPlanKeyword].
+message GetKeywordPlanKeywordRequest {
+ // The resource name of the ad group keyword to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [KeywordPlanKeywordService.MutateKeywordPlanKeywords][google.ads.googleads.v1.services.KeywordPlanKeywordService.MutateKeywordPlanKeywords].
+message MutateKeywordPlanKeywordsRequest {
+ // The ID of the customer whose Keyword Plan keywords are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual Keyword Plan keywords.
+ repeated KeywordPlanKeywordOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a Keyword Plan keyword.
+message KeywordPlanKeywordOperation {
+ // The FieldMask that determines which resource fields are modified in an
+ // update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new Keyword Plan
+ // ad group keyword.
+ google.ads.googleads.v1.resources.KeywordPlanKeyword create = 1;
+
+ // Update operation: The Keyword Plan keyword is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.KeywordPlanKeyword update = 2;
+
+ // Remove operation: A resource name for the removed Keyword Plan keyword is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/keywordPlanKeywords/{kp_ad_group_keyword_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a Keyword Plan keyword mutate.
+message MutateKeywordPlanKeywordsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateKeywordPlanKeywordResult results = 2;
+}
+
+// The result for the Keyword Plan keyword mutate.
+message MutateKeywordPlanKeywordResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/keyword_plan_negative_keyword_service.proto b/google/ads/googleads/v1/services/keyword_plan_negative_keyword_service.proto
new file mode 100644
index 000000000..af746f4b0
--- /dev/null
+++ b/google/ads/googleads/v1/services/keyword_plan_negative_keyword_service.proto
@@ -0,0 +1,126 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanNegativeKeywordServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the keyword plan negative keyword service.
+
+// Service to manage Keyword Plan negative keywords.
+service KeywordPlanNegativeKeywordService {
+ // Returns the requested plan in full detail.
+ rpc GetKeywordPlanNegativeKeyword(GetKeywordPlanNegativeKeywordRequest) returns (google.ads.googleads.v1.resources.KeywordPlanNegativeKeyword) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/keywordPlanNegativeKeywords/*}"
+ };
+ }
+
+ // Creates, updates, or removes Keyword Plan negative keywords. Operation
+ // statuses are returned.
+ rpc MutateKeywordPlanNegativeKeywords(MutateKeywordPlanNegativeKeywordsRequest) returns (MutateKeywordPlanNegativeKeywordsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/keywordPlanNegativeKeywords:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for
+// [KeywordPlanNegativeKeywordService.GetKeywordPlanNegativeKeyword][google.ads.googleads.v1.services.KeywordPlanNegativeKeywordService.GetKeywordPlanNegativeKeyword].
+message GetKeywordPlanNegativeKeywordRequest {
+ // The resource name of the plan to fetch.
+ string resource_name = 1;
+}
+
+// Request message for
+// [KeywordPlanNegativeKeywordService.MutateKeywordPlanNegativeKeywords][google.ads.googleads.v1.services.KeywordPlanNegativeKeywordService.MutateKeywordPlanNegativeKeywords].
+message MutateKeywordPlanNegativeKeywordsRequest {
+ // The ID of the customer whose negative keywords are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual Keyword Plan negative
+ // keywords.
+ repeated KeywordPlanNegativeKeywordOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a Keyword Plan negative
+// keyword.
+message KeywordPlanNegativeKeywordOperation {
+ // The FieldMask that determines which resource fields are modified in an
+ // update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new Keyword Plan
+ // negative keyword.
+ google.ads.googleads.v1.resources.KeywordPlanNegativeKeyword create = 1;
+
+ // Update operation: The Keyword Plan negative keyword expected to have a
+ // valid resource name.
+ google.ads.googleads.v1.resources.KeywordPlanNegativeKeyword update = 2;
+
+ // Remove operation: A resource name for the removed Keyword Plan negative
+ // keywords expected in this format:
+ //
+ //
+ // `customers/{customer_id}/keywordPlanNegativeKeywords/{kp_negative_keyword_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a Keyword Plan negative keyword mutate.
+message MutateKeywordPlanNegativeKeywordsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateKeywordPlanNegativeKeywordResult results = 2;
+}
+
+// The result for the Keyword Plan negative keyword mutate.
+message MutateKeywordPlanNegativeKeywordResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/keyword_plan_service.proto b/google/ads/googleads/v1/services/keyword_plan_service.proto
new file mode 100644
index 000000000..97fde8a2c
--- /dev/null
+++ b/google/ads/googleads/v1/services/keyword_plan_service.proto
@@ -0,0 +1,237 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/common/keyword_plan_common.proto";
+import "google/ads/googleads/v1/resources/keyword_plan.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the keyword plan service.
+
+// Service to manage keyword plans.
+service KeywordPlanService {
+ // Returns the requested plan in full detail.
+ rpc GetKeywordPlan(GetKeywordPlanRequest) returns (google.ads.googleads.v1.resources.KeywordPlan) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/keywordPlans/*}"
+ };
+ }
+
+ // Creates, updates, or removes keyword plans. Operation statuses are
+ // returned.
+ rpc MutateKeywordPlans(MutateKeywordPlansRequest) returns (MutateKeywordPlansResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/keywordPlans:mutate"
+ body: "*"
+ };
+ }
+
+ // Returns the requested Keyword Plan forecasts.
+ rpc GenerateForecastMetrics(GenerateForecastMetricsRequest) returns (GenerateForecastMetricsResponse) {
+ option (google.api.http) = {
+ post: "/v1/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics"
+ body: "*"
+ };
+ }
+
+ // Returns the requested Keyword Plan historical metrics.
+ rpc GenerateHistoricalMetrics(GenerateHistoricalMetricsRequest) returns (GenerateHistoricalMetricsResponse) {
+ option (google.api.http) = {
+ post: "/v1/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [KeywordPlanService.GetKeywordPlan][google.ads.googleads.v1.services.KeywordPlanService.GetKeywordPlan].
+message GetKeywordPlanRequest {
+ // The resource name of the plan to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v1.services.KeywordPlanService.MutateKeywordPlans].
+message MutateKeywordPlansRequest {
+ // The ID of the customer whose keyword plans are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual keyword plans.
+ repeated KeywordPlanOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on a keyword plan.
+message KeywordPlanOperation {
+ // The FieldMask that determines which resource fields are modified in an
+ // update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new keyword plan.
+ google.ads.googleads.v1.resources.KeywordPlan create = 1;
+
+ // Update operation: The keyword plan is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.KeywordPlan update = 2;
+
+ // Remove operation: A resource name for the removed keyword plan is
+ // expected in this format:
+ //
+ // `customers/{customer_id}/keywordPlans/{keyword_plan_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a keyword plan mutate.
+message MutateKeywordPlansResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateKeywordPlansResult results = 2;
+}
+
+// The result for the keyword plan mutate.
+message MutateKeywordPlansResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
+
+// Request message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v1.services.KeywordPlanService.GenerateForecastMetrics].
+message GenerateForecastMetricsRequest {
+ // The resource name of the keyword plan to be forecasted.
+ string keyword_plan = 1;
+}
+
+// Response message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v1.services.KeywordPlanService.GenerateForecastMetrics].
+message GenerateForecastMetricsResponse {
+ // List of campaign forecasts.
+ // One maximum.
+ repeated KeywordPlanCampaignForecast campaign_forecasts = 1;
+
+ // List of ad group forecasts.
+ repeated KeywordPlanAdGroupForecast ad_group_forecasts = 2;
+
+ // List of keyword forecasts.
+ repeated KeywordPlanKeywordForecast keyword_forecasts = 3;
+}
+
+// A campaign forecast.
+message KeywordPlanCampaignForecast {
+ // The resource name of the Keyword Plan campaign related to the forecast.
+ //
+ // `customers/{customer_id}/keywordPlanCampaigns/{keyword+plan_campaign_id}`
+ google.protobuf.StringValue keyword_plan_campaign = 1;
+
+ // The forecast for the Keyword Plan campaign.
+ ForecastMetrics campaign_forecast = 2;
+}
+
+// An ad group forecast.
+message KeywordPlanAdGroupForecast {
+ // The resource name of the Keyword Plan ad group related to the forecast.
+ //
+ // `customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}`
+ google.protobuf.StringValue keyword_plan_ad_group = 1;
+
+ // The forecast for the Keyword Plan ad group.
+ ForecastMetrics ad_group_forecast = 2;
+}
+
+// A keyword forecast.
+message KeywordPlanKeywordForecast {
+ // The resource name of the Keyword Plan keyword related to the forecast.
+ //
+ //
+ // `customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}`
+ google.protobuf.StringValue keyword_plan_ad_group_keyword = 1;
+
+ // The forecast for the Keyword Plan keyword.
+ ForecastMetrics keyword_forecast = 2;
+}
+
+// Forecast metrics.
+message ForecastMetrics {
+ // Impressions
+ google.protobuf.DoubleValue impressions = 1;
+
+ // Ctr
+ google.protobuf.DoubleValue ctr = 2;
+
+ // AVG cpc
+ google.protobuf.Int64Value average_cpc = 3;
+
+ // Clicks
+ google.protobuf.DoubleValue clicks = 5;
+
+ // Cost
+ google.protobuf.Int64Value cost_micros = 6;
+}
+
+// Request message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v1.services.KeywordPlanService.GenerateHistoricalMetrics].
+message GenerateHistoricalMetricsRequest {
+ // The resource name of the keyword plan of which historical metrics are
+ // requested.
+ string keyword_plan = 1;
+}
+
+// Response message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v1.services.KeywordPlanService.GenerateHistoricalMetrics].
+message GenerateHistoricalMetricsResponse {
+ // List of keyword historical metrics.
+ repeated KeywordPlanKeywordHistoricalMetrics metrics = 1;
+}
+
+// A keyword historical metrics.
+message KeywordPlanKeywordHistoricalMetrics {
+ // The text of the query associated with one or more ad_group_keywords in the
+ // plan.
+ //
+ // Note that we de-dupe your keywords list, eliminating close variants before
+ // returning the plan's keywords as text. For example, if your plan originally
+ // contained the keywords 'car' and 'cars', the returned search query will
+ // only contain 'car'.
+ google.protobuf.StringValue search_query = 1;
+
+ // The historical metrics for the query associated with one or more
+ // ad_group_keywords in the plan.
+ google.ads.googleads.v1.common.KeywordPlanHistoricalMetrics keyword_metrics = 2;
+}
diff --git a/google/ads/googleads/v1/services/keyword_view_service.proto b/google/ads/googleads/v1/services/keyword_view_service.proto
new file mode 100644
index 000000000..94e0b0700
--- /dev/null
+++ b/google/ads/googleads/v1/services/keyword_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/keyword_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Keyword View service.
+
+// Service to manage keyword views.
+service KeywordViewService {
+ // Returns the requested keyword view in full detail.
+ rpc GetKeywordView(GetKeywordViewRequest) returns (google.ads.googleads.v1.resources.KeywordView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/keywordViews/*}"
+ };
+ }
+}
+
+// Request message for [KeywordViewService.GetKeywordView][google.ads.googleads.v1.services.KeywordViewService.GetKeywordView].
+message GetKeywordViewRequest {
+ // The resource name of the keyword view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/label_service.proto b/google/ads/googleads/v1/services/label_service.proto
new file mode 100644
index 000000000..964c05435
--- /dev/null
+++ b/google/ads/googleads/v1/services/label_service.proto
@@ -0,0 +1,115 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/label.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "LabelServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Service to manage labels.
+service LabelService {
+ // Returns the requested label in full detail.
+ rpc GetLabel(GetLabelRequest) returns (google.ads.googleads.v1.resources.Label) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/labels/*}"
+ };
+ }
+
+ // Creates, updates, or removes labels. Operation statuses are returned.
+ rpc MutateLabels(MutateLabelsRequest) returns (MutateLabelsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/labels:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [LabelService.GetLabel][google.ads.googleads.v1.services.LabelService.GetLabel].
+message GetLabelRequest {
+ // The resource name of the label to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [LabelService.MutateLabels][google.ads.googleads.v1.services.LabelService.MutateLabels].
+message MutateLabelsRequest {
+ // ID of the customer whose labels are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on labels.
+ repeated LabelOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove, update) on a label.
+message LabelOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new label.
+ google.ads.googleads.v1.resources.Label create = 1;
+
+ // Update operation: The label is expected to have a valid resource name.
+ google.ads.googleads.v1.resources.Label update = 2;
+
+ // Remove operation: A resource name for the label being removed, in
+ // this format:
+ //
+ // `customers/{customer_id}/labels/{label_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a labels mutate.
+message MutateLabelsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateLabelResult results = 2;
+}
+
+// The result for a label mutate.
+message MutateLabelResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/language_constant_service.proto b/google/ads/googleads/v1/services/language_constant_service.proto
new file mode 100644
index 000000000..efff0c9e1
--- /dev/null
+++ b/google/ads/googleads/v1/services/language_constant_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/language_constant.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "LanguageConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the language constant service.
+
+// Service to fetch language constants.
+service LanguageConstantService {
+ // Returns the requested language constant.
+ rpc GetLanguageConstant(GetLanguageConstantRequest) returns (google.ads.googleads.v1.resources.LanguageConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=languageConstants/*}"
+ };
+ }
+}
+
+// Request message for [LanguageConstantService.GetLanguageConstant][google.ads.googleads.v1.services.LanguageConstantService.GetLanguageConstant].
+message GetLanguageConstantRequest {
+ // Resource name of the language constant to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/location_view_service.proto b/google/ads/googleads/v1/services/location_view_service.proto
new file mode 100644
index 000000000..2b2eafa33
--- /dev/null
+++ b/google/ads/googleads/v1/services/location_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/location_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "LocationViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Location View service.
+
+// Service to fetch location views.
+service LocationViewService {
+ // Returns the requested location view in full detail.
+ rpc GetLocationView(GetLocationViewRequest) returns (google.ads.googleads.v1.resources.LocationView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/locationViews/*}"
+ };
+ }
+}
+
+// Request message for [LocationViewService.GetLocationView][google.ads.googleads.v1.services.LocationViewService.GetLocationView].
+message GetLocationViewRequest {
+ // The resource name of the location view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/managed_placement_view_service.proto b/google/ads/googleads/v1/services/managed_placement_view_service.proto
new file mode 100644
index 000000000..4936e9bd1
--- /dev/null
+++ b/google/ads/googleads/v1/services/managed_placement_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/managed_placement_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ManagedPlacementViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Managed Placement View service.
+
+// Service to manage Managed Placement views.
+service ManagedPlacementViewService {
+ // Returns the requested Managed Placement view in full detail.
+ rpc GetManagedPlacementView(GetManagedPlacementViewRequest) returns (google.ads.googleads.v1.resources.ManagedPlacementView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/managedPlacementViews/*}"
+ };
+ }
+}
+
+// Request message for [ManagedPlacementViewService.GetManagedPlacementView][google.ads.googleads.v1.services.ManagedPlacementViewService.GetManagedPlacementView].
+message GetManagedPlacementViewRequest {
+ // The resource name of the Managed Placement View to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/media_file_service.proto b/google/ads/googleads/v1/services/media_file_service.proto
new file mode 100644
index 000000000..9f17c4665
--- /dev/null
+++ b/google/ads/googleads/v1/services/media_file_service.proto
@@ -0,0 +1,104 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/media_file.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "MediaFileServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Media File service.
+
+// Service to manage media files.
+service MediaFileService {
+ // Returns the requested media file in full detail.
+ rpc GetMediaFile(GetMediaFileRequest) returns (google.ads.googleads.v1.resources.MediaFile) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/mediaFiles/*}"
+ };
+ }
+
+ // Creates media files. Operation statuses are returned.
+ rpc MutateMediaFiles(MutateMediaFilesRequest) returns (MutateMediaFilesResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/mediaFiles:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [MediaFileService.GetMediaFile][google.ads.googleads.v1.services.MediaFileService.GetMediaFile]
+message GetMediaFileRequest {
+ // The resource name of the media file to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [MediaFileService.MutateMediaFiles][google.ads.googleads.v1.services.MediaFileService.MutateMediaFiles]
+message MutateMediaFilesRequest {
+ // The ID of the customer whose media files are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual media file.
+ repeated MediaFileOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation to create media file.
+message MediaFileOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new media file.
+ google.ads.googleads.v1.resources.MediaFile create = 1;
+ }
+}
+
+// Response message for a media file mutate.
+message MutateMediaFilesResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateMediaFileResult results = 2;
+}
+
+// The result for the media file mutate.
+message MutateMediaFileResult {
+ // The resource name returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/merchant_center_link_service.proto b/google/ads/googleads/v1/services/merchant_center_link_service.proto
new file mode 100644
index 000000000..0b1315bd2
--- /dev/null
+++ b/google/ads/googleads/v1/services/merchant_center_link_service.proto
@@ -0,0 +1,118 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/merchant_center_link.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "MerchantCenterLinkServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the MerchantCenterLink service.
+
+// This service allows management of links between Google Ads and Google
+// Merchant Center.
+service MerchantCenterLinkService {
+ // Returns Merchant Center links available tor this customer.
+ rpc ListMerchantCenterLinks(ListMerchantCenterLinksRequest) returns (ListMerchantCenterLinksResponse) {
+ option (google.api.http) = {
+ get: "/v1/customers/{customer_id=*}/merchantCenterLinks"
+ };
+ }
+
+ // Returns the Merchant Center link in full detail.
+ rpc GetMerchantCenterLink(GetMerchantCenterLinkRequest) returns (google.ads.googleads.v1.resources.MerchantCenterLink) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/merchantCenterLinks/*}"
+ };
+ }
+
+ // Updates status or removes a Merchant Center link.
+ rpc MutateMerchantCenterLink(MutateMerchantCenterLinkRequest) returns (MutateMerchantCenterLinkResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/merchantCenterLinks:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v1.services.MerchantCenterLinkService.ListMerchantCenterLinks].
+message ListMerchantCenterLinksRequest {
+ // The ID of the customer onto which to apply the Merchant Center link list
+ // operation.
+ string customer_id = 1;
+}
+
+// Response message for [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v1.services.MerchantCenterLinkService.ListMerchantCenterLinks].
+message ListMerchantCenterLinksResponse {
+ // Merchant Center links available for the requested customer
+ repeated google.ads.googleads.v1.resources.MerchantCenterLink merchant_center_links = 1;
+}
+
+// Request message for [MerchantCenterLinkService.GetMerchantCenterLink][google.ads.googleads.v1.services.MerchantCenterLinkService.GetMerchantCenterLink].
+message GetMerchantCenterLinkRequest {
+ // Resource name of the Merchant Center link.
+ string resource_name = 1;
+}
+
+// Request message for [MerchantCenterLinkService.MutateMerchantCenterLink][google.ads.googleads.v1.services.MerchantCenterLinkService.MutateMerchantCenterLink].
+message MutateMerchantCenterLinkRequest {
+ // The ID of the customer being modified.
+ string customer_id = 1;
+
+ // The operation to perform on the link
+ MerchantCenterLinkOperation operation = 2;
+}
+
+// A single update on a Merchant Center link.
+message MerchantCenterLinkOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 3;
+
+ // The operation to perform
+ oneof operation {
+ // Update operation: The merchant center link is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.MerchantCenterLink update = 1;
+
+ // Remove operation: A resource name for the removed merchant center link is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/merchantCenterLinks/{merchant_center_id}`
+ string remove = 2;
+ }
+}
+
+// Response message for Merchant Center link mutate.
+message MutateMerchantCenterLinkResponse {
+ // Result for the mutate.
+ MutateMerchantCenterLinkResult result = 2;
+}
+
+// The result for the Merchant Center link mutate.
+message MutateMerchantCenterLinkResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/mobile_app_category_constant_service.proto b/google/ads/googleads/v1/services/mobile_app_category_constant_service.proto
new file mode 100644
index 000000000..3113d8eaa
--- /dev/null
+++ b/google/ads/googleads/v1/services/mobile_app_category_constant_service.proto
@@ -0,0 +1,47 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/mobile_app_category_constant.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "MobileAppCategoryConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Service to fetch mobile app category constants.
+service MobileAppCategoryConstantService {
+ // Returns the requested mobile app category constant.
+ rpc GetMobileAppCategoryConstant(GetMobileAppCategoryConstantRequest) returns (google.ads.googleads.v1.resources.MobileAppCategoryConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=mobileAppCategoryConstants/*}"
+ };
+ }
+}
+
+// Request message for
+// [MobileAppCategoryConstantService.GetMobileAppCategoryConstant][google.ads.googleads.v1.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant].
+message GetMobileAppCategoryConstantRequest {
+ // Resource name of the mobile app category constant to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/mobile_device_constant_service.proto b/google/ads/googleads/v1/services/mobile_device_constant_service.proto
new file mode 100644
index 000000000..1c202b9d4
--- /dev/null
+++ b/google/ads/googleads/v1/services/mobile_device_constant_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/mobile_device_constant.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "MobileDeviceConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the mobile device constant service.
+
+// Service to fetch mobile device constants.
+service MobileDeviceConstantService {
+ // Returns the requested mobile device constant in full detail.
+ rpc GetMobileDeviceConstant(GetMobileDeviceConstantRequest) returns (google.ads.googleads.v1.resources.MobileDeviceConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=mobileDeviceConstants/*}"
+ };
+ }
+}
+
+// Request message for [MobileDeviceConstantService.GetMobileDeviceConstant][google.ads.googleads.v1.services.MobileDeviceConstantService.GetMobileDeviceConstant].
+message GetMobileDeviceConstantRequest {
+ // Resource name of the mobile device to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/mutate_job_service.proto b/google/ads/googleads/v1/services/mutate_job_service.proto
new file mode 100644
index 000000000..42e1fec24
--- /dev/null
+++ b/google/ads/googleads/v1/services/mutate_job_service.proto
@@ -0,0 +1,183 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/mutate_job.proto";
+import "google/ads/googleads/v1/services/google_ads_service.proto";
+import "google/api/annotations.proto";
+import "google/longrunning/operations.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "MutateJobServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the MutateJobService.
+
+// Service to manage mutate jobs.
+service MutateJobService {
+ // Creates a mutate job.
+ rpc CreateMutateJob(CreateMutateJobRequest) returns (CreateMutateJobResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/mutateJobs:create"
+ body: "*"
+ };
+ }
+
+ // Returns the mutate job.
+ rpc GetMutateJob(GetMutateJobRequest) returns (google.ads.googleads.v1.resources.MutateJob) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/mutateJobs/*}"
+ };
+ }
+
+ // Returns the results of the mutate job. The job must be done.
+ // Supports standard list paging.
+ rpc ListMutateJobResults(ListMutateJobResultsRequest) returns (ListMutateJobResultsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/mutateJobs/*}:listResults"
+ };
+ }
+
+ // Runs the mutate job.
+ //
+ // The Operation.metadata field type is MutateJobMetadata. When finished, the
+ // long running operation will not contain errors or a response. Instead, use
+ // ListMutateJobResults to get the results of the job.
+ rpc RunMutateJob(RunMutateJobRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{resource_name=customers/*/mutateJobs/*}:run"
+ body: "*"
+ };
+ }
+
+ // Add operations to the mutate job.
+ rpc AddMutateJobOperations(AddMutateJobOperationsRequest) returns (AddMutateJobOperationsResponse) {
+ option (google.api.http) = {
+ post: "/v1/{resource_name=customers/*/mutateJobs/*}:addOperations"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [MutateJobService.CreateMutateJobRequest][]
+message CreateMutateJobRequest {
+ // The ID of the customer for which to create a mutate job.
+ string customer_id = 1;
+}
+
+// Response message for [MutateJobService.CreateMutateJobResponse][]
+message CreateMutateJobResponse {
+ // The resource name of the MutateJob.
+ string resource_name = 1;
+}
+
+// Request message for [MutateJobService.GetMutateJob][google.ads.googleads.v1.services.MutateJobService.GetMutateJob]
+message GetMutateJobRequest {
+ // The resource name of the MutateJob to get.
+ string resource_name = 1;
+}
+
+// Request message for [MutateJobService.RunMutateJob][google.ads.googleads.v1.services.MutateJobService.RunMutateJob]
+message RunMutateJobRequest {
+ // The resource name of the MutateJob to run.
+ string resource_name = 1;
+}
+
+// Request message for [MutateJobService.AddMutateJobOperations][google.ads.googleads.v1.services.MutateJobService.AddMutateJobOperations]
+message AddMutateJobOperationsRequest {
+ // The resource name of the MutateJob.
+ string resource_name = 1;
+
+ // A token used to enforce sequencing.
+ //
+ // The first AddMutateJobOperations request for a MutateJob should not set
+ // sequence_token. Subsequent requests must set sequence_token to the value of
+ // next_sequence_token received in the previous AddMutateJobOperations
+ // response.
+ string sequence_token = 2;
+
+ // The list of mutates being added.
+ //
+ // Operations can use negative integers as temp ids to signify dependencies
+ // between entities created in this MutateJob. For example, a customer with
+ // id = 1234 can create a campaign and an ad group in that same campaign by
+ // creating a campaign in the first operation with the resource name
+ // explicitly set to "customers/1234/campaigns/-1", and creating an ad group
+ // in the second operation with the campaign field also set to
+ // "customers/1234/campaigns/-1".
+ repeated MutateOperation mutate_operations = 3;
+}
+
+// Response message for [MutateJobService.AddMutateJobOperations][google.ads.googleads.v1.services.MutateJobService.AddMutateJobOperations]
+message AddMutateJobOperationsResponse {
+ // The total number of operations added so far for this job.
+ int64 total_operations = 1;
+
+ // The sequence token to be used when calling AddMutateJobOperations again if
+ // more operations need to be added. The next AddMutateJobOperations request
+ // must set the sequence_token field to the value of this field.
+ string next_sequence_token = 2;
+}
+
+// Request message for [MutateJobService.ListMutateJobResults][google.ads.googleads.v1.services.MutateJobService.ListMutateJobResults].
+message ListMutateJobResultsRequest {
+ // The resource name of the MutateJob whose results are being listed.
+ string resource_name = 1;
+
+ // Token of the page to retrieve. If not specified, the first
+ // page of results will be returned. Use the value obtained from
+ // `next_page_token` in the previous response in order to request
+ // the next page of results.
+ string page_token = 2;
+
+ // Number of elements to retrieve in a single page.
+ // When a page request is too large, the server may decide to
+ // further limit the number of returned resources.
+ int32 page_size = 3;
+}
+
+// Response message for [MutateJobService.ListMutateJobResults][google.ads.googleads.v1.services.MutateJobService.ListMutateJobResults].
+message ListMutateJobResultsResponse {
+ // The list of rows that matched the query.
+ repeated MutateJobResult results = 1;
+
+ // Pagination token used to retrieve the next page of results.
+ // Pass the content of this string as the `page_token` attribute of
+ // the next request. `next_page_token` is not returned for the last
+ // page.
+ string next_page_token = 2;
+}
+
+// MutateJob result.
+message MutateJobResult {
+ // Index of the mutate operation.
+ int64 operation_index = 1;
+
+ // Response for the mutate.
+ // May be empty if errors occurred.
+ MutateOperationResponse mutate_operation_response = 2;
+
+ // Details of the errors when processing the operation.
+ google.rpc.Status status = 3;
+}
diff --git a/google/ads/googleads/v1/services/operating_system_version_constant_service.proto b/google/ads/googleads/v1/services/operating_system_version_constant_service.proto
new file mode 100644
index 000000000..6d5241252
--- /dev/null
+++ b/google/ads/googleads/v1/services/operating_system_version_constant_service.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/operating_system_version_constant.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "OperatingSystemVersionConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the OS version constant service
+
+// Service to fetch Operating System Version constants.
+service OperatingSystemVersionConstantService {
+ // Returns the requested OS version constant in full detail.
+ rpc GetOperatingSystemVersionConstant(GetOperatingSystemVersionConstantRequest) returns (google.ads.googleads.v1.resources.OperatingSystemVersionConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=operatingSystemVersionConstants/*}"
+ };
+ }
+}
+
+// Request message for
+// [OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant][google.ads.googleads.v1.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant].
+message GetOperatingSystemVersionConstantRequest {
+ // Resource name of the OS version to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/parental_status_view_service.proto b/google/ads/googleads/v1/services/parental_status_view_service.proto
new file mode 100644
index 000000000..704dd1768
--- /dev/null
+++ b/google/ads/googleads/v1/services/parental_status_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/parental_status_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ParentalStatusViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Parental Status View service.
+
+// Service to manage parental status views.
+service ParentalStatusViewService {
+ // Returns the requested parental status view in full detail.
+ rpc GetParentalStatusView(GetParentalStatusViewRequest) returns (google.ads.googleads.v1.resources.ParentalStatusView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/parentalStatusViews/*}"
+ };
+ }
+}
+
+// Request message for [ParentalStatusViewService.GetParentalStatusView][google.ads.googleads.v1.services.ParentalStatusViewService.GetParentalStatusView].
+message GetParentalStatusViewRequest {
+ // The resource name of the parental status view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/payments_account_service.proto b/google/ads/googleads/v1/services/payments_account_service.proto
new file mode 100644
index 000000000..d7a5dd80e
--- /dev/null
+++ b/google/ads/googleads/v1/services/payments_account_service.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/payments_account.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "PaymentsAccountServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Payments account service.
+
+// Service to provide Payments accounts that can be used to set up consolidated
+// billing.
+service PaymentsAccountService {
+ // Returns all Payments accounts associated with all managers
+ // between the login customer ID and specified serving customer in the
+ // hierarchy, inclusive.
+ rpc ListPaymentsAccounts(ListPaymentsAccountsRequest) returns (ListPaymentsAccountsResponse) {
+ option (google.api.http) = {
+ get: "/v1/customers/{customer_id=*}/paymentsAccounts"
+ };
+ }
+}
+
+// Request message for fetching all accessible Payments accounts.
+message ListPaymentsAccountsRequest {
+ // The ID of the customer to apply the PaymentsAccount list operation to.
+ string customer_id = 1;
+}
+
+// Response message for [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v1.services.PaymentsAccountService.ListPaymentsAccounts].
+message ListPaymentsAccountsResponse {
+ // The list of accessible Payments accounts.
+ repeated google.ads.googleads.v1.resources.PaymentsAccount payments_accounts = 1;
+}
diff --git a/google/ads/googleads/v1/services/product_bidding_category_constant_service.proto b/google/ads/googleads/v1/services/product_bidding_category_constant_service.proto
new file mode 100644
index 000000000..3e9a12a14
--- /dev/null
+++ b/google/ads/googleads/v1/services/product_bidding_category_constant_service.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/product_bidding_category_constant.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ProductBiddingCategoryConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Enums";
+
+// Proto file describing the Product Bidding Category constant service
+
+// Service to fetch Product Bidding Categories.
+service ProductBiddingCategoryConstantService {
+ // Returns the requested Product Bidding Category in full detail.
+ rpc GetProductBiddingCategoryConstant(GetProductBiddingCategoryConstantRequest) returns (google.ads.googleads.v1.resources.ProductBiddingCategoryConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=productBiddingCategoryConstants/*}"
+ };
+ }
+}
+
+// Request message for
+// [ProductBiddingCategoryService.GetProductBiddingCategory][].
+message GetProductBiddingCategoryConstantRequest {
+ // Resource name of the Product Bidding Category to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/product_group_view_service.proto b/google/ads/googleads/v1/services/product_group_view_service.proto
new file mode 100644
index 000000000..4b5a863a8
--- /dev/null
+++ b/google/ads/googleads/v1/services/product_group_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/product_group_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ProductGroupViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the ProductGroup View service.
+
+// Service to manage product group views.
+service ProductGroupViewService {
+ // Returns the requested product group view in full detail.
+ rpc GetProductGroupView(GetProductGroupViewRequest) returns (google.ads.googleads.v1.resources.ProductGroupView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/productGroupViews/*}"
+ };
+ }
+}
+
+// Request message for [ProductGroupViewService.GetProductGroupView][google.ads.googleads.v1.services.ProductGroupViewService.GetProductGroupView].
+message GetProductGroupViewRequest {
+ // The resource name of the product group view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/recommendation_service.proto b/google/ads/googleads/v1/services/recommendation_service.proto
new file mode 100644
index 000000000..b9b98997a
--- /dev/null
+++ b/google/ads/googleads/v1/services/recommendation_service.proto
@@ -0,0 +1,215 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/enums/keyword_match_type.proto";
+import "google/ads/googleads/v1/resources/ad.proto";
+import "google/ads/googleads/v1/resources/recommendation.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "RecommendationServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Recommendation service.
+
+// Service to manage recommendations.
+service RecommendationService {
+ // Returns the requested recommendation in full detail.
+ rpc GetRecommendation(GetRecommendationRequest) returns (google.ads.googleads.v1.resources.Recommendation) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/recommendations/*}"
+ };
+ }
+
+ // Applies given recommendations with corresponding apply parameters.
+ rpc ApplyRecommendation(ApplyRecommendationRequest) returns (ApplyRecommendationResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/recommendations:apply"
+ body: "*"
+ };
+ }
+
+ // Dismisses given recommendations.
+ rpc DismissRecommendation(DismissRecommendationRequest) returns (DismissRecommendationResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/recommendations:dismiss"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [RecommendationService.GetRecommendation][google.ads.googleads.v1.services.RecommendationService.GetRecommendation].
+message GetRecommendationRequest {
+ // The resource name of the recommendation to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v1.services.RecommendationService.ApplyRecommendation].
+message ApplyRecommendationRequest {
+ // The ID of the customer with the recommendation.
+ string customer_id = 1;
+
+ // The list of operations to apply recommendations.
+ // If partial_failure=false all recommendations should be of the same type
+ // There is a limit of 100 operations per request.
+ repeated ApplyRecommendationOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, operations will be carried
+ // out as a transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+}
+
+// Information about the operation to apply a recommendation and any parameters
+// to customize it.
+message ApplyRecommendationOperation {
+ // Parameters to use when applying a campaign budget recommendation.
+ message CampaignBudgetParameters {
+ // New budget amount to set for target budget resource. This is a required
+ // field.
+ google.protobuf.Int64Value new_budget_amount_micros = 1;
+ }
+
+ // Parameters to use when applying a text ad recommendation.
+ message TextAdParameters {
+ // New ad to add to recommended ad group. All necessary fields need to be
+ // set in this message. This is a required field.
+ google.ads.googleads.v1.resources.Ad ad = 1;
+ }
+
+ // Parameters to use when applying keyword recommendation.
+ message KeywordParameters {
+ // The ad group resource to add keyword to. This is a required field.
+ google.protobuf.StringValue ad_group = 1;
+
+ // The match type of the keyword. This is a required field.
+ google.ads.googleads.v1.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2;
+
+ // Optional, CPC bid to set for the keyword. If not set, keyword will use
+ // bid based on bidding strategy used by target ad group.
+ google.protobuf.Int64Value cpc_bid_micros = 3;
+ }
+
+ // Parameters to use when applying Target CPA recommendation.
+ message TargetCpaOptInParameters {
+ // Average CPA to use for Target CPA bidding strategy. This is a required
+ // field.
+ google.protobuf.Int64Value target_cpa_micros = 1;
+
+ // Optional, budget amount to set for the campaign.
+ google.protobuf.Int64Value new_campaign_budget_amount_micros = 2;
+ }
+
+ // Parameters to use when applying move unused budget recommendation.
+ message MoveUnusedBudgetParameters {
+ // Budget amount to move from excess budget to constrained budget. This is
+ // a required field.
+ google.protobuf.Int64Value budget_micros_to_move = 1;
+ }
+
+ // The resource name of the recommendation to apply.
+ string resource_name = 1;
+
+ // Parameters to use when applying the recommendation.
+ oneof apply_parameters {
+ // Optional parameters to use when applying a campaign budget
+ // recommendation.
+ CampaignBudgetParameters campaign_budget = 2;
+
+ // Optional parameters to use when applying a text ad recommendation.
+ TextAdParameters text_ad = 3;
+
+ // Optional parameters to use when applying keyword recommendation.
+ KeywordParameters keyword = 4;
+
+ // Optional parameters to use when applying target CPA opt-in
+ // recommendation.
+ TargetCpaOptInParameters target_cpa_opt_in = 5;
+
+ // Parameters to use when applying move unused budget recommendation.
+ MoveUnusedBudgetParameters move_unused_budget = 9;
+ }
+}
+
+// Response message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v1.services.RecommendationService.ApplyRecommendation].
+message ApplyRecommendationResponse {
+ // Results of operations to apply recommendations.
+ repeated ApplyRecommendationResult results = 1;
+
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors)
+ // we return the RPC level error.
+ google.rpc.Status partial_failure_error = 2;
+}
+
+// The result of applying a recommendation.
+message ApplyRecommendationResult {
+ // Returned for successful applies.
+ string resource_name = 1;
+}
+
+// Request message for [RecommendationService.DismissRecommendation][google.ads.googleads.v1.services.RecommendationService.DismissRecommendation].
+message DismissRecommendationRequest {
+ // Operation to dismiss a single recommendation identified by resource_name.
+ message DismissRecommendationOperation {
+ // The resource name of the recommendation to dismiss.
+ string resource_name = 1;
+ }
+
+ // The ID of the customer with the recommendation.
+ string customer_id = 1;
+
+ // The list of operations to dismiss recommendations.
+ // If partial_failure=false all recommendations should be of the same type
+ // There is a limit of 100 operations per request.
+ repeated DismissRecommendationOperation operations = 3;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, operations will be carried in a
+ // single transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 2;
+}
+
+// Response message for [RecommendationService.DismissRecommendation][google.ads.googleads.v1.services.RecommendationService.DismissRecommendation].
+message DismissRecommendationResponse {
+ // The result of dismissing a recommendation.
+ message DismissRecommendationResult {
+ // Returned for successful dismissals.
+ string resource_name = 1;
+ }
+
+ // Results of operations to dismiss recommendations.
+ repeated DismissRecommendationResult results = 1;
+
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors)
+ // we return the RPC level error.
+ google.rpc.Status partial_failure_error = 2;
+}
diff --git a/google/ads/googleads/v1/services/remarketing_action_service.proto b/google/ads/googleads/v1/services/remarketing_action_service.proto
new file mode 100644
index 000000000..1b340c0a8
--- /dev/null
+++ b/google/ads/googleads/v1/services/remarketing_action_service.proto
@@ -0,0 +1,113 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/remarketing_action.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "RemarketingActionServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Remarketing Action service.
+
+// Service to manage remarketing actions.
+service RemarketingActionService {
+ // Returns the requested remarketing action in full detail.
+ rpc GetRemarketingAction(GetRemarketingActionRequest) returns (google.ads.googleads.v1.resources.RemarketingAction) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/remarketingActions/*}"
+ };
+ }
+
+ // Creates or updates remarketing actions. Operation statuses are returned.
+ rpc MutateRemarketingActions(MutateRemarketingActionsRequest) returns (MutateRemarketingActionsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/remarketingActions:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [RemarketingActionService.GetRemarketingAction][google.ads.googleads.v1.services.RemarketingActionService.GetRemarketingAction].
+message GetRemarketingActionRequest {
+ // The resource name of the remarketing action to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v1.services.RemarketingActionService.MutateRemarketingActions].
+message MutateRemarketingActionsRequest {
+ // The ID of the customer whose remarketing actions are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual remarketing actions.
+ repeated RemarketingActionOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update) on a remarketing action.
+message RemarketingActionOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new remarketing
+ // action.
+ google.ads.googleads.v1.resources.RemarketingAction create = 1;
+
+ // Update operation: The remarketing action is expected to have a valid
+ // resource name.
+ google.ads.googleads.v1.resources.RemarketingAction update = 2;
+ }
+}
+
+// Response message for remarketing action mutate.
+message MutateRemarketingActionsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateRemarketingActionResult results = 2;
+}
+
+// The result for the remarketing action mutate.
+message MutateRemarketingActionResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/search_term_view_service.proto b/google/ads/googleads/v1/services/search_term_view_service.proto
new file mode 100644
index 000000000..b2232a13f
--- /dev/null
+++ b/google/ads/googleads/v1/services/search_term_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/search_term_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "SearchTermViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Search Term View service.
+
+// Service to manage search term views.
+service SearchTermViewService {
+ // Returns the attributes of the requested search term view.
+ rpc GetSearchTermView(GetSearchTermViewRequest) returns (google.ads.googleads.v1.resources.SearchTermView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/searchTermViews/*}"
+ };
+ }
+}
+
+// Request message for [SearchTermViewService.GetSearchTermView][google.ads.googleads.v1.services.SearchTermViewService.GetSearchTermView].
+message GetSearchTermViewRequest {
+ // The resource name of the search term view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/shared_criterion_service.proto b/google/ads/googleads/v1/services/shared_criterion_service.proto
new file mode 100644
index 000000000..1d64b08a8
--- /dev/null
+++ b/google/ads/googleads/v1/services/shared_criterion_service.proto
@@ -0,0 +1,111 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/shared_criterion.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "SharedCriterionServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Shared Criterion service.
+
+// Service to manage shared criteria.
+service SharedCriterionService {
+ // Returns the requested shared criterion in full detail.
+ rpc GetSharedCriterion(GetSharedCriterionRequest) returns (google.ads.googleads.v1.resources.SharedCriterion) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/sharedCriteria/*}"
+ };
+ }
+
+ // Creates or removes shared criteria. Operation statuses are returned.
+ rpc MutateSharedCriteria(MutateSharedCriteriaRequest) returns (MutateSharedCriteriaResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/sharedCriteria:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [SharedCriterionService.GetSharedCriterion][google.ads.googleads.v1.services.SharedCriterionService.GetSharedCriterion].
+message GetSharedCriterionRequest {
+ // The resource name of the shared criterion to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v1.services.SharedCriterionService.MutateSharedCriteria].
+message MutateSharedCriteriaRequest {
+ // The ID of the customer whose shared criteria are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual shared criteria.
+ repeated SharedCriterionOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, remove) on an shared criterion.
+message SharedCriterionOperation {
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new shared
+ // criterion.
+ google.ads.googleads.v1.resources.SharedCriterion create = 1;
+
+ // Remove operation: A resource name for the removed shared criterion is
+ // expected, in this format:
+ //
+ // `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a shared criterion mutate.
+message MutateSharedCriteriaResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateSharedCriterionResult results = 2;
+}
+
+// The result for the shared criterion mutate.
+message MutateSharedCriterionResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/shared_set_service.proto b/google/ads/googleads/v1/services/shared_set_service.proto
new file mode 100644
index 000000000..ec8cd3100
--- /dev/null
+++ b/google/ads/googleads/v1/services/shared_set_service.proto
@@ -0,0 +1,118 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/shared_set.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "SharedSetServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Shared Set service.
+
+// Service to manage shared sets.
+service SharedSetService {
+ // Returns the requested shared set in full detail.
+ rpc GetSharedSet(GetSharedSetRequest) returns (google.ads.googleads.v1.resources.SharedSet) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/sharedSets/*}"
+ };
+ }
+
+ // Creates, updates, or removes shared sets. Operation statuses are returned.
+ rpc MutateSharedSets(MutateSharedSetsRequest) returns (MutateSharedSetsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/sharedSets:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [SharedSetService.GetSharedSet][google.ads.googleads.v1.services.SharedSetService.GetSharedSet].
+message GetSharedSetRequest {
+ // The resource name of the shared set to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [SharedSetService.MutateSharedSets][google.ads.googleads.v1.services.SharedSetService.MutateSharedSets].
+message MutateSharedSetsRequest {
+ // The ID of the customer whose shared sets are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual shared sets.
+ repeated SharedSetOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update, remove) on an shared set.
+message SharedSetOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new shared set.
+ google.ads.googleads.v1.resources.SharedSet create = 1;
+
+ // Update operation: The shared set is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.SharedSet update = 2;
+
+ // Remove operation: A resource name for the removed shared set is expected,
+ // in this format:
+ //
+ // `customers/{customer_id}/sharedSets/{shared_set_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for a shared set mutate.
+message MutateSharedSetsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateSharedSetResult results = 2;
+}
+
+// The result for the shared set mutate.
+message MutateSharedSetResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/shopping_performance_view_service.proto b/google/ads/googleads/v1/services/shopping_performance_view_service.proto
new file mode 100644
index 000000000..96f802086
--- /dev/null
+++ b/google/ads/googleads/v1/services/shopping_performance_view_service.proto
@@ -0,0 +1,49 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/shopping_performance_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "ShoppingPerformanceViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the ShoppingPerformanceView service.
+
+// Service to fetch Shopping performance views.
+service ShoppingPerformanceViewService {
+ // Returns the requested Shopping performance view in full detail.
+ rpc GetShoppingPerformanceView(GetShoppingPerformanceViewRequest) returns (google.ads.googleads.v1.resources.ShoppingPerformanceView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/shoppingPerformanceView}"
+ };
+ }
+}
+
+// Request message for
+// [ShoppingPerformanceViewService.GetShoppingPerformanceView][google.ads.googleads.v1.services.ShoppingPerformanceViewService.GetShoppingPerformanceView].
+message GetShoppingPerformanceViewRequest {
+ // The resource name of the Shopping performance view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/topic_constant_service.proto b/google/ads/googleads/v1/services/topic_constant_service.proto
new file mode 100644
index 000000000..7cc2fb1e1
--- /dev/null
+++ b/google/ads/googleads/v1/services/topic_constant_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/topic_constant.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "TopicConstantServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Topic constant service
+
+// Service to fetch topic constants.
+service TopicConstantService {
+ // Returns the requested topic constant in full detail.
+ rpc GetTopicConstant(GetTopicConstantRequest) returns (google.ads.googleads.v1.resources.TopicConstant) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=topicConstants/*}"
+ };
+ }
+}
+
+// Request message for [TopicConstantService.GetTopicConstant][google.ads.googleads.v1.services.TopicConstantService.GetTopicConstant].
+message GetTopicConstantRequest {
+ // Resource name of the Topic to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/topic_view_service.proto b/google/ads/googleads/v1/services/topic_view_service.proto
new file mode 100644
index 000000000..fb7e390d4
--- /dev/null
+++ b/google/ads/googleads/v1/services/topic_view_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/topic_view.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "TopicViewServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Topic View service.
+
+// Service to manage topic views.
+service TopicViewService {
+ // Returns the requested topic view in full detail.
+ rpc GetTopicView(GetTopicViewRequest) returns (google.ads.googleads.v1.resources.TopicView) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/topicViews/*}"
+ };
+ }
+}
+
+// Request message for [TopicViewService.GetTopicView][google.ads.googleads.v1.services.TopicViewService.GetTopicView].
+message GetTopicViewRequest {
+ // The resource name of the topic view to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/user_interest_service.proto b/google/ads/googleads/v1/services/user_interest_service.proto
new file mode 100644
index 000000000..8fa1e5fe2
--- /dev/null
+++ b/google/ads/googleads/v1/services/user_interest_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/user_interest.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "UserInterestServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the user interest service
+
+// Service to fetch Google Ads User Interest.
+service UserInterestService {
+ // Returns the requested user interest in full detail
+ rpc GetUserInterest(GetUserInterestRequest) returns (google.ads.googleads.v1.resources.UserInterest) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/userInterests/*}"
+ };
+ }
+}
+
+// Request message for [UserInterestService.GetUserInterest][google.ads.googleads.v1.services.UserInterestService.GetUserInterest].
+message GetUserInterestRequest {
+ // Resource name of the UserInterest to fetch.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/user_list_service.proto b/google/ads/googleads/v1/services/user_list_service.proto
new file mode 100644
index 000000000..d27329405
--- /dev/null
+++ b/google/ads/googleads/v1/services/user_list_service.proto
@@ -0,0 +1,118 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/user_list.proto";
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/wrappers.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "UserListServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the User List service.
+
+// Service to manage user lists.
+service UserListService {
+ // Returns the requested user list.
+ rpc GetUserList(GetUserListRequest) returns (google.ads.googleads.v1.resources.UserList) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/userLists/*}"
+ };
+ }
+
+ // Creates or updates user lists. Operation statuses are returned.
+ rpc MutateUserLists(MutateUserListsRequest) returns (MutateUserListsResponse) {
+ option (google.api.http) = {
+ post: "/v1/customers/{customer_id=*}/userLists:mutate"
+ body: "*"
+ };
+ }
+}
+
+// Request message for [UserListService.GetUserList][google.ads.googleads.v1.services.UserListService.GetUserList].
+message GetUserListRequest {
+ // The resource name of the user list to fetch.
+ string resource_name = 1;
+}
+
+// Request message for [UserListService.MutateUserLists][google.ads.googleads.v1.services.UserListService.MutateUserLists].
+message MutateUserListsRequest {
+ // The ID of the customer whose user lists are being modified.
+ string customer_id = 1;
+
+ // The list of operations to perform on individual user lists.
+ repeated UserListOperation operations = 2;
+
+ // If true, successful operations will be carried out and invalid
+ // operations will return errors. If false, all operations will be carried
+ // out in one transaction if and only if they are all valid.
+ // Default is false.
+ bool partial_failure = 3;
+
+ // If true, the request is validated but not executed. Only errors are
+ // returned, not results.
+ bool validate_only = 4;
+}
+
+// A single operation (create, update) on a user list.
+message UserListOperation {
+ // FieldMask that determines which resource fields are modified in an update.
+ google.protobuf.FieldMask update_mask = 4;
+
+ // The mutate operation.
+ oneof operation {
+ // Create operation: No resource name is expected for the new user list.
+ google.ads.googleads.v1.resources.UserList create = 1;
+
+ // Update operation: The user list is expected to have a valid resource
+ // name.
+ google.ads.googleads.v1.resources.UserList update = 2;
+
+ // Remove operation: A resource name for the removed user list is expected,
+ // in this format:
+ //
+ // `customers/{customer_id}/userLists/{user_list_id}`
+ string remove = 3;
+ }
+}
+
+// Response message for user list mutate.
+message MutateUserListsResponse {
+ // Errors that pertain to operation failures in the partial failure mode.
+ // Returned only when partial_failure = true and all errors occur inside the
+ // operations. If any errors occur outside the operations (e.g. auth errors),
+ // we return an RPC level error.
+ google.rpc.Status partial_failure_error = 3;
+
+ // All results for the mutate.
+ repeated MutateUserListResult results = 2;
+}
+
+// The result for the user list mutate.
+message MutateUserListResult {
+ // Returned for successful operations.
+ string resource_name = 1;
+}
diff --git a/google/ads/googleads/v1/services/video_service.proto b/google/ads/googleads/v1/services/video_service.proto
new file mode 100644
index 000000000..aff40bc6e
--- /dev/null
+++ b/google/ads/googleads/v1/services/video_service.proto
@@ -0,0 +1,48 @@
+// Copyright 2019 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.googleads.v1.services;
+
+import "google/ads/googleads/v1/resources/video.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Services";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/services;services";
+option java_multiple_files = true;
+option java_outer_classname = "VideoServiceProto";
+option java_package = "com.google.ads.googleads.v1.services";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Services";
+option ruby_package = "Google::Ads::GoogleAds::V1::Services";
+
+// Proto file describing the Video service.
+
+// Service to manage videos.
+service VideoService {
+ // Returns the requested video in full detail.
+ rpc GetVideo(GetVideoRequest) returns (google.ads.googleads.v1.resources.Video) {
+ option (google.api.http) = {
+ get: "/v1/{resource_name=customers/*/videos/*}"
+ };
+ }
+}
+
+// Request message for [VideoService.GetVideo][google.ads.googleads.v1.services.VideoService.GetVideo].
+message GetVideoRequest {
+ // The resource name of the video to fetch.
+ string resource_name = 1;
+}