xref: /aosp_15_r20/external/googleapis/google/ads/googleads/v14/common/audiences.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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