Skip to content

Commit 1e6955c

Browse files
Google APIscopybara-github
authored andcommitted
feat: add UserListService for creating and managing user lists
feat: add `UserListDirectLicenseService` for creating and managing direct user list licenses feat: add `UserListGlobalLicenseService` for creating and managing global user list licenses feat: add `MarketingDataInsightsService` for retrieving marketing data insights for a given user list feat: add `PartnerLinkService` for creating and managing links between advertiser and data partner accounts feat: add `UserList` resource feat: add `UserListDirectLicense` resource feat: add `UserListGlobalLicense` resource feat: add `UserListGlobalLicenseCustomerInfo` resource feat: add `PartnerLink` resource feat: add `UserIdData` to `AudienceMember` to support User ID in audience member ingestion feat: add `PpidData` to `AudienceMember` to support Publisher Provided ID (PPID) in audience member ingestion feat: add `IngestUserIdDataStatus` to `IngestAudienceMembersStatus` to report the status of user ID data ingestion feat: add `IngestPpidDataStatus` to `IngestAudienceMembersStatus` to report the status of PPID data ingestion feat: add `RemoveUserIdDataStatus` to `RemoveAudienceMembersStatus` to report the status of user ID data removal feat: add `RemovePpidDataStatus` to `RemoveAudienceMembersStatus` to report the status of PPID data removal feat: add `GOOGLE_AD_MANAGER_AUDIENCE_LINK` to the `AccountType` enum feat: add `AgeRange` and `Gender` enums to support demographic breakdown in marketing insights feat: add new `ErrorReason` values for licensing, user list operations, and permission checks fix!: changed `conversion_value` field to be optional in message `Event` docs: add comments to resources and methods to clarify which are available only to data partners docs: a comment for enum `ErrorReason` is changed to clarify that it is subject to future additions docs: a comment for field `pair_data` in message `AudienceMember` is changed to clarify it is only available to data partners docs: a comment for message `PairData` is changed to clarify it is only available to data partners PiperOrigin-RevId: 873059573
1 parent ce8678a commit 1e6955c

22 files changed

+2457
-1
lines changed

