Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / ads / googleads / v1 / common / user_lists.proto
1 // Copyright 2019 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 //
15
16 syntax = "proto3";
17
18 package google.ads.googleads.v1.common;
19
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";
31
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.
41
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;
47 }
48
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
60   // IDs.
61   google.protobuf.StringValue app_id = 1;
62
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;
67
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;
71 }
72
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.
77   //
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.
81   //
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;
85
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;
89 }
90
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;
95 }
96
97 // An atomic rule fragment.
98 message UserListRuleItemInfo {
99   // Rule variable name. It should match the corresponding key name fired
100   // by the pixel.
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;
108
109   // An atomic rule fragment.
110   oneof rule_item {
111     // An atomic rule fragment composed of a number operation.
112     UserListNumberRuleItemInfo number_rule_item = 2;
113
114     // An atomic rule fragment composed of a string operation.
115     UserListStringRuleItemInfo string_rule_item = 3;
116
117     // An atomic rule fragment composed of a date operation.
118     UserListDateRuleItemInfo date_rule_item = 4;
119   }
120 }
121
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
126   // rule item.
127   google.ads.googleads.v1.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1;
128
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;
133
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
136   // present.
137   google.protobuf.Int64Value offset_in_days = 3;
138 }
139
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
144   // rule item.
145   google.ads.googleads.v1.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1;
146
147   // Number value to be compared with the variable.
148   // This field is required and must be populated when creating a new number
149   // rule item.
150   google.protobuf.DoubleValue value = 2;
151 }
152
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
157   // rule item.
158   google.ads.googleads.v1.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1;
159
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;
165 }
166
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;
175
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;
180
181   // Operator to connect the two operands.
182   //
183   // Required for creating a combined rule user list.
184   google.ads.googleads.v1.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3;
185 }
186
187 // Visitors of a page during specific dates.
188 message DateSpecificRuleUserListInfo {
189   // Boolean rule that defines visitor of a page.
190   //
191   // Required for creating a date specific rule user list.
192   UserListRuleInfo rule = 1;
193
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.
196   //
197   // Required for creating a data specific rule user list.
198   google.protobuf.StringValue start_date = 2;
199
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.
202   //
203   // Required for creating a data specific rule user list.
204   google.protobuf.StringValue end_date = 3;
205 }
206
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
212   // rule.rule_type.
213   //
214   // Required for creating an expression rule user list.
215   UserListRuleInfo rule = 1;
216 }
217
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;
229
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;
236
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;
243
244     // Visitors of a page. The page visit is defined by one boolean rule
245     // expression.
246     ExpressionRuleUserListInfo expression_rule_user_list = 4;
247   }
248 }
249
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.
255   //
256   // Required for creating a logical user list.
257   repeated UserListLogicalRuleInfo rules = 1;
258 }
259
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;
265
266   // The list of operands of the rule.
267   repeated LogicalUserListOperandInfo rule_operands = 2;
268 }
269
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;
274 }
275
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;
280 }
281
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;
288
289     // A remarketing action.
290     google.protobuf.StringValue remarketing_action = 2;
291   }
292 }