Skip to content

Commit e030b93

Browse files
Google APIscopybara-github
authored andcommitted
feat: add AwsWrappedKeyInfo to EncryptionInfo for supporting data encryption using AWS KMS keys
feat: add `additional_user_properties` to `UserProperties` for sending additional key-value pairs of user properties feat: add `item_id` to `Item` for uniquely identifying an item feat: add `additional_item_parameters` to `Item` for sending additional key-value pairs of item parameters feat: add `GOOGLE_ANALYTICS_PROPERTY` to `AccountType` enum for supporting Google Analytics as a destination feat: add `PROCESSING_ERROR_REASON_AWS_AUTH_FAILED` to `ProcessingErrorReason` enum feat: add `PROCESSING_WARNING_REASON_AWS_AUTH_FAILED` to `ProcessingWarningReason` enum feat: add new error codes `UNSUPPORTED_OPERATING_ACCOUNT_FOR_DATA_PARTNER`, `UNSUPPORTED_LINKED_ACCOUNT_FOR_DATA_PARTNER`, `INVALID_PROPERTY_TYPE`, `INVALID_STREAM_TYPE`, `LINKED_ACCOUNT_ONLY_ALLOWED_WITH_DATA_PARTNER_LOGIN_ACCOUNT`, `OPERATING_ACCOUNT_LOGIN_ACCOUNT_MISMATCH`, `EVENT_TIME_INVALID`, `RESERVED_NAME_USED`, `INVALID_EVENT_NAME`, `NOT_ALLOWLISTED`, `MULTIPLE_DESTINATIONS_FOR_GOOGLE_ANALYTICS_EVENT`, `FIELD_VALUE_TOO_LONG`, `TOO_MANY_ELEMENTS` to `ErrorReason` enum feat: add `event_name` to `Event` for specifying the name of the Google Analytics event feat: add `client_id` to `Event` for uniquely identifying a user instance of a web client for a Google Analytics web stream feat: add `user_id` to `Event` for uniquely identifying a user as defined by the advertiser for Google Analytics events feat: add `additional_event_parameters` to `Event` for sending additional key-value pairs of event parameters for Google Analytics events PiperOrigin-RevId: 828683664
1 parent 3a77bd6 commit e030b93

File tree

9 files changed

+176
-0
lines changed

9 files changed

+176
-0
lines changed