google/ads/datamanager/v1/BUILD.bazel

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ load("@rules_proto//proto:defs.bzl", "proto_library")
2424
proto_library(
2525
name = "datamanager_proto",
2626
srcs = [
27+
"age_range.proto",
2728
"audience.proto",
2829
"cart_data.proto",
2930
"consent.proto",
@@ -33,19 +34,37 @@ proto_library(
3334
"error.proto",
3435
"event.proto",
3536
"experimental_field.proto",
37+
"gender.proto",
3638
"ingestion_service.proto",
39+
"insights_service.proto",
3740
"item_parameter.proto",
3841
"match_rate.proto",
42+
"partner_link_service.proto",
3943
"processing_errors.proto",
4044
"request_status_per_destination.proto",
4145
"terms_of_service.proto",
4246
"user_data.proto",
47+
"user_list.proto",
48+
"user_list_direct_license.proto",
49+
"user_list_direct_license_service.proto",
50+
"user_list_global_license.proto",
51+
"user_list_global_license_service.proto",
52+
"user_list_global_license_type.proto",
53+
"user_list_license_client_account_type.proto",
54+
"user_list_license_metrics.proto",
55+
"user_list_license_pricing.proto",
56+
"user_list_license_status.proto",
57+
"user_list_service.proto",
4358
"user_properties.proto",
4459
],
4560
deps = [
4661
"//google/api:annotations_proto",
4762
"//google/api:client_proto",
4863
"//google/api:field_behavior_proto",
64+
"//google/api:resource_proto",
65+
"@com_google_protobuf//:duration_proto",
66+
"@com_google_protobuf//:empty_proto",
67+
"@com_google_protobuf//:field_mask_proto",
4968
"@com_google_protobuf//:timestamp_proto",
5069
],
5170
)
@@ -104,6 +123,16 @@ java_gapic_test(
104123
test_classes = [
105124
"com.google.ads.datamanager.v1.IngestionServiceClientHttpJsonTest",
106125
"com.google.ads.datamanager.v1.IngestionServiceClientTest",
126+
"com.google.ads.datamanager.v1.MarketingDataInsightsServiceClientHttpJsonTest",
127+
"com.google.ads.datamanager.v1.MarketingDataInsightsServiceClientTest",
128+
"com.google.ads.datamanager.v1.PartnerLinkServiceClientHttpJsonTest",
129+
"com.google.ads.datamanager.v1.PartnerLinkServiceClientTest",
130+
"com.google.ads.datamanager.v1.UserListDirectLicenseServiceClientHttpJsonTest",
131+
"com.google.ads.datamanager.v1.UserListDirectLicenseServiceClientTest",
132+
"com.google.ads.datamanager.v1.UserListGlobalLicenseServiceClientHttpJsonTest",
133+
"com.google.ads.datamanager.v1.UserListGlobalLicenseServiceClientTest",
134+
"com.google.ads.datamanager.v1.UserListServiceClientHttpJsonTest",
135+
"com.google.ads.datamanager.v1.UserListServiceClientTest",
107136
],
108137
runtime_deps = [":datamanager_java_gapic_test"],
109138
)
@@ -153,6 +182,7 @@ go_gapic_library(
153182
transport = "grpc+rest",
154183
deps = [
155184
":datamanager_go_proto",
185+
"@io_bazel_rules_go//proto/wkt:duration_go_proto",
156186
],
157187
)
158188

@@ -338,6 +368,7 @@ load(
338368

339369
csharp_proto_library(
340370
name = "datamanager_csharp_proto",
371+
extra_opts = [],
341372
deps = [":datamanager_proto"],
342373
)
343374

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Copyright 2026 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+
option csharp_namespace = "Google.Ads.DataManager.V1";
20+
option go_package = "cloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb";
21+
option java_multiple_files = true;
22+
option java_outer_classname = "AgeRangeProto";
23+
option java_package = "com.google.ads.datamanager.v1";
24+
option php_namespace = "Google\\Ads\\DataManager\\V1";
25+
option ruby_package = "Google::Ads::DataManager::V1";
26+
27+
// The demographic age ranges
28+
enum AgeRange {
29+
// Not specified.
30+
AGE_RANGE_UNSPECIFIED = 0;
31+
32+
// Unknown.
33+
AGE_RANGE_UNKNOWN = 1;
34+
35+
// Between 18 and 24 years old.
36+
AGE_RANGE_18_24 = 2;
37+
38+
// Between 25 and 34 years old.
39+
AGE_RANGE_25_34 = 3;
40+
41+
// Between 35 and 44 years old.
42+
AGE_RANGE_35_44 = 4;
43+
44+
// Between 45 and 54 years old.
45+
AGE_RANGE_45_54 = 5;
46+
47+
// Between 55 and 64 years old.
48+
AGE_RANGE_55_64 = 6;
49+
50+
// 65 years old and beyond.
51+
AGE_RANGE_65_UP = 7;
52+
}

google/ads/datamanager/v1/audience.proto

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,21 @@ message AudienceMember {
4343

4444
// [Publisher Advertiser Identity Reconciliation (PAIR)
4545
// IDs](//support.google.com/admanager/answer/15067908).
46+
//
47+
// This feature is only available to data partners.
4648
PairData pair_data = 4;
4749

4850
// Data identifying the user's mobile devices.
4951
MobileData mobile_data = 5;
52+
53+
// Data related to unique identifiers for a user, as defined by the
54+
// advertiser.
55+
UserIdData user_id_data = 6;
56+
57+
// Data related to publisher provided identifiers.
58+
//
59+
// This feature is only available to data partners.
60+
PpidData ppid_data = 7;
5061
}
5162

5263
// Optional. The consent setting for the user.
@@ -55,6 +66,8 @@ message AudienceMember {
5566

5667
// [PAIR](//support.google.com/admanager/answer/15067908) IDs for the audience.
5768
// At least one PAIR ID is required.
69+
//
70+
// This feature is only available to data partners.
5871
message PairData {
5972
// Required. Cleanroom-provided PII data, hashed with SHA256, and encrypted
6073
// with an EC commutative cipher using publisher key for the
@@ -71,3 +84,19 @@ message MobileData {
7184
// [AudienceMember][google.ads.datamanager.v1.AudienceMember].
7285
repeated string mobile_ids = 1 [(google.api.field_behavior) = REQUIRED];
7386
}
87+
88+
// User id data holding the user id.
89+
message UserIdData {
90+
// Required. A unique identifier for a user, as defined by the
91+
// advertiser.
92+
string user_id = 1 [(google.api.field_behavior) = REQUIRED];
93+
}
94+
95+
// Publisher provided identifiers data holding the ppids. At least one ppid is
96+
// required.
97+
//
98+
// This feature is only available to data partners.
99+
message PpidData {
100+
// Required. The list of publisher provided identifiers for a user.
101+
repeated string ppids = 1 [(google.api.field_behavior) = REQUIRED];
102+
}

google/ads/datamanager/v1/datamanager_v1.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ title: Data Manager API
55

66
apis:
77
- name: google.ads.datamanager.v1.IngestionService
8+
- name: google.ads.datamanager.v1.MarketingDataInsightsService
9+
- name: google.ads.datamanager.v1.PartnerLinkService
10+
- name: google.ads.datamanager.v1.UserListDirectLicenseService
11+
- name: google.ads.datamanager.v1.UserListGlobalLicenseService
12+
- name: google.ads.datamanager.v1.UserListService
813

914
enums:
1015
- name: google.ads.datamanager.v1.ErrorReason
@@ -20,6 +25,26 @@ authentication:
2025
oauth:
2126
canonical_scopes: |-
2227
https://www.googleapis.com/auth/datamanager
28+
- selector: google.ads.datamanager.v1.MarketingDataInsightsService.RetrieveInsights
29+
oauth:
30+
canonical_scopes: |-
31+
https://www.googleapis.com/auth/datamanager
32+
- selector: 'google.ads.datamanager.v1.PartnerLinkService.*'
33+
oauth:
34+
canonical_scopes: |-
35+
https://www.googleapis.com/auth/datamanager
36+
- selector: 'google.ads.datamanager.v1.UserListDirectLicenseService.*'
37+
oauth:
38+
canonical_scopes: |-
39+
https://www.googleapis.com/auth/datamanager
40+
- selector: 'google.ads.datamanager.v1.UserListGlobalLicenseService.*'
41+
oauth:
42+
canonical_scopes: |-
43+
https://www.googleapis.com/auth/datamanager
44+
- selector: 'google.ads.datamanager.v1.UserListService.*'
45+
oauth:
46+
canonical_scopes: |-
47+
https://www.googleapis.com/auth/datamanager
2348
2449
publishing:
2550
new_issue_uri: https://issuetracker.google.com/issues/new?component=1812065

google/ads/datamanager/v1/destination.proto

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ syntax = "proto3";
1717
package google.ads.datamanager.v1;
1818

1919
import "google/api/field_behavior.proto";
20+
import "google/api/resource.proto";
2021

2122
option csharp_namespace = "Google.Ads.DataManager.V1";
2223
option go_package = "cloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb";
@@ -25,6 +26,10 @@ option java_outer_classname = "DestinationProto";
2526
option java_package = "com.google.ads.datamanager.v1";
2627
option php_namespace = "Google\\Ads\\DataManager\\V1";
2728
option ruby_package = "Google::Ads::DataManager::V1";
29+
option (google.api.resource_definition) = {
30+
type: "datamanager.googleapis.com/Account"
31+
pattern: "accountTypes/{account_type}/accounts/{account}"
32+
};
2833

2934
// The Google product you're sending data to. For example, a Google
3035
// Ads account.
@@ -83,6 +88,9 @@ message ProductAccount {
8388

8489
// Google Analytics.
8590
GOOGLE_ANALYTICS_PROPERTY = 5;
91+
92+
// Google Ad Manager audience link.
93+
GOOGLE_AD_MANAGER_AUDIENCE_LINK = 6;
8694
}
8795

8896
// Deprecated. Use

0 commit comments

Comments
 (0)