1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.ads.googleads.v14.common; 18 19import "google/ads/googleads/v14/enums/gender_type.proto"; 20import "google/ads/googleads/v14/enums/income_range_type.proto"; 21import "google/ads/googleads/v14/enums/parental_status_type.proto"; 22 23option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; 24option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; 25option java_multiple_files = true; 26option java_outer_classname = "AudiencesProto"; 27option java_package = "com.google.ads.googleads.v14.common"; 28option objc_class_prefix = "GAA"; 29option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; 30option ruby_package = "Google::Ads::GoogleAds::V14::Common"; 31 32// Positive dimension specifying user's audience. 33message AudienceDimension { 34 // Dimension specifying users who belong to the audience. 35 oneof dimension { 36 // Dimension specifying users by their age. 37 AgeDimension age = 1; 38 39 // Dimension specifying users by their gender. 40 GenderDimension gender = 2; 41 42 // Dimension specifying users by their household income. 43 HouseholdIncomeDimension household_income = 3; 44 45 // Dimension specifying users by their parental status. 46 ParentalStatusDimension parental_status = 4; 47 48 // Dimension specifying users by their membership in other audience 49 // segments. 50 AudienceSegmentDimension audience_segments = 5; 51 } 52} 53 54// Negative dimension specifying users to exclude from the audience. 55message AudienceExclusionDimension { 56 // Audience segment to be excluded. 57 repeated ExclusionSegment exclusions = 1; 58} 59 60// An audience segment to be excluded from an audience. 61message ExclusionSegment { 62 // Segment to be excluded. 63 oneof segment { 64 // User list segment to be excluded. 65 UserListSegment user_list = 1; 66 } 67} 68 69// Dimension specifying users by their age. 70message AgeDimension { 71 // Contiguous age range to be included in the dimension. 72 repeated AgeSegment age_ranges = 1; 73 74 // Include users whose age is not determined. 75 optional bool include_undetermined = 2; 76} 77 78// Contiguous age range. 79message AgeSegment { 80 // Minimum age to include. A minimum age must be specified and must be at 81 // least 18. Allowed values are 18, 25, 35, 45, 55, and 65. 82 optional int32 min_age = 1; 83 84 // Maximum age to include. A maximum age need not be specified. If specified, 85 // max_age must be greater than min_age, and allowed values are 24, 34, 44, 86 // 54, and 64. 87 optional int32 max_age = 2; 88} 89 90// Dimension specifying users by their gender. 91message GenderDimension { 92 // Included gender demographic segments. 93 repeated google.ads.googleads.v14.enums.GenderTypeEnum.GenderType genders = 1; 94 95 // Include users whose gender is not determined. 96 optional bool include_undetermined = 2; 97} 98 99// Dimension specifying users by their household income. 100message HouseholdIncomeDimension { 101 // Included household income demographic segments. 102 repeated google.ads.googleads.v14.enums.IncomeRangeTypeEnum.IncomeRangeType 103 income_ranges = 1; 104 105 // Include users whose household income is not determined. 106 optional bool include_undetermined = 2; 107} 108 109// Dimension specifying users by their parental status. 110message ParentalStatusDimension { 111 // Included parental status demographic segments. 112 repeated 113 google.ads.googleads.v14.enums.ParentalStatusTypeEnum.ParentalStatusType 114 parental_statuses = 1; 115 116 // Include users whose parental status is undetermined. 117 optional bool include_undetermined = 2; 118} 119 120// Dimension specifying users by their membership in other audience segments. 121message AudienceSegmentDimension { 122 // Included audience segments. Users are included if they belong to at least 123 // one segment. 124 repeated AudienceSegment segments = 1; 125} 126 127// Positive audience segment. 128message AudienceSegment { 129 // Positive segment. 130 oneof segment { 131 // User list segment. 132 UserListSegment user_list = 1; 133 134 // Affinity or In-market segment. 135 UserInterestSegment user_interest = 2; 136 137 // Live-event audience segment. 138 LifeEventSegment life_event = 3; 139 140 // Detailed demographic segment. 141 DetailedDemographicSegment detailed_demographic = 4; 142 143 // Custom audience segment. 144 CustomAudienceSegment custom_audience = 5; 145 } 146} 147 148// User list segment. 149// The Similar Audiences sunset starts May 2023. Refer to 150// https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html 151// for other options. 152message UserListSegment { 153 // The user list resource. 154 optional string user_list = 1; 155} 156 157// User interest segment. 158message UserInterestSegment { 159 // The user interest resource. 160 optional string user_interest_category = 1; 161} 162 163// Live event segment. 164message LifeEventSegment { 165 // The life event resource. 166 optional string life_event = 1; 167} 168 169// Detailed demographic segment. 170message DetailedDemographicSegment { 171 // The detailed demographic resource. 172 optional string detailed_demographic = 1; 173} 174 175// Custom audience segment. 176message CustomAudienceSegment { 177 // The custom audience resource. 178 optional string custom_audience = 1; 179} 180