Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions librarian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ version: v0.32.0
repo: googleapis/google-cloud-node
sources:
googleapis:
commit: 62da249e76b878fa8d667a0d7bfa4dc33d790cb8
sha256: abd8967d4827cb1c849ee49cf9f22c3acb0a498018684361fa690b2922c781b3
commit: fc62df08979faf46d3c4d7eec30c57e6046a29f1
sha256: c80127b908fe6dad563e81f3118e2b601f27e32011ad49a10eb89282a42f3c69
tools:
pnpm:
- name: gapic-generator-typescript
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ message AdEvent {
// found.
UserData user_data = 7 [(google.api.field_behavior) = OPTIONAL];

// Optional. Information gathered about the device being used when the ad
// Required. Information gathered about the device being used when the ad
// event happened.
DeviceInfo device_info = 8 [(google.api.field_behavior) = OPTIONAL];
DeviceInfo device_info = 8 [(google.api.field_behavior) = REQUIRED];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that going to cause a breaking change?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this does look breaking to me. Technically I don't think ads has the same restrictions as cloud for breaking changes, but it doesn't mean we shouldn't specify it.

Let me bring it up with the Librarian team next week.


// Optional. The device ID of the device that the ad was served to.
string mobile_device_id = 9 [(google.api.field_behavior) = OPTIONAL];
Expand Down Expand Up @@ -162,8 +162,8 @@ message AdEvent {
// Optional. The width of the ad in pixels.
int32 ad_width = 21 [(google.api.field_behavior) = OPTIONAL];

// Required. The ISO 3166-2 country plus subdivision.
string region_code = 22 [(google.api.field_behavior) = REQUIRED];
// Optional. The ISO 3166-2 country plus subdivision.
string region_code = 22 [(google.api.field_behavior) = OPTIONAL];

// Required. The platform source of the ad, akin to the Google Analytics
// source.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ message AudienceMember {

// Group of multiple identifier types.
CompositeData composite_data = 8;

// Encrypted Google User IDs.
GoogleUserIdData google_user_id_data = 9;

// Partner-provided identifiers.
PartnerProvidedIdData partner_provided_id_data = 10;
}

// Optional. The consent setting for the user.
Expand All @@ -84,8 +90,10 @@ message PairData {

// Mobile IDs for the audience. At least one mobile ID is required.
message MobileData {
// Required. The list of mobile device IDs (advertising ID/IDFA). At most 10
// `mobileIds` can be provided in a single
// Required. The list of mobile device IDs (Android advertising ID, iOS IDFA
// for Customer Match user lists and Android advertising ID, iOS IDFA,
// Xbox or Microsoft ID, Amazon Fire TV ID, Roku ID, Generic Device ID for
// basic user lists). At most 10 `mobileIds` can be provided in a single
// [AudienceMember][google.ads.datamanager.v1.AudienceMember].
repeated string mobile_ids = 1 [(google.api.field_behavior) = REQUIRED];
}
Expand Down Expand Up @@ -137,3 +145,18 @@ message IpData {
google.protobuf.Timestamp observe_end_time = 3
[(google.api.field_behavior) = OPTIONAL];
}

// Google user id data holding encrypted google user IDs. At least one google
// user ID is required.
message GoogleUserIdData {
// Required. The list of encrypted google user IDs.
repeated string google_user_ids = 1 [(google.api.field_behavior) = REQUIRED];
}

// Partner-provided data holding the partner-provided identifiers. At least one
// partner-provided identifier is required.
message PartnerProvidedIdData {
// Required. The list of partner-provided identifiers.
repeated string partner_provided_ids = 1
[(google.api.field_behavior) = REQUIRED];
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ message DeviceInfo {
// Optional. The user-agent string of the device for the given context.
string user_agent = 1 [(google.api.field_behavior) = OPTIONAL];

// Optional. The IP address of the device for the given context.
// Optional. The IP address of the device for the given context. Required when
// used in an [AdEvent][google.ads.datamanager.v1.AdEvent].
//
// **Note:** Google Ads does not support IP address matching for end users in
// the European Economic Area (EEA), United Kingdom (UK), or Switzerland (CH).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,4 +416,12 @@ enum ErrorReason {

// Insights missing for this dimension.
INSIGHTS_MISSING_FOR_DIMENSION = 123;

// A required prerequisite link (such as a Google Ads link) must exist for
// the Google Analytics property to perform this operation.
REQUIRED_PREREQUISITE_LINK_MISSING = 124;

// The remove as of time must be in the past or present. Future timestamps are
// not permitted for removing audience members.
INVALID_REMOVE_AS_OF_TIME = 125;
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ import "google/ads/datamanager/v1/consent.proto";
import "google/ads/datamanager/v1/destination.proto";
import "google/ads/datamanager/v1/encryption_info.proto";
import "google/ads/datamanager/v1/event.proto";
import "google/ads/datamanager/v1/processing_errors.proto";
import "google/ads/datamanager/v1/request_status_per_destination.proto";
import "google/ads/datamanager/v1/terms_of_service.proto";
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "Google.Ads.DataManager.V1";
option go_package = "cloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb";
Expand Down Expand Up @@ -64,6 +66,15 @@ service IngestionService {
};
}

// Removes all audience members from the provided destinations.
rpc RemoveAllAudienceMembers(RemoveAllAudienceMembersRequest)
returns (RemoveAllAudienceMembersResponse) {
option (google.api.http) = {
post: "/v1/audienceMembers:removeAll"
body: "*"
};
}

// Uploads a list of
// [Event][google.ads.datamanager.v1.Event] resources from
// the provided [Destination][google.ads.datamanager.v1.Destination].
Expand Down Expand Up @@ -141,6 +152,9 @@ message IngestAudienceMembersRequest {
message IngestAudienceMembersResponse {
// The auto-generated ID of the request.
string request_id = 1;

// Detailed row-level warnings with field paths.
repeated FieldWarning field_warnings = 2;
}

// Request to remove users from an audience in the provided destinations.
Expand Down Expand Up @@ -179,6 +193,32 @@ message RemoveAudienceMembersResponse {
string request_id = 1;
}

// Request to remove all users from an audience in the provided destinations.
// Returns a
// [RemoveAllAudienceMembersResponse][google.ads.datamanager.v1.RemoveAllAudienceMembersResponse].
message RemoveAllAudienceMembersRequest {
// Required. The list of destinations to remove the users from.
repeated Destination destinations = 1
[(google.api.field_behavior) = REQUIRED];

// Optional. The remove as of time. If set, only audience members last added
// before this time will be removed. If not set, it defaults to current time.
// The remove as of time must not be in the future.
google.protobuf.Timestamp remove_as_of_time = 2
[(google.api.field_behavior) = OPTIONAL];

// Optional. For testing purposes. If `true`, the request is validated but not
// executed. Only errors are returned, not results.
bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
}

// Response from the
// [RemoveAllAudienceMembersRequest][google.ads.datamanager.v1.RemoveAllAudienceMembersRequest].
message RemoveAllAudienceMembersResponse {
// The auto-generated ID of the request.
string request_id = 1;
}

// Request to upload audience members to the provided destinations. Returns an
// [IngestEventsResponse][google.ads.datamanager.v1.IngestEventsResponse].
message IngestEventsRequest {
Expand Down Expand Up @@ -221,19 +261,23 @@ message IngestEventsRequest {
message IngestEventsResponse {
// The auto-generated ID of the request.
string request_id = 1;

// Detailed row-level warnings with field paths.
repeated FieldWarning field_warnings = 2;
}

// Request to upload ad events.
message IngestAdEventsRequest {
// Required. Required (at least 1). A list of ad events.
repeated AdEvent ad_events = 1 [(google.api.field_behavior) = REQUIRED];

// Optional. Information about encryption keys which are used to encrypt the
// Required. Information about encryption keys which are used to encrypt the
// data.
EncryptionInfo encryption_info = 2 [(google.api.field_behavior) = OPTIONAL];
EncryptionInfo encryption_info = 2 [(google.api.field_behavior) = REQUIRED];

// Optional. If true, the request is validated, but not executed.
bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
bool validate_only = 3
[deprecated = true, (google.api.field_behavior) = OPTIONAL];
}

// Response from an ad event ingestion operation.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ message SearchPartnerLinksRequest {

// The maximum number of partner links to return. The service may return
// fewer than this value.
// If unspecified, at most 10 partner links will be returned.
// If unspecified, at most 50 partner links will be returned.
// The maximum value is 100; values above 100 will be coerced to 100.
int32 page_size = 2;

Expand Down Expand Up @@ -176,6 +176,13 @@ message SearchPartnerLinksRequest {
// - `owning_account.account_id`
// - `partner_account.account_type`
// - `partner_account.account_id`
// - `feature_set`
//
// For partner links with the
// [FEATURE_SET_AD_EVENT_MANAGEMENT][google.ads.datamanager.v1.FeatureSet.FEATURE_SET_AD_EVENT_MANAGEMENT]
// feature set, the following fields are also supported:
//
// - `partner_customer_account.account_id`
//
// Example:
// `owning_account.account_type = "GOOGLE_ADS" AND partner_account.account_id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,10 @@ enum ProcessingErrorReason {

// A corresponding click can't be found that matches the provided attributes.
PROCESSING_ERROR_REASON_CLICK_NOT_FOUND = 43;

// External attribution data is missing. Sending events to a destination for
// an external attribution conversion action isn't supported.
PROCESSING_ERROR_REASON_EXTERNAL_ATTRIBUTION_DATA_MISSING = 44;
}

// The processing warning reason.
Expand Down Expand Up @@ -241,3 +245,87 @@ enum ProcessingWarningReason {
// The system failed to authenticate with AWS.
PROCESSING_WARNING_REASON_AWS_AUTH_FAILED = 9;
}

// Detailed row-level warning with field paths.
message FieldWarning {
// The warning reason.
WarningReason reason = 1;

// The detailed warning message describing the issue.
string description = 2;

// The field path that triggered the warning. Uses the same format as
// [google.rpc.BadRequest.FieldViolation.field][google.rpc.BadRequest.FieldViolation.field].
string field = 3;
}

// Reasons for non-blocking warnings returned during ingestion.
enum WarningReason {
// Unspecified warning reason.
WARNING_REASON_UNSPECIFIED = 0;

// A custom variable in
// [`custom_variables`][google.ads.datamanager.v1.Event.custom_variables] is
// not enabled in the account.
WARNING_REASON_CUSTOM_VARIABLE_NOT_ENABLED = 1;

// A custom variable value in
// [`custom_variables`][google.ads.datamanager.v1.Event.custom_variables] is
// not among the predefined allowed values configured for the custom variable
// on the destination account.
WARNING_REASON_CUSTOM_VARIABLE_NOT_PREDEFINED = 2;

// The [`cart_data`][google.ads.datamanager.v1.Event.cart_data] is not
// supported with [`gbraid`][google.ads.datamanager.v1.AdIdentifiers.gbraid]
// or [`wbraid`][google.ads.datamanager.v1.AdIdentifiers.wbraid].
WARNING_REASON_CART_DATA_NOT_SUPPORTED_WITH_GBRAID_OR_WBRAID = 3;

// The
// [`merchant_product_id`][google.ads.datamanager.v1.Item.merchant_product_id]
// is missing in the cart item.
WARNING_REASON_CART_DATA_ITEM_MERCHANT_PRODUCT_ID_MISSING = 4;

// The [`unit_price`][google.ads.datamanager.v1.Item.unit_price] is missing in
// the cart item.
WARNING_REASON_CART_DATA_ITEM_UNIT_PRICE_MISSING = 5;

// Generic warning reason for issues that do not fit into other specific
// categories.
WARNING_REASON_GENERIC = 6;

// The [`client_id`][google.ads.datamanager.v1.Event.client_id] is invalid.
WARNING_REASON_INVALID_CLIENT_ID = 7;

// The
// [`subdivision_code`][google.ads.datamanager.v1.EventLocation.subdivision_code]
// is invalid.
WARNING_REASON_INVALID_SUBDIVISION_CODE = 8;

// The [`region_code`][google.ads.datamanager.v1.EventLocation.region_code]
// is invalid.
WARNING_REASON_INVALID_REGION_CODE = 9;

// The
// [`subcontinent_code`][google.ads.datamanager.v1.EventLocation.subcontinent_code]
// is invalid.
WARNING_REASON_INVALID_SUBCONTINENT_CODE = 10;

// The
// [`continent_code`][google.ads.datamanager.v1.EventLocation.continent_code]
// is invalid.
WARNING_REASON_INVALID_CONTINENT_CODE = 11;

// The device [`category`][google.ads.datamanager.v1.DeviceInfo.category]
// is invalid.
WARNING_REASON_INVALID_DEVICE_CATEGORY = 12;

// The device
// [`screen_height`][google.ads.datamanager.v1.DeviceInfo.screen_height] or
// [`screen_width`][google.ads.datamanager.v1.DeviceInfo.screen_width] is
// invalid.
WARNING_REASON_INVALID_DEVICE_SCREEN_RESOLUTION = 13;

// The [`merchant_id`][google.ads.datamanager.v1.CartData.merchant_id] is
// invalid.
WARNING_REASON_INVALID_MERCHANT_ID = 14;
}
Loading
Loading