Cookie Bulk Upload Protocol Buffer

View raw content Back to Reference page

 // 
  
 Protocol 
  
 version 
 : 
  
 v 
 . 
 24 
 // 
  
 Copyright 
  
 2024 
  
 Google 
  
 Inc 
 . 
  
 All 
  
 Rights 
  
 Reserved 
 . 
 // 
  
 The 
  
 type 
  
 of 
  
 identifier 
  
 being 
  
 uploaded 
 . 
 enum 
  
 UserIdType 
  
 { 
  
 // 
  
 A 
  
 user 
  
 identifier 
  
 received 
  
 through 
  
 the 
  
 cookie 
  
 matching 
  
 service 
 . 
  
 GOOGLE_USER_ID 
  
 = 
  
 0 
 ; 
  
 // 
  
 iOS 
  
 Advertising 
  
 ID 
 . 
  
 IDFA 
  
 = 
  
 1 
 ; 
  
 // 
  
 Android 
  
 Advertising 
  
 ID 
 . 
  
 ANDROID_ADVERTISING_ID 
  
 = 
  
 2 
 ; 
  
 // 
  
 Roku 
  
 ID 
 . 
  
 RIDA 
  
 = 
  
 5 
 ; 
  
 // 
  
 Amazon 
  
 Fire 
  
 TV 
  
 ID 
 . 
  
 AFAI 
  
 = 
  
 6 
 ; 
  
 // 
  
 XBOX 
 / 
 Microsoft 
  
 ID 
 . 
  
 MSAI 
  
 = 
  
 7 
 ; 
  
 // 
  
 A 
  
 "generic" 
  
 category 
  
 for 
  
 any 
  
 UUID 
  
 formatted 
  
 device 
  
 provided 
  
 ID 
 . 
  
 // 
  
 Allows 
  
 partner 
  
 uploads 
  
 without 
  
 needing 
  
 to 
  
 select 
  
 a 
  
 specific 
 , 
  
 // 
  
 pre 
 - 
 existing 
  
 Device 
  
 ID 
  
 type 
 . 
  
 GENERIC_DEVICE_ID 
  
 = 
  
 9 
 ; 
  
 // 
  
 Partner 
  
 provided 
  
 ID 
 . 
  
 User 
  
 identifier 
  
 in 
  
 partner 
 's namespace. 
  
 // 
  
 If 
  
 the 
  
 partner 
  
 has 
  
 sent 
  
 the 
  
 partner 
  
 user 
  
 identifier 
  
 during 
  
 cookie 
  
 matching 
 , 
  
 // 
  
 then 
  
 Google 
  
 will 
  
 be 
  
 able 
  
 to 
  
 store 
  
 user 
  
 list 
  
 membership 
  
 associated 
  
 with 
  
 // 
  
 the 
  
 partner 
 's user identifier. 
  
 // 
  
 See 
  
 cookie 
  
 matching 
  
 documentation 
 : 
  
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 authorized 
 - 
 buyers 
 / 
 rtb 
 / 
 cookie 
 - 
 guide 
  
 PARTNER_PROVIDED_ID 
  
 = 
  
 4 
 ; 
 } 
 // 
  
 Notification 
  
 code 
 . 
 enum 
  
 NotificationCode 
  
 { 
  
 // 
  
 A 
  
 cookie 
  
 is 
  
 considered 
  
 inactive 
  
 if 
  
 Google 
  
 has 
  
 not 
  
 seen 
  
 any 
  
 activity 
  
 related 
  
 // 
  
 to 
  
 the 
  
 cookie 
  
 in 
  
 several 
  
 days 
 . 
  
 INACTIVE_COOKIE 
  
 = 
  
 0 
 ; 
 } 
 // 
  
 Notification 
  
 status 
  
 code 
 . 
 enum 
  
 NotificationStatus 
  
 { 
  
 // 
  
 No 
  
 need 
  
 to 
  
 send 
  
 notifications 
  
 for 
  
 this 
  
 request 
 . 
  
 NO_NOTIFICATION 
  
 = 
  
 0 
 ; 
  
 // 
  
 Google 
  
 decided 
  
 to 
  
 not 
  
 send 
  
 notifications 
 , 
  
 even 
  
 though 
  
 there 
  
 were 
  
 // 
  
 notifications 
  
 to 
  
 send 
 . 
  
 NOTIFICATIONS_OMITTED 
  
 = 
  
 1 
 ; 
 } 
 // 
  
 Update 
  
 data 
  
 for 
  
 a 
  
 single 
  
 user 
 . 
 message 
  
 UserDataOperation 
  
 { 
  
 // 
  
 User 
  
 id 
 . 
  
 The 
  
 type 
  
 is 
  
 determined 
  
 by 
  
 the 
  
 user_id_type 
  
 field 
 . 
  
 // 
  
 // 
  
 Must 
  
 always 
  
 be 
  
 present 
 . 
  
 Specifies 
  
 which 
  
 user 
  
 this 
  
 operation 
  
 applies 
  
 to 
 . 
  
 optional 
  
 string 
  
 user_id 
  
 = 
  
 1 
  
 [ 
 default 
  
 = 
  
 "" 
 ]; 
  
 // 
  
 The 
  
 type 
  
 of 
  
 the 
  
 user 
  
 id 
 . 
  
 optional 
  
 UserIdType 
  
 user_id_type 
  
 = 
  
 14 
  
 [ 
 default 
  
 = 
  
 GOOGLE_USER_ID 
 ]; 
  
 // 
  
 The 
  
 id 
  
 of 
  
 the 
  
 userlist 
 . 
  
 This 
  
 can 
  
 be 
  
 retrieved 
  
 from 
  
 the 
  
 AdX 
  
 UI 
  
 for 
  
 AdX 
  
 // 
  
 customers 
 , 
  
 the 
  
 AdWords 
  
 API 
  
 for 
  
 non 
 - 
 AdX 
  
 customers 
 , 
  
 or 
  
 through 
  
 your 
  
 Technical 
  
 // 
  
 Account 
  
 Manager 
 . 
  
 optional 
  
 int64 
  
 user_list_id 
  
 = 
  
 4 
  
 [ 
 default 
  
 = 
  
 0 
 ]; 
  
 // 
  
 Optional 
  
 time 
  
 ( 
 seconds 
  
 since 
  
 the 
  
 epoch 
 ) 
  
 when 
  
 the 
  
 user 
  
 performed 
  
 an 
  
 action 
  
 // 
  
 causing 
  
 them 
  
 to 
  
 be 
  
 added 
  
 to 
  
 the 
  
 list 
 . 
  
 Using 
  
 the 
  
 default 
  
 value 
  
 of 
  
 0 
  
 // 
  
 indicates 
  
 that 
  
 the 
  
 current 
  
 time 
  
 on 
  
 the 
  
 server 
  
 should 
  
 be 
  
 used 
 . 
  
 optional 
  
 int64 
  
 time_added_to_user_list 
  
 = 
  
 5 
  
 [ 
 default 
  
 = 
  
 0 
 ]; 
  
 // 
  
 Same 
  
 as 
  
 time_added_to_user_list 
  
 but 
  
 with 
  
 finer 
  
 grained 
  
 time 
  
 resolution 
 , 
  
 in 
  
 // 
  
 microseconds 
 . 
  
 If 
  
 both 
  
 timestamps 
  
 are 
  
 specified 
 , 
  
 // 
  
 time_added_to_user_list_in_usec 
  
 will 
  
 be 
  
 used 
 . 
  
 optional 
  
 int64 
  
 time_added_to_user_list_in_usec 
  
 = 
  
 8 
  
 [ 
 default 
  
 = 
  
 0 
 ]; 
  
 // 
  
 Set 
  
 to 
  
 true 
  
 if 
  
 the 
  
 operation 
  
 is 
  
 a 
  
 deletion 
 . 
  
 optional 
  
 bool 
  
 delete 
  
 = 
  
 6 
  
 [ 
 default 
  
 = 
  
 false 
 ]; 
  
 // 
  
 Set 
  
 true 
  
 if 
  
 the 
  
 user 
  
 opted 
  
 out 
  
 from 
  
 being 
  
 targeted 
 . 
  
 optional 
  
 bool 
  
 opt_out 
  
 = 
  
 12 
  
 [ 
 default 
  
 = 
  
 false 
 ]; 
  
 // 
  
 An 
  
 id 
  
 indicating 
  
 the 
  
 data 
  
 source 
  
 which 
  
 contributed 
  
 this 
  
 membership 
 . 
  
 The 
  
 id 
  
 // 
  
 is 
  
 required 
  
 to 
  
 be 
  
 in 
  
 the 
  
 range 
  
 of 
  
 1 
  
 to 
  
 1000 
  
 and 
  
 any 
  
 ids 
  
 greater 
  
 than 
  
 this 
  
 // 
  
 will 
  
 result 
  
 in 
  
 an 
  
 error 
  
 of 
  
 type 
  
 BAD_DATA_SOURCE_ID 
 . 
  
 These 
  
 ids 
  
 don 
 't have 
  
 // 
  
 any 
  
 semantics 
  
 for 
  
 Google 
  
 and 
  
 may 
  
 be 
  
 used 
  
 as 
  
 labels 
  
 for 
  
 reporting 
  
 purposes 
 . 
  
 optional 
  
 int32 
  
 data_source_id 
  
 = 
  
 7 
  
 [ 
 default 
  
 = 
  
 0 
 ]; 
 } 
 // 
  
 This 
  
 protocol 
  
 buffer 
  
 is 
  
 used 
  
 to 
  
 update 
  
 user 
  
 data 
 . 
  
 It 
  
 is 
  
 sent 
  
 as 
  
 the 
  
 payload 
 // 
  
 of 
  
 an 
  
 HTTPS 
  
 POST 
  
 request 
  
 with 
  
 the 
  
 Content 
 - 
 Type 
  
 header 
  
 set 
  
 to 
 // 
  
 "application/octet-stream" 
  
 ( 
 preferrably 
  
 Content 
 - 
 Encoding 
 : 
  
 gzip 
 ) 
 . 
 message 
  
 UpdateUsersDataRequest 
  
 { 
  
 // 
  
 Multiple 
  
 operations 
  
 over 
  
 user 
  
 attributes 
  
 or 
  
 user 
  
 lists 
 . 
  
 repeated 
  
 UserDataOperation 
  
 ops 
  
 = 
  
 1 
 ; 
  
 // 
  
 If 
  
 true 
 , 
  
 request 
  
 sending 
  
 notifications 
  
 about 
  
 the 
  
 given 
  
 users 
  
 in 
  
 the 
  
 // 
  
 response 
 . 
  
 Note 
  
 that 
  
 in 
  
 some 
  
 circumstances 
  
 notifications 
  
 may 
  
 not 
  
 be 
  
 sent 
  
 // 
  
 even 
  
 if 
  
 requested 
 . 
  
 In 
  
 this 
  
 case 
  
 the 
  
 notification_status 
  
 field 
  
 of 
  
 the 
  
 // 
  
 response 
  
 will 
  
 be 
  
 set 
  
 to 
  
 NOTIFICATIONS_OMITTED 
 . 
  
 optional 
  
 bool 
  
 send_notifications 
  
 = 
  
 2 
  
 [ 
 default 
  
 = 
  
 false 
 ]; 
  
 // 
  
 Partners 
  
 using 
  
 the 
  
 Bulk 
  
 Upload 
  
 API 
  
 must 
  
 indicate 
  
 that 
  
 they 
  
 have 
  
 the 
  
 proper 
  
 // 
  
 legal 
  
 basis 
  
 to 
  
 share 
  
 user 
  
 data 
  
 with 
  
 Google 
  
 for 
  
 Bulk 
  
 Upload 
  
 purposes 
  
 using 
  
 // 
  
 the 
  
 process_consent 
  
 parameter 
 . 
  
 This 
  
 requirement 
  
 applies 
  
 to 
  
 all 
  
 Bulk 
  
 Upload 
  
 // 
  
 requests 
 . 
  
 // 
  
 // 
  
 For 
  
 user 
  
 data 
  
 that 
  
 requires 
  
 end 
 - 
 user 
  
 consent 
  
 as 
  
 // 
  
 required 
  
 by 
  
 Google 
 's EU User Consent Policy 
  
 // 
  
 ( 
 see 
  
 https 
 : 
 // 
 www 
 . 
 google 
 . 
 com 
 / 
 about 
 / 
 company 
 / 
 user 
 - 
 consent 
 - 
 policy 
 / 
 ) 
  
 or 
  
 // 
  
 by 
  
 other 
  
 local 
  
 laws 
 , 
  
 partners 
  
 are 
  
 required 
  
 to 
  
 obtain 
  
 // 
  
 end 
 - 
 user 
  
 consent 
  
 and 
  
 indicate 
  
 gathered 
  
 consent 
  
 // 
  
 by 
  
 setting 
  
 process_consent 
 = 
 True 
 . 
  
 // 
  
 // 
  
 For 
  
 user 
  
 data 
  
 which 
  
 is 
  
 not 
  
 subject 
  
 to 
  
 end 
 - 
 user 
  
 consent 
  
 requirements 
 , 
  
 // 
  
 partners 
  
 are 
  
 required 
  
 to 
  
 indicate 
  
 that 
  
 consent 
  
 is 
  
 not 
  
 // 
  
 required 
  
 by 
  
 setting 
  
 process_consent 
 = 
 True 
 . 
  
 // 
  
 // 
  
 Requests 
  
 without 
  
 ` 
 process_consent 
 = 
 True 
 ` 
  
 will 
  
 be 
  
 filtered 
 . 
  
 optional 
  
 bool 
  
 process_consent 
  
 = 
  
 3 
  
 [ 
 default 
  
 = 
  
 false 
 ]; 
 } 
 // 
  
 Response 
  
 error 
  
 codes 
 . 
 enum 
  
 ErrorCode 
  
 { 
  
 NO_ERROR 
  
 = 
  
 0 
 ; 
  
 // 
  
 Some 
  
 of 
  
 the 
  
 user 
  
 data 
  
 operations 
  
 failed 
 . 
  
 See 
  
 comments 
  
 in 
  
 the 
  
 // 
  
 UpdateUserDataResponse 
  
 PARTIAL_SUCCESS 
  
 = 
  
 1 
 ; 
  
 // 
  
 Provided 
  
 network_id 
  
 cannot 
  
 add 
  
 data 
  
 to 
  
 attribute_id 
  
 or 
  
 non 
 - 
 HTTPS 
 . 
  
 PERMISSION_DENIED 
  
 = 
  
 2 
 ; 
  
 // 
  
 Cannot 
  
 parse 
  
 payload 
 . 
  
 BAD_DATA 
  
 = 
  
 3 
 ; 
  
 // 
  
 Cannot 
  
 decode 
  
 provided 
  
 cookie 
 . 
  
 BAD_COOKIE 
  
 = 
  
 4 
 ; 
  
 // 
  
 Invalid 
  
 or 
  
 closed 
  
 user_list_id 
 . 
  
 BAD_ATTRIBUTE_ID 
  
 = 
  
 5 
 ; 
  
 // 
  
 An 
  
 invalid 
  
 nid 
  
 parameter 
  
 was 
  
 provided 
  
 in 
  
 the 
  
 request 
 . 
  
 BAD_NETWORK_ID 
  
 = 
  
 7 
 ; 
  
 // 
  
 Request 
  
 payload 
  
 size 
  
 over 
  
 allowed 
  
 limit 
 . 
  
 REQUEST_TOO_BIG 
  
 = 
  
 8 
 ; 
  
 // 
  
 No 
  
 UserDataOperation 
  
 messages 
  
 in 
  
 UpdateUsersDataRequest 
 . 
  
 EMPTY_REQUEST 
  
 = 
  
 9 
 ; 
  
 // 
  
 The 
  
 server 
  
 could 
  
 not 
  
 process 
  
 the 
  
 request 
  
 due 
  
 to 
  
 an 
  
 internal 
  
 error 
 . 
  
 Retrying 
  
 // 
  
 the 
  
 same 
  
 request 
  
 later 
  
 is 
  
 suggested 
 . 
  
 INTERNAL_ERROR 
  
 = 
  
 10 
 ; 
  
 // 
  
 Bad 
  
 data_source_id 
  
 -- 
  
 most 
  
 likely 
  
 out 
  
 of 
  
 range 
  
 from 
  
 [ 
 1 
 , 
  
 1000 
 ] 
 . 
  
 BAD_DATA_SOURCE_ID 
  
 = 
  
 11 
 ; 
  
 // 
  
 The 
  
 timestamp 
  
 is 
  
 a 
  
 past 
 / 
 future 
  
 time 
  
 that 
  
 is 
  
 too 
  
 far 
  
 from 
  
 current 
  
 time 
 . 
  
 BAD_TIMESTAMP 
  
 = 
  
 12 
 ; 
  
 // 
  
 Partners 
  
 using 
  
 the 
  
 Bulk 
  
 Upload 
  
 API 
  
 must 
  
 indicate 
  
 that 
  
 they 
  
 have 
  
 the 
  
 proper 
  
 // 
  
 legal 
  
 basis 
  
 to 
  
 share 
  
 user 
  
 data 
  
 with 
  
 Google 
  
 for 
  
 Bulk 
  
 Upload 
  
 purposes 
  
 using 
  
 // 
  
 the 
  
 process_consent 
  
 parameter 
 . 
  
 This 
  
 requirement 
  
 applies 
  
 to 
  
 all 
  
 Bulk 
  
 Upload 
  
 // 
  
 requests 
 . 
  
 // 
  
 // 
  
 For 
  
 user 
  
 data 
  
 that 
  
 requires 
  
 end 
 - 
 user 
  
 consent 
  
 as 
  
 // 
  
 required 
  
 by 
  
 Google 
 's EU User Consent Policy 
  
 // 
  
 ( 
 see 
  
 https 
 : 
 // 
 www 
 . 
 google 
 . 
 com 
 / 
 about 
 / 
 company 
 / 
 user 
 - 
 consent 
 - 
 policy 
 / 
 ) 
  
 or 
  
 // 
  
 by 
  
 other 
  
 local 
  
 laws 
 , 
  
 partners 
  
 are 
  
 required 
  
 to 
  
 obtain 
  
 // 
  
 end 
 - 
 user 
  
 consent 
  
 and 
  
 indicate 
  
 gathered 
  
 consent 
  
 // 
  
 by 
  
 setting 
  
 process_consent 
 = 
 True 
 . 
  
 // 
  
 // 
  
 For 
  
 user 
  
 data 
  
 which 
  
 is 
  
 not 
  
 subject 
  
 to 
  
 end 
 - 
 user 
  
 consent 
  
 requirements 
 , 
  
 // 
  
 partners 
  
 are 
  
 required 
  
 to 
  
 indicate 
  
 that 
  
 consent 
  
 is 
  
 not 
  
 // 
  
 required 
  
 by 
  
 setting 
  
 process_consent 
 = 
 True 
 . 
  
 // 
  
 // 
  
 Requests 
  
 where 
  
 ` 
 process_consent 
 ` 
  
 is 
  
 missing 
  
 will 
  
 be 
  
 filtered 
  
 and 
  
 // 
  
 return 
  
 the 
  
 following 
  
 error 
 : 
  
 MISSING_CONSENT_WILL_BE_DROPPED 
  
 = 
  
 22 
 ; 
  
 // 
  
 Requests 
  
 where 
  
 ` 
 process_consent 
 ` 
  
 is 
  
 set 
  
 to 
  
 ` 
 false 
 ` 
  
 will 
  
 be 
  
 filtered 
  
 and 
  
 // 
  
 return 
  
 the 
  
 following 
  
 error 
 : 
  
 MISSING_CONSENT 
  
 = 
  
 23 
 ; 
  
 // 
  
 Missing 
  
 internal 
  
 mapping 
 . 
  
 // 
  
 If 
  
 operation 
  
 is 
  
 PARTNER_PROVIDED_ID 
 , 
  
 then 
  
 this 
  
 error 
  
 means 
  
 our 
  
 mapping 
  
 // 
  
 table 
  
 does 
  
 not 
  
 contain 
  
 corresponding 
  
 google 
  
 user 
  
 id 
 . 
  
 This 
  
 mapping 
  
 is 
  
 // 
  
 recorded 
  
 during 
  
 Cookie 
  
 Matching 
 . 
  
 // 
  
 For 
  
 other 
  
 operations 
 , 
  
 then 
  
 it 
  
 may 
  
 be 
  
 internal 
  
 error 
 . 
  
 UNKNOWN_ID 
  
 = 
  
 21 
 ; 
 } 
 // 
  
 Information 
  
 about 
  
 an 
  
 error 
  
 with 
  
 an 
  
 individual 
  
 user 
  
 operation 
 . 
 message 
  
 ErrorInfo 
  
 { 
  
 // 
  
 The 
  
 user_list_id 
  
 in 
  
 the 
  
 request 
  
 which 
  
 caused 
  
 problems 
 . 
  
 This 
  
 may 
  
 be 
  
 empty 
  
 // 
  
 if 
  
 the 
  
 problem 
  
 was 
  
 with 
  
 a 
  
 particular 
  
 user 
  
 id 
 . 
  
 optional 
  
 int64 
  
 user_list_id 
  
 = 
  
 2 
  
 [ 
 default 
  
 = 
  
 0 
 ]; 
  
 // 
  
 The 
  
 user_id 
  
 which 
  
 caused 
  
 problems 
 . 
  
 This 
  
 may 
  
 be 
  
 empty 
  
 if 
  
 other 
  
 data 
  
 was 
  
 bad 
  
 // 
  
 regardless 
  
 of 
  
 a 
  
 cookie 
 . 
  
 optional 
  
 string 
  
 user_id 
  
 = 
  
 3 
  
 [ 
 default 
  
 = 
  
 "" 
 ]; 
  
 // 
  
 The 
  
 type 
  
 of 
  
 the 
  
 user 
  
 ID 
 . 
  
 optional 
  
 UserIdType 
  
 user_id_type 
  
 = 
  
 7 
  
 [ 
 default 
  
 = 
  
 GOOGLE_USER_ID 
 ]; 
  
 optional 
  
 ErrorCode 
  
 error_code 
  
 = 
  
 4 
 ; 
 } 
 // 
  
 Per 
  
 user 
  
 notification 
  
 information 
 . 
 message 
  
 NotificationInfo 
  
 { 
  
 // 
  
 The 
  
 user_id 
  
 for 
  
 which 
  
 the 
  
 notification 
  
 applies 
 . 
  
 One 
  
 of 
  
 the 
  
 user_ids 
  
 sent 
  
 // 
  
 in 
  
 a 
  
 UserDataOperation 
 . 
  
 optional 
  
 string 
  
 user_id 
  
 = 
  
 1 
  
 [ 
 default 
  
 = 
  
 "" 
 ]; 
  
 optional 
  
 NotificationCode 
  
 notification_code 
  
 = 
  
 2 
 ; 
 } 
 // 
  
 Response 
  
 to 
  
 the 
  
 UpdateUsersDataRequest 
 . 
  
 Sent 
  
 in 
  
 HTTP 
  
 response 
  
 to 
  
 the 
 // 
  
 original 
  
 POST 
  
 request 
 , 
  
 with 
  
 the 
  
 Content 
 - 
 Type 
  
 header 
  
 set 
  
 to 
 // 
  
 "application/octet-stream" 
 . 
  
 The 
  
 HTTP 
  
 response 
  
 status 
  
 is 
  
 either 
  
 200 
  
 ( 
 no 
 // 
  
 errors 
 ) 
  
 or 
  
 400 
 , 
  
 in 
  
 which 
  
 case 
  
 the 
  
 protocol 
  
 buffer 
  
 will 
  
 provide 
  
 error 
  
 details 
 . 
 message 
  
 UpdateUsersDataResponse 
  
 { 
  
 // 
  
 When 
  
 status 
  
 == 
  
 PARTIAL_SUCCESS 
 , 
  
 some 
  
 ( 
 not 
  
 all 
 ) 
  
 of 
  
 the 
  
 operations 
  
 failed 
  
 and 
  
 // 
  
 the 
  
 "errors" 
  
 field 
  
 has 
  
 details 
  
 on 
  
 the 
  
 types 
  
 and 
  
 number 
  
 of 
  
 errors 
  
 // 
  
 encountered 
 . 
  
 When 
  
 status 
  
 == 
  
 NO_ERROR 
 , 
  
 all 
  
 the 
  
 data 
  
 was 
  
 imported 
  
 // 
  
 successfully 
 . 
  
 When 
  
 status 
 > 
 PARTIAL_SUCCESS 
  
 no 
  
 data 
  
 was 
  
 imported 
 . 
  
 optional 
  
 ErrorCode 
  
 status 
  
 = 
  
 1 
 ; 
  
 // 
  
 Each 
  
 operation 
  
 that 
  
 failed 
  
 is 
  
 reported 
  
 as 
  
 a 
  
 separate 
  
 error 
  
 here 
  
 when 
  
 // 
  
 status 
  
 == 
  
 PARTIAL_SUCCESS 
 . 
  
 repeated 
  
 ErrorInfo 
  
 errors 
  
 = 
  
 2 
 ; 
  
 // 
  
 Useful 
 , 
  
 non 
 - 
 error 
 , 
  
 information 
  
 about 
  
 the 
  
 user 
  
 ids 
  
 in 
  
 the 
  
 request 
 . 
  
 Each 
  
 // 
  
 NotificationInfo 
  
 provides 
  
 information 
  
 about 
  
 a 
  
 single 
  
 user 
  
 id 
 . 
  
 Only 
  
 sent 
  
 if 
  
 // 
  
 UpdateUsersDataRequest 
 . 
 send_notifications 
  
 is 
  
 set 
  
 to 
  
 true 
 . 
  
 repeated 
  
 NotificationInfo 
  
 notifications 
  
 = 
  
 3 
 ; 
  
 // 
  
 Indicates 
  
 why 
  
 a 
  
 notification 
  
 has 
  
 not 
  
 been 
  
 sent 
 . 
  
 optional 
  
 NotificationStatus 
  
 notification_status 
  
 = 
  
 4 
 ; 
 } 
Create a Mobile Website
View Site in Mobile | Classic
Share by: