Skip to content

Commit eb644cf

Browse files
Google APIscopybara-github
authored andcommitted
feat: add the coupon_codes field to CartData to track coupon redemptions for Google Ads and Google Analytics
feat: add the ItemCustomVariable resource to track per-item custom variables feat: add merchant_id, merchant_feed_label, merchant_feed_language_code, conversion_value, and custom_variables fields to Item feat: add the https://www.googleapis.com/auth/datamanager.partnerlink OAuth scope to PartnerLinkService feat: add metadata fields to DeviceInfo to provide details about the user’s device feat: add several new values to the ErrorReason enum to support store sales and Google Analytics validation docs: update the description of transaction_id in Event to clarify its use for tag and SDK conversions docs: update the description of enum value for PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR to resolve typo docs: update RequestStatus enum value descriptions to include details on error and warning information docs: clarify population behavior for error_info and warning_info fields in RequestStatusPerDestination feat: add third_party_user_data, event_location, and app_instance_id to Event feat: add the MESSAGE value to the EventSource enum feat: add mobile_device_id to AdIdentifiers for Google Analytics feat: add a processing error reason related to BRAIDs and one-per-click conversions feat: add youtube_members_count and gmail_members_count fields to the SizeInfo resource PiperOrigin-RevId: 917255480
1 parent e246176 commit eb644cf

10 files changed

Lines changed: 224 additions & 11 deletions

google/ads/datamanager/v1/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,6 @@ load(
368368

369369
csharp_proto_library(
370370
name = "datamanager_csharp_proto",
371-
extra_opts = [],
372371
deps = [":datamanager_proto"],
373372
)
374373

google/ads/datamanager/v1/cart_data.proto

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ message CartData {
4646

4747
// Optional. The list of items associated with the event.
4848
repeated Item items = 5 [(google.api.field_behavior) = OPTIONAL];
49+
50+
// Optional. The list of coupon codes that were applied to the cart.
51+
// Cart-level and item-level coupon codes are independent.
52+
//
53+
// If the event is for a Google Analytics destination, only provide a single
54+
// coupon code. Google Analytics ignores additional coupon codes.
55+
repeated string coupon_codes = 6 [(google.api.field_behavior) = OPTIONAL];
4956
}
5057

5158
// Represents an item in the cart associated with the event.
@@ -69,4 +76,49 @@ message Item {
6976
// structured fields.
7077
repeated ItemParameter additional_item_parameters = 5
7178
[(google.api.field_behavior) = OPTIONAL];
79+
80+
// Optional. The Merchant Center ID associated with the item. For Store Sales
81+
// events this will override the value set at the cart level. This field is
82+
// ignored for other events.
83+
string merchant_id = 6 [(google.api.field_behavior) = OPTIONAL];
84+
85+
// Optional. The feed label of the Merchant Center feed. If countries are
86+
// still being used, the 2-letter country code in ISO-3166-1 alpha-2 can be
87+
// used instead. For Store Sales events this will override the value set at
88+
// the cart level. This field is ignored for other events.
89+
string merchant_feed_label = 7 [(google.api.field_behavior) = OPTIONAL];
90+
91+
// Optional. The language code in ISO 639-1 associated with the Merchant
92+
// Center feed where your items are uploaded.
93+
string merchant_feed_language_code = 8
94+
[(google.api.field_behavior) = OPTIONAL];
95+
96+
// Optional. The conversion value associated with this item within the event,
97+
// for cases where the conversion value is different for each item.
98+
optional double conversion_value = 9 [(google.api.field_behavior) = OPTIONAL];
99+
100+
// Optional. Additional key/value pair information to send to the conversion
101+
// containers (conversion action or Floodlight activity), when tracking
102+
// per-item
103+
// conversions.
104+
repeated ItemCustomVariable custom_variables = 10
105+
[(google.api.field_behavior) = OPTIONAL];
106+
}
107+
108+
// Item-level custom variable for ads conversions.
109+
message ItemCustomVariable {
110+
// Optional. The name of the custom variable to set. If the variable is not
111+
// found for the given destination, it will be ignored.
112+
string variable = 1 [(google.api.field_behavior) = OPTIONAL];
113+
114+
// Optional. The value to store for the custom variable.
115+
string value = 2 [(google.api.field_behavior) = OPTIONAL];
116+
117+
// Optional. Reference string used to determine which of the
118+
// [Event.destination_references][google.ads.datamanager.v1.Event.destination_references]
119+
// the custom variable should be sent to. If empty, the
120+
// [Event.destination_references][google.ads.datamanager.v1.Event.destination_references]
121+
// will be used.
122+
repeated string destination_references = 3
123+
[(google.api.field_behavior) = OPTIONAL];
72124
}

google/ads/datamanager/v1/datamanager_v1.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ authentication:
3232
- selector: 'google.ads.datamanager.v1.PartnerLinkService.*'
3333
oauth:
3434
canonical_scopes: |-
35-
https://www.googleapis.com/auth/datamanager
35+
https://www.googleapis.com/auth/datamanager,
36+
https://www.googleapis.com/auth/datamanager.partnerlink
3637
- selector: 'google.ads.datamanager.v1.UserListDirectLicenseService.*'
3738
oauth:
3839
canonical_scopes: |-

google/ads/datamanager/v1/device_info.proto

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,35 @@ message DeviceInfo {
4343
// imports](https://support.google.com/google-ads/answer/2998031) page for
4444
// more details.
4545
string ip_address = 2 [(google.api.field_behavior) = OPTIONAL];
46+
47+
// Optional. The category of device. For example, “desktop”, “tablet”,
48+
// “mobile”, “smart TV”.
49+
string category = 3 [(google.api.field_behavior) = OPTIONAL];
50+
51+
// Optional. The language the device uses in ISO 639-1 format.
52+
string language_code = 4 [(google.api.field_behavior) = OPTIONAL];
53+
54+
// Optional. The height of the screen in pixels.
55+
int32 screen_height = 5 [(google.api.field_behavior) = OPTIONAL];
56+
57+
// Optional. The width of the screen in pixels.
58+
int32 screen_width = 6 [(google.api.field_behavior) = OPTIONAL];
59+
60+
// Optional. The operating system or platform of the device.
61+
string operating_system = 7 [(google.api.field_behavior) = OPTIONAL];
62+
63+
// Optional. The version of the operating system or platform.
64+
string operating_system_version = 8 [(google.api.field_behavior) = OPTIONAL];
65+
66+
// Optional. The model of the device.
67+
string model = 9 [(google.api.field_behavior) = OPTIONAL];
68+
69+
// Optional. The brand of the device.
70+
string brand = 10 [(google.api.field_behavior) = OPTIONAL];
71+
72+
// Optional. The brand or type of the browser.
73+
string browser = 11 [(google.api.field_behavior) = OPTIONAL];
74+
75+
// Optional. The version of the browser.
76+
string browser_version = 12 [(google.api.field_behavior) = OPTIONAL];
4677
}

google/ads/datamanager/v1/error.proto

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,4 +346,57 @@ enum ErrorReason {
346346
// The customer contains non-exempt campaigns without the EU political
347347
// advertising declaration.
348348
EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED = 101;
349+
350+
// Account is not eligible for Store Sales.
351+
ACCOUNT_INELIGIBLE_FOR_STORE_SALES = 102;
352+
353+
// The merchant feed language code is not valid.
354+
INVALID_MERCHANT_FEED_LANGUAGE_CODE = 103;
355+
356+
// The region code is not valid.
357+
INVALID_REGION_CODE = 104;
358+
359+
// The subdivision code is not valid.
360+
INVALID_SUBDIVISION_CODE = 107;
361+
362+
// The subcontinent code is not valid.
363+
INVALID_SUBCONTINENT_CODE = 108;
364+
365+
// The continent code is not valid.
366+
INVALID_CONTINENT_CODE = 109;
367+
368+
// The device category is not valid.
369+
INVALID_DEVICE_CATEGORY = 110;
370+
371+
// Both app_instance_id and client_id are set.
372+
BOTH_CLIENT_ID_AND_APP_INSTANCE_ID_NOT_ALLOWED = 111;
373+
374+
// The Google Analytics property is a subproperty or rollup property.
375+
GOOGLE_ANALYTICS_SUBPROPERTY_OR_ROLLUP_PROPERTY_NOT_ALLOWED = 112;
376+
377+
// Third party user data can only be set by data partners.
378+
THIRD_PARTY_USER_DATA_NOT_ALLOWED = 113;
379+
380+
// The coupon code is not valid.
381+
INVALID_COUPON_CODE = 114;
382+
383+
// The event source type does not match the destination type.
384+
EVENT_SOURCE_AND_DESTINATION_MISMATCH = 115;
385+
386+
// The destination account type does not match the specified account id.
387+
DESTINATION_ACCOUNT_TYPE_MISMATCH = 116;
388+
389+
// The custom variable value contains personally identifiable information
390+
// (PII).
391+
CUSTOM_VARIABLE_VALUE_CONTAINS_PII = 117;
392+
393+
// The custom variable is not enabled.
394+
CUSTOM_VARIABLE_NOT_ENABLED = 118;
395+
396+
// The custom variable's value is invalid.
397+
INVALID_CUSTOM_VARIABLE_VALUE = 119;
398+
399+
// The destination does not have a custom variable with a name that matches
400+
// the specified `variable`.
401+
CUSTOM_VARIABLE_NOT_FOUND = 120;
349402
}

google/ads/datamanager/v1/event.proto

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ message Event {
4242
repeated string destination_references = 1
4343
[(google.api.field_behavior) = OPTIONAL];
4444

45-
// Optional. The unique identifier for this event. Required for conversions
46-
// using multiple data sources.
45+
// Optional. The unique identifier for this event. Required for events sent as
46+
// an additional data source for tag conversions.
4747
string transaction_id = 2 [(google.api.field_behavior) = OPTIONAL];
4848

4949
// Required. The time the event occurred.
@@ -115,6 +115,19 @@ message Event {
115115
// structured fields.
116116
repeated EventParameter additional_event_parameters = 19
117117
[(google.api.field_behavior) = OPTIONAL];
118+
119+
// Optional. The same type of data provided in user_data, but explicitly
120+
// flagged as being provided as owned by a third-party and not first-party
121+
// advertiser data.
122+
UserData third_party_user_data = 20 [(google.api.field_behavior) = OPTIONAL];
123+
124+
// Optional. Information gathered about the location of the user when this
125+
// event occurred.
126+
EventLocation event_location = 21 [(google.api.field_behavior) = OPTIONAL];
127+
128+
// Optional. A unique identifier for the user instance of an app client for
129+
// this GA4 app stream.
130+
string app_instance_id = 22 [(google.api.field_behavior) = OPTIONAL];
118131
}
119132

120133
// Identifiers and other information used to match the conversion event with
@@ -138,6 +151,10 @@ message AdIdentifiers {
138151
// time of landing onto the advertiser’s site after interacting with the ad.
139152
DeviceInfo landing_page_device_info = 5
140153
[(google.api.field_behavior) = OPTIONAL];
154+
155+
// Optional. The mobile identifier for advertisers. This would be IDFA on iOS,
156+
// AdID on Android, or other platforms’ identifiers for advertisers.
157+
string mobile_device_id = 6 [(google.api.field_behavior) = OPTIONAL];
141158
}
142159

143160
// Custom variable for ads conversions.
@@ -167,6 +184,28 @@ message EventParameter {
167184
string value = 2 [(google.api.field_behavior) = REQUIRED];
168185
}
169186

187+
// The location where the event occurred.
188+
message EventLocation {
189+
// Optional. Required for Store Sales. The identifier to represent a physical
190+
// store where the event happened.
191+
string store_id = 1 [(google.api.field_behavior) = OPTIONAL];
192+
193+
// Optional. The name of the city where the event occurred.
194+
string city = 2 [(google.api.field_behavior) = OPTIONAL];
195+
196+
// Optional. The ISO 3166-2 subdivision code where the event occurred.
197+
string subdivision_code = 3 [(google.api.field_behavior) = OPTIONAL];
198+
199+
// Optional. The 2-letter CLDR region code of the user's address.
200+
string region_code = 4 [(google.api.field_behavior) = OPTIONAL];
201+
202+
// Optional. The subcontinent code in UN M49 format where the event occurred.
203+
string subcontinent_code = 5 [(google.api.field_behavior) = OPTIONAL];
204+
205+
// Optional. The continent code in UN M49 format where the event occurred.
206+
string continent_code = 6 [(google.api.field_behavior) = OPTIONAL];
207+
}
208+
170209
// The source of the event.
171210
enum EventSource {
172211
// Unspecified EventSource. Should never be used.
@@ -184,6 +223,9 @@ enum EventSource {
184223
// The event was generated from a phone call.
185224
PHONE = 4;
186225

226+
// The event was generated from a message.
227+
MESSAGE = 6;
228+
187229
// The event was generated from other sources.
188230
OTHER = 5;
189231
}

google/ads/datamanager/v1/partner_link_service.proto

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ option ruby_package = "Google::Ads::DataManager::V1";
3535
service PartnerLinkService {
3636
option (google.api.default_host) = "datamanager.googleapis.com";
3737
option (google.api.oauth_scopes) =
38-
"https://www.googleapis.com/auth/datamanager";
38+
"https://www.googleapis.com/auth/datamanager,"
39+
"https://www.googleapis.com/auth/datamanager.partnerlink";
3940

4041
// Creates a partner link for the given account.
4142
//

google/ads/datamanager/v1/processing_errors.proto

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,10 @@ enum ProcessingErrorReason {
150150
// The user attempted to ingest events with an ad identifier that isn't
151151
// from the operating account's ads.
152152
PROCESSING_ERROR_OPERATING_ACCOUNT_MISMATCH_FOR_AD_IDENTIFIER = 26;
153+
154+
// One-per-click conversion actions cannot be used with BRAIDs.
155+
PROCESSING_ERROR_REASON_ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID =
156+
28;
153157
}
154158

155159
// The processing warning reason.
@@ -177,7 +181,7 @@ enum ProcessingWarningReason {
177181
// exist.
178182
PROCESSING_WARNING_REASON_INVALID_KEK = 6;
179183

180-
// Failed to decrypt th
184+
// Failed to decrypt the
181185
// [UserIdentifier][google.ads.datamanager.v1.UserIdentifier] data using the
182186
// DEK.
183187
PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR = 7;

google/ads/datamanager/v1/request_status_per_destination.proto

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,28 @@ message RequestStatusPerDestination {
3535
// The request status is unknown.
3636
REQUEST_STATUS_UNKNOWN = 0;
3737

38-
// The request succeeded.
38+
// Processing succeeded for all records without any errors. However, there
39+
// may be warnings in the
40+
// [`warning_info`][google.ads.datamanager.v1.RequestStatusPerDestination.warning_info]
41+
// field.
3942
SUCCESS = 1;
4043

4144
// The request is processing.
4245
PROCESSING = 2;
4346

44-
// The request failed.
47+
// Processing failed for all records. Check the
48+
// [`error_info`][google.ads.datamanager.v1.RequestStatusPerDestination.error_info]
49+
// field for error details, and check the
50+
// [`warning_info`][google.ads.datamanager.v1.RequestStatusPerDestination.warning_info]
51+
// field for warning details.
4552
FAILED = 3;
4653

47-
// The request partially succeeded.
54+
// Processing completed successfully without errors for some records, but
55+
// failed with errors for other records. Check the
56+
// [`error_info`][google.ads.datamanager.v1.RequestStatusPerDestination.error_info]
57+
// field for error details, and check the
58+
// [`warning_info`][google.ads.datamanager.v1.RequestStatusPerDestination.warning_info]
59+
// field for warning details.
4860
PARTIAL_SUCCESS = 4;
4961
}
5062

@@ -243,11 +255,23 @@ message RequestStatusPerDestination {
243255
RequestStatus request_status = 2;
244256

245257
// An error info error containing the error reason and error counts related to
246-
// the upload.
258+
// the upload. Only populated if the
259+
// [`request_status`][google.ads.datamanager.v1.RequestStatusPerDestination.request_status]
260+
// is
261+
// [`FAILED`][google.ads.datamanager.v1.RequestStatusPerDestination.RequestStatus.FAILED]
262+
// or
263+
// [`PARTIAL_SUCCESS`][google.ads.datamanager.v1.RequestStatusPerDestination.RequestStatus.PARTIAL_SUCCESS].
264+
// This field isn't populated while the request has
265+
// [`request_status`][google.ads.datamanager.v1.RequestStatusPerDestination.request_status]
266+
// of
267+
// [`PROCESSING`][google.ads.datamanager.v1.RequestStatusPerDestination.RequestStatus.PROCESSING].
247268
ErrorInfo error_info = 3;
248269

249270
// A warning info containing the warning reason and warning counts related to
250-
// the upload.
271+
// the upload. This field isn't populated while the request has
272+
// [`request_status`][google.ads.datamanager.v1.RequestStatusPerDestination.request_status]
273+
// of
274+
// [`PROCESSING`][google.ads.datamanager.v1.RequestStatusPerDestination.RequestStatus.PROCESSING].
251275
WarningInfo warning_info = 7;
252276

253277
// The status of the destination.

google/ads/datamanager/v1/user_list.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,12 @@ message SizeInfo {
167167
// campaigns.
168168
int64 search_network_members_count = 2
169169
[(google.api.field_behavior) = OUTPUT_ONLY];
170+
171+
// Output only. Estimated number of members in this user list on YouTube.
172+
int64 youtube_members_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
173+
174+
// Output only. Estimated number of members in this user list on Gmail.
175+
int64 gmail_members_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
170176
}
171177

172178
// Eligibility information for different target networks.

0 commit comments

Comments
 (0)