xref: /aosp_15_r20/external/googleapis/google/ads/googleads/v16/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.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