google/ads/datamanager/v1/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ proto_library(
3434
"event.proto",
3535
"experimental_field.proto",
3636
"ingestion_service.proto",
37+
"item_parameter.proto",
3738
"match_rate.proto",
3839
"processing_errors.proto",
3940
"request_status_per_destination.proto",
@@ -337,6 +338,7 @@ load(
337338

338339
csharp_proto_library(
339340
name = "datamanager_csharp_proto",
341+
extra_opts = [],
340342
deps = [":datamanager_proto"],
341343
)
342344

google/ads/datamanager/v1/cart_data.proto

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ syntax = "proto3";
1616

1717
package google.ads.datamanager.v1;
1818

19+
import "google/ads/datamanager/v1/item_parameter.proto";
1920
import "google/api/field_behavior.proto";
2021

2122
option csharp_namespace = "Google.Ads.DataManager.V1";
@@ -58,4 +59,14 @@ message Item {
5859
// Optional. The unit price excluding tax, shipping, and any transaction level
5960
// discounts.
6061
double unit_price = 3 [(google.api.field_behavior) = OPTIONAL];
62+
63+
// Optional. A unique identifier to reference the item.
64+
string item_id = 4 [(google.api.field_behavior) = OPTIONAL];
65+
66+
// Optional. A bucket of any [event parameters related to an
67+
// item](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events)
68+
// to be included within the event that were not already specified using other
69+
// structured fields.
70+
repeated ItemParameter additional_item_parameters = 5
71+
[(google.api.field_behavior) = OPTIONAL];
6172
}

google/ads/datamanager/v1/destination.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ message ProductAccount {
8080

8181
// Data Partner.
8282
DATA_PARTNER = 4;
83+
84+
// Google Analytics.
85+
GOOGLE_ANALYTICS_PROPERTY = 5;
8386
}
8487

8588
// Deprecated. Use

google/ads/datamanager/v1/encryption_info.proto

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ message EncryptionInfo {
3333
oneof wrapped_key {
3434
// Google Cloud Platform wrapped key information.
3535
GcpWrappedKeyInfo gcp_wrapped_key_info = 1;
36+
37+
// Amazon Web Services wrapped key information.
38+
AwsWrappedKeyInfo aws_wrapped_key_info = 2;
3639
}
3740
}
3841

@@ -65,3 +68,30 @@ message GcpWrappedKeyInfo {
6568
// Required. The base64 encoded encrypted data encryption key.
6669
string encrypted_dek = 4 [(google.api.field_behavior) = REQUIRED];
6770
}
71+
72+
// A data encryption key wrapped by an AWS KMS key.
73+
message AwsWrappedKeyInfo {
74+
// The type of algorithm used to encrypt the data.
75+
enum KeyType {
76+
// Unspecified key type. Should never be used.
77+
KEY_TYPE_UNSPECIFIED = 0;
78+
79+
// Algorithm XChaCha20-Poly1305
80+
XCHACHA20_POLY1305 = 1;
81+
}
82+
83+
// Required. The type of algorithm used to encrypt the data.
84+
KeyType key_type = 1 [(google.api.field_behavior) = REQUIRED];
85+
86+
// Required. The Amazon Resource Name of the IAM Role to assume for KMS
87+
// decryption access. Should be in the format of
88+
// "arn:{partition}:iam::{account_id}:role/{role_name}"
89+
string role_arn = 2 [(google.api.field_behavior) = REQUIRED];
90+
91+
// Required. The URI of the AWS KMS key used to decrypt the DEK. Should be in
92+
// the format of "arn:{partition}:kms:{region}:{account_id}:key/{key_id}"
93+
string kek_uri = 3 [(google.api.field_behavior) = REQUIRED];
94+
95+
// Required. The base64 encoded encrypted data encryption key.
96+
string encrypted_dek = 4 [(google.api.field_behavior) = REQUIRED];
97+
}

google/ads/datamanager/v1/error.proto

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,52 @@ enum ErrorReason {
140140
// Two or more destinations in the request have the same reference.
141141
DUPLICATE_DESTINATION_REFERENCE = 36;
142142

143+
// Unsupported operating account for data partner authorization.
144+
UNSUPPORTED_OPERATING_ACCOUNT_FOR_DATA_PARTNER = 37;
145+
146+
// Unsupported linked account for data partner authorization.
147+
UNSUPPORTED_LINKED_ACCOUNT_FOR_DATA_PARTNER = 38;
148+
143149
// Events data contains no user identifiers or ad identifiers.
144150
NO_IDENTIFIERS_PROVIDED = 39;
145151

152+
// The property type is not supported.
153+
INVALID_PROPERTY_TYPE = 40;
154+
155+
// The stream type is not supported.
156+
INVALID_STREAM_TYPE = 41;
157+
158+
// Linked account is only supported when the login account is a `DATA_PARTNER`
159+
// account.
160+
LINKED_ACCOUNT_ONLY_ALLOWED_WITH_DATA_PARTNER_LOGIN_ACCOUNT = 42;
161+
162+
// The login account must be the same as the operating account for the given
163+
// use case.
164+
OPERATING_ACCOUNT_LOGIN_ACCOUNT_MISMATCH = 43;
165+
166+
// Event did not occur within the acceptable time window.
167+
EVENT_TIME_INVALID = 44;
168+
169+
// Parameter uses a reserved name.
170+
RESERVED_NAME_USED = 45;
171+
172+
// The event name is not supported.
173+
INVALID_EVENT_NAME = 46;
174+
175+
// The account is not allowlisted for the given feature.
176+
NOT_ALLOWLISTED = 47;
177+
146178
// The request ID used to retrieve the status of a request is not valid.
147179
// Status can only be retrieved for requests that succeed and don't have
148180
// `validate_only=true`.
149181
INVALID_REQUEST_ID = 48;
182+
183+
// An event had 2 or more Google Analytics destinations.
184+
MULTIPLE_DESTINATIONS_FOR_GOOGLE_ANALYTICS_EVENT = 49;
185+
186+
// The field value is too long.
187+
FIELD_VALUE_TOO_LONG = 50;
188+
189+
// Too many elements in a list in the request.
190+
TOO_MANY_ELEMENTS = 51;
150191
}

google/ads/datamanager/v1/event.proto

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,23 @@ message Event {
9898
// Optional. Advertiser-assessed information about the user at the time that
9999
// the event happened.
100100
UserProperties user_properties = 15 [(google.api.field_behavior) = OPTIONAL];
101+
102+
// Optional. The name of the event. Required for GA4 events.
103+
string event_name = 16 [(google.api.field_behavior) = OPTIONAL];
104+
105+
// Optional. A unique identifier for the user instance of a web client for
106+
// this GA4 web stream.
107+
string client_id = 17 [(google.api.field_behavior) = OPTIONAL];
108+
109+
// Optional. A unique identifier for a user, as defined by the advertiser.
110+
string user_id = 18 [(google.api.field_behavior) = OPTIONAL];
111+
112+
// Optional. A bucket of any [event
113+
// parameters](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events)
114+
// to be included within the event that were not already specified using other
115+
// structured fields.
116+
repeated EventParameter additional_event_parameters = 19
117+
[(google.api.field_behavior) = OPTIONAL];
101118
}
102119

103120
// Identifiers and other information used to match the conversion event with
@@ -141,6 +158,15 @@ message CustomVariable {
141158
[(google.api.field_behavior) = OPTIONAL];
142159
}
143160

161+
// Event parameter for GA4 events.
162+
message EventParameter {
163+
// Required. The name of the parameter to use.
164+
string parameter_name = 1 [(google.api.field_behavior) = REQUIRED];
165+
166+
// Required. The string representation of the value of the parameter to set.
167+
string value = 2 [(google.api.field_behavior) = REQUIRED];
168+
}
169+
144170
// The source of the event.
145171
enum EventSource {
146172
// Unspecified EventSource. Should never be used.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Copyright 2025 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+
syntax = "proto3";
16+
17+
package google.ads.datamanager.v1;
18+
19+
import "google/api/field_behavior.proto";
20+
21+
option csharp_namespace = "Google.Ads.DataManager.V1";
22+
option go_package = "google.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager";
23+
option java_multiple_files = true;
24+
option java_outer_classname = "ItemParameterProto";
25+
option java_package = "com.google.ads.datamanager.v1";
26+
option php_namespace = "Google\\Ads\\DataManager\\V1";
27+
option ruby_package = "Google::Ads::DataManager::V1";
28+
29+
// A bucket of any [event parameters related to an
30+
// item](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events)
31+
// to be included within the event that were not already specified using other
32+
// structured fields.
33+
message ItemParameter {
34+
// Required. The name of the parameter to use.
35+
string parameter_name = 1 [(google.api.field_behavior) = REQUIRED];
36+
37+
// Required. The string representation of the value of the parameter to set.
38+
string value = 2 [(google.api.field_behavior) = REQUIRED];
39+
}

google/ads/datamanager/v1/processing_errors.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ enum ProcessingErrorReason {
139139
// The system did not have the permissions needed to access the KEK.
140140
PROCESSING_ERROR_REASON_KEK_PERMISSION_DENIED = 24;
141141

142+
// The system failed to authenticate with AWS.
143+
PROCESSING_ERROR_REASON_AWS_AUTH_FAILED = 27;
144+
142145
// Failed to decrypt the
143146
// [UserIdentifier][google.ads.datamanager.v1.UserIdentifier] data using the
144147
// DEK.
@@ -181,4 +184,7 @@ enum ProcessingWarningReason {
181184

182185
// Internal error.
183186
PROCESSING_WARNING_REASON_INTERNAL_ERROR = 8;
187+
188+
// The system failed to authenticate with AWS.
189+
PROCESSING_WARNING_REASON_AWS_AUTH_FAILED = 9;
184190
}

google/ads/datamanager/v1/user_properties.proto

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,24 @@ message UserProperties {
3636
// Optional. The advertiser-assessed value of the customer.
3737
CustomerValueBucket customer_value_bucket = 2
3838
[(google.api.field_behavior) = OPTIONAL];
39+
40+
// Optional. A bucket of any additional [user
41+
// properties](https://developers.google.com/analytics/devguides/collection/protocol/ga4/user-properties)
42+
// for the user associated with this event.
43+
repeated UserProperty additional_user_properties = 3
44+
[(google.api.field_behavior) = OPTIONAL];
45+
}
46+
47+
// A bucket of any additional [user
48+
// properties](https://developers.google.com/analytics/devguides/collection/protocol/ga4/user-properties)
49+
// for the user associated with this event.
50+
message UserProperty {
51+
// Required. The name of the user property to use.
52+
string property_name = 1 [(google.api.field_behavior) = REQUIRED];
53+
54+
// Required. The string representation of the value of the user property to
55+
// use.
56+
string value = 2 [(google.api.field_behavior) = REQUIRED];
3957
}
4058

4159
// Type of the customer associated with the event.

0 commit comments

Comments
 (0)