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