1 // Copyright 2019 Google LLC.
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
7 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 package google.ads.googleads.v1.common;
20 import "google/ads/googleads/v1/enums/customer_match_upload_key_type.proto";
21 import "google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto";
22 import "google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto";
23 import "google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto";
24 import "google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto";
25 import "google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto";
26 import "google/ads/googleads/v1/enums/user_list_prepopulation_status.proto";
27 import "google/ads/googleads/v1/enums/user_list_rule_type.proto";
28 import "google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto";
29 import "google/protobuf/wrappers.proto";
30 import "google/api/annotations.proto";
32 option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
33 option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
34 option java_multiple_files = true;
35 option java_outer_classname = "UserListsProto";
36 option java_package = "com.google.ads.googleads.v1.common";
37 option objc_class_prefix = "GAA";
38 option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
39 option ruby_package = "Google::Ads::GoogleAds::V1::Common";
40 // Proto file describing user list types.
42 // SimilarUserList is a list of users which are similar to users from another
43 // UserList. These lists are read-only and automatically created by Google.
44 message SimilarUserListInfo {
45 // Seed UserList from which this list is derived.
46 google.protobuf.StringValue seed_user_list = 1;
49 // UserList of CRM users provided by the advertiser.
50 message CrmBasedUserListInfo {
51 // A string that uniquely identifies a mobile application from which the data
52 // was collected to the Google Ads API.
53 // For iOS, the ID string is the 9 digit string that appears at the end of an
54 // App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is
55 // http://itunes.apple.com/us/app/flood-it!-2/id476943146).
56 // For Android, the ID string is the application's package name
57 // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link
58 // https://play.google.com/store/apps/details?id=com.labpixies.colordrips).
59 // Required when creating CrmBasedUserList for uploading mobile advertising
61 google.protobuf.StringValue app_id = 1;
63 // Matching key type of the list.
64 // Mixed data types are not allowed on the same list.
65 // This field is required for an ADD operation.
66 google.ads.googleads.v1.enums.CustomerMatchUploadKeyTypeEnum.CustomerMatchUploadKeyType upload_key_type = 2;
68 // Data source of the list. Default value is FIRST_PARTY.
69 // Only whitelisted customers can create third-party sourced CRM lists.
70 google.ads.googleads.v1.enums.UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType data_source_type = 3;
73 // A client defined rule based on custom parameters sent by web sites or
74 // uploaded by the advertiser.
75 message UserListRuleInfo {
76 // Rule type is used to determine how to group rule items.
78 // The default is OR of ANDs (disjunctive normal form).
79 // That is, rule items will be ANDed together within rule item groups and the
80 // groups themselves will be ORed together.
82 // Currently AND of ORs (conjunctive normal form) is only supported for
83 // ExpressionRuleUserList.
84 google.ads.googleads.v1.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1;
86 // List of rule item groups that defines this rule.
87 // Rule item groups are grouped together based on rule_type.
88 repeated UserListRuleItemGroupInfo rule_item_groups = 2;
91 // A group of rule items.
92 message UserListRuleItemGroupInfo {
93 // Rule items that will be grouped together based on rule_type.
94 repeated UserListRuleItemInfo rule_items = 1;
97 // An atomic rule fragment.
98 message UserListRuleItemInfo {
99 // Rule variable name. It should match the corresponding key name fired
101 // A name must begin with US-ascii letters or underscore or UTF8 code that is
102 // greater than 127 and consist of US-ascii letters or digits or underscore or
103 // UTF8 code that is greater than 127.
104 // For websites, there are two built-in variable URL (name = 'url__') and
105 // referrer URL (name = 'ref_url__').
106 // This field must be populated when creating a new rule item.
107 google.protobuf.StringValue name = 1;
109 // An atomic rule fragment.
111 // An atomic rule fragment composed of a number operation.
112 UserListNumberRuleItemInfo number_rule_item = 2;
114 // An atomic rule fragment composed of a string operation.
115 UserListStringRuleItemInfo string_rule_item = 3;
117 // An atomic rule fragment composed of a date operation.
118 UserListDateRuleItemInfo date_rule_item = 4;
122 // A rule item composed of date operation.
123 message UserListDateRuleItemInfo {
124 // Date comparison operator.
125 // This field is required and must be populated when creating new date
127 google.ads.googleads.v1.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1;
129 // String representing date value to be compared with the rule variable.
130 // Supported date format is YYYY-MM-DD.
131 // Times are reported in the customer's time zone.
132 google.protobuf.StringValue value = 2;
134 // The relative date value of the right hand side denoted by number of days
135 // offset from now. The value field will override this field when both are
137 google.protobuf.Int64Value offset_in_days = 3;
140 // A rule item composed of number operation.
141 message UserListNumberRuleItemInfo {
142 // Number comparison operator.
143 // This field is required and must be populated when creating a new number
145 google.ads.googleads.v1.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1;
147 // Number value to be compared with the variable.
148 // This field is required and must be populated when creating a new number
150 google.protobuf.DoubleValue value = 2;
153 // A rule item fragment composed of date operation.
154 message UserListStringRuleItemInfo {
155 // String comparison operator.
156 // This field is required and must be populated when creating a new string
158 google.ads.googleads.v1.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1;
160 // The right hand side of the string rule item. For URLs or referrer URLs,
161 // the value can not contain illegal URL chars such as newlines, quotes,
162 // tabs, or parentheses. This field is required and must be populated when
163 // creating a new string rule item.
164 google.protobuf.StringValue value = 2;
167 // User lists defined by combining two rules, left operand and right operand.
168 // There are two operators: AND where left operand and right operand have to be
169 // true; AND_NOT where left operand is true but right operand is false.
170 message CombinedRuleUserListInfo {
171 // Left operand of the combined rule.
172 // This field is required and must be populated when creating new combined
173 // rule based user list.
174 UserListRuleInfo left_operand = 1;
176 // Right operand of the combined rule.
177 // This field is required and must be populated when creating new combined
178 // rule based user list.
179 UserListRuleInfo right_operand = 2;
181 // Operator to connect the two operands.
183 // Required for creating a combined rule user list.
184 google.ads.googleads.v1.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3;
187 // Visitors of a page during specific dates.
188 message DateSpecificRuleUserListInfo {
189 // Boolean rule that defines visitor of a page.
191 // Required for creating a date specific rule user list.
192 UserListRuleInfo rule = 1;
194 // Start date of users visit. If set to 2000-01-01, then the list includes all
195 // users before end_date. The date's format should be YYYY-MM-DD.
197 // Required for creating a data specific rule user list.
198 google.protobuf.StringValue start_date = 2;
200 // End date of users visit. If set to 2037-12-30, then the list includes all
201 // users after start_date. The date's format should be YYYY-MM-DD.
203 // Required for creating a data specific rule user list.
204 google.protobuf.StringValue end_date = 3;
207 // Visitors of a page. The page visit is defined by one boolean rule expression.
208 message ExpressionRuleUserListInfo {
209 // Boolean rule that defines this user list. The rule consists of a list of
210 // rule item groups and each rule item group consists of a list of rule items.
211 // All the rule item groups are ORed or ANDed together for evaluation based on
214 // Required for creating an expression rule user list.
215 UserListRuleInfo rule = 1;
218 // Representation of a userlist that is generated by a rule.
219 message RuleBasedUserListInfo {
220 // The status of pre-population. The field is default to NONE if not set which
221 // means the previous users will not be considered. If set to REQUESTED, past
222 // site visitors or app users who match the list definition will be included
223 // in the list (works on the Display Network only). This will only
224 // add past users from within the last 30 days, depending on the
225 // list's membership duration and the date when the remarketing tag is added.
226 // The status will be updated to FINISHED once request is processed, or FAILED
227 // if the request fails.
228 google.ads.googleads.v1.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus prepopulation_status = 1;
230 // Subtypes of rule based user lists.
231 oneof rule_based_user_list {
232 // User lists defined by combining two rules.
233 // There are two operators: AND, where the left and right operands have to
234 // be true; AND_NOT where left operand is true but right operand is false.
235 CombinedRuleUserListInfo combined_rule_user_list = 2;
237 // Visitors of a page during specific dates. The visiting periods are
238 // defined as follows:
239 // Between start_date (inclusive) and end_date (inclusive);
240 // Before end_date (exclusive) with start_date = 2000-01-01;
241 // After start_date (exclusive) with end_date = 2037-12-30.
242 DateSpecificRuleUserListInfo date_specific_rule_user_list = 3;
244 // Visitors of a page. The page visit is defined by one boolean rule
246 ExpressionRuleUserListInfo expression_rule_user_list = 4;
250 // Represents a user list that is a custom combination of user lists.
251 message LogicalUserListInfo {
252 // Logical list rules that define this user list. The rules are defined as a
253 // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are
254 // ANDed when they are evaluated.
256 // Required for creating a logical user list.
257 repeated UserListLogicalRuleInfo rules = 1;
260 // A user list logical rule. A rule has a logical operator (and/or/not) and a
261 // list of user lists as operands.
262 message UserListLogicalRuleInfo {
263 // The logical operator of the rule.
264 google.ads.googleads.v1.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator operator = 1;
266 // The list of operands of the rule.
267 repeated LogicalUserListOperandInfo rule_operands = 2;
270 // Operand of logical user list that consists of a user list.
271 message LogicalUserListOperandInfo {
272 // Resource name of a user list as an operand.
273 google.protobuf.StringValue user_list = 1;
276 // User list targeting as a collection of conversions or remarketing actions.
277 message BasicUserListInfo {
278 // Actions associated with this user list.
279 repeated UserListActionInfo actions = 1;
282 // Represents an action type used for building remarketing user lists.
283 message UserListActionInfo {
284 // Subtypes of user list action.
285 oneof user_list_action {
286 // A conversion action that's not generated from remarketing.
287 google.protobuf.StringValue conversion_action = 1;
289 // A remarketing action.
290 google.protobuf.StringValue remarketing_action = 2;