123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- // Copyright 2022 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.ads.googleads.v11.common;
- import "google/ads/googleads/v11/enums/user_identifier_source.proto";
- import "google/api/field_behavior.proto";
- option csharp_namespace = "Google.Ads.GoogleAds.V11.Common";
- option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/common;common";
- option java_multiple_files = true;
- option java_outer_classname = "OfflineUserDataProto";
- option java_package = "com.google.ads.googleads.v11.common";
- option objc_class_prefix = "GAA";
- option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Common";
- option ruby_package = "Google::Ads::GoogleAds::V11::Common";
- // Proto file describing offline user data.
- // Address identifier of offline data.
- message OfflineUserAddressInfo {
- // First name of the user, which is hashed as SHA-256 after normalized
- // (Lowercase all characters; Remove any extra spaces before, after, and in
- // between).
- optional string hashed_first_name = 7;
- // Last name of the user, which is hashed as SHA-256 after normalized (lower
- // case only and no punctuation).
- optional string hashed_last_name = 8;
- // City of the address. Only accepted for Store Sales and
- // ConversionAdjustmentUploadService.
- optional string city = 9;
- // State code of the address. Only accepted for Store Sales and
- // ConversionAdjustmentUploadService.
- optional string state = 10;
- // 2-letter country code in ISO-3166-1 alpha-2 of the user's address.
- optional string country_code = 11;
- // Postal code of the user's address.
- optional string postal_code = 12;
- // The street address of the user hashed using SHA-256 hash function after
- // normalization (lower case only). Only accepted for
- // ConversionAdjustmentUploadService.
- optional string hashed_street_address = 13;
- }
- // User identifying information.
- message UserIdentifier {
- // Source of the user identifier when the upload is from Store Sales,
- // ConversionUploadService, or ConversionAdjustmentUploadService.
- google.ads.googleads.v11.enums.UserIdentifierSourceEnum.UserIdentifierSource user_identifier_source = 6;
- // Exactly one must be specified. For OfflineUserDataJobService, Customer
- // Match accepts hashed_email, hashed_phone_number, mobile_id,
- // third_party_user_id, and address_info; Store Sales accepts hashed_email,
- // hashed_phone_number, third_party_user_id, and address_info.
- // ConversionUploadService accepts hashed_email and hashed_phone_number.
- // ConversionAdjustmentUploadService accepts hashed_email,
- // hashed_phone_number, and address_info.
- oneof identifier {
- // Hashed email address using SHA-256 hash function after normalization.
- // Accepted for Customer Match, Store Sales, ConversionUploadService, and
- // ConversionAdjustmentUploadService.
- string hashed_email = 7;
- // Hashed phone number using SHA-256 hash function after normalization
- // (E164 standard). Accepted for Customer Match, Store Sales,
- // ConversionUploadService, and ConversionAdjustmentUploadService.
- string hashed_phone_number = 8;
- // Mobile device ID (advertising ID/IDFA). Accepted only for Customer Match.
- string mobile_id = 9;
- // Advertiser-assigned user ID for Customer Match upload, or
- // third-party-assigned user ID for Store Sales. Accepted only for Customer
- // Match and Store Sales.
- string third_party_user_id = 10;
- // Address information. Accepted only for Customer Match, Store Sales, and
- // ConversionAdjustmentUploadService.
- OfflineUserAddressInfo address_info = 5;
- }
- }
- // Attribute of the store sales transaction.
- message TransactionAttribute {
- // Timestamp when transaction occurred. Required.
- // The format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an
- // optional timezone offset from UTC. If the offset is absent, the API will
- // use the account's timezone as default.
- // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30+03:00"
- optional string transaction_date_time = 8;
- // Transaction amount in micros. Required.
- // Transaction amount in micros needs to be greater than 1000.
- // If item Attributes are provided, it represents the total value of the
- // items, after multiplying the unit price per item by the quantity provided
- // in the ItemAttributes.
- optional double transaction_amount_micros = 9;
- // Transaction currency code. ISO 4217 three-letter code is used. Required.
- optional string currency_code = 10;
- // The resource name of conversion action to report conversions to.
- // Required.
- optional string conversion_action = 11;
- // Transaction order id.
- // Accessible only to customers on the allow-list.
- optional string order_id = 12;
- // Store attributes of the transaction.
- // Accessible only to customers on the allow-list.
- StoreAttribute store_attribute = 6;
- // Value of the custom variable for each transaction.
- // Accessible only to customers on the allow-list.
- optional string custom_value = 13;
- // Item attributes of the transaction.
- ItemAttribute item_attribute = 14;
- }
- // Store attributes of the transaction.
- message StoreAttribute {
- // Store code from
- // https://support.google.com/business/answer/3370250#storecode
- optional string store_code = 2;
- }
- // Item attributes of the transaction.
- message ItemAttribute {
- // A unique identifier of a product. It can be either the Merchant Center Item
- // ID or GTIN (Global Trade Item Number).
- string item_id = 1;
- // ID of the Merchant Center Account.
- optional int64 merchant_id = 2;
- // Common Locale Data Repository (CLDR) territory code of the country
- // associated with the feed where your items are uploaded. See
- // https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes
- // for more information.
- string country_code = 3;
- // ISO 639-1 code of the language associated with the feed where your items
- // are uploaded
- string language_code = 4;
- // The number of items sold. Defaults to 1 if not set.
- int64 quantity = 5;
- }
- // User data holding user identifiers and attributes.
- message UserData {
- // User identification info. Required.
- repeated UserIdentifier user_identifiers = 1;
- // Additional transactions/attributes associated with the user.
- // Required when updating store sales data.
- TransactionAttribute transaction_attribute = 2;
- // Additional attributes associated with the user. Required when updating
- // customer match attributes. These have an expiration of 540 days.
- UserAttribute user_attribute = 3;
- }
- // User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job
- // type.
- message UserAttribute {
- // Advertiser defined lifetime value for the user.
- optional int64 lifetime_value_micros = 1;
- // Advertiser defined lifetime value bucket for the user. The valid range for
- // a lifetime value bucket is from 1 (low) to 10 (high), except for remove
- // operation where 0 will also be accepted.
- optional int32 lifetime_value_bucket = 2;
- // Timestamp of the last purchase made by the user.
- // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an
- // optional timezone offset from UTC. If the offset is absent, the API will
- // use the account's timezone as default.
- string last_purchase_date_time = 3;
- // Advertiser defined average number of purchases that are made by the user in
- // a 30 day period.
- int32 average_purchase_count = 4;
- // Advertiser defined average purchase value in micros for the user.
- int64 average_purchase_value_micros = 5;
- // Timestamp when the user was acquired.
- // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an
- // optional timezone offset from UTC. If the offset is absent, the API will
- // use the account's timezone as default.
- string acquisition_date_time = 6;
- // The shopping loyalty related data. Shopping utilizes this data to provide
- // users with a better experience. Accessible only to merchants on the
- // allow-list with the user's consent.
- optional ShoppingLoyalty shopping_loyalty = 7;
- // Optional. Advertiser defined lifecycle stage for the user. The accepted values are
- // “Lead”, “Active” and “Churned”.
- string lifecycle_stage = 8 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Timestamp of the first purchase made by the user.
- // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an
- // optional timezone offset from UTC. If the offset is absent, the API will
- // use the account's timezone as default.
- string first_purchase_date_time = 9 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Advertiser defined events and their attributes. All the values in the
- // nested fields are required. Currently this field is in beta.
- repeated EventAttribute event_attribute = 10 [(google.api.field_behavior) = OPTIONAL];
- }
- // Advertiser defined events and their attributes. All the values in the
- // nested fields are required.
- message EventAttribute {
- // Required. Advertiser defined event to be used for remarketing. The accepted values
- // are “Viewed”, “Cart”, “Purchased” and “Recommended”.
- string event = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. Timestamp at which the event happened.
- // The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an
- // optional timezone offset from UTC. If the offset is absent, the API will
- // use the account's timezone as default.
- string event_date_time = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. Item attributes of the event.
- repeated EventItemAttribute item_attribute = 3 [(google.api.field_behavior) = REQUIRED];
- }
- // Event Item attributes of the Customer Match.
- message EventItemAttribute {
- // Optional. A unique identifier of a product. It can be either the Merchant Center Item
- // ID or GTIN (Global Trade Item Number).
- string item_id = 1 [(google.api.field_behavior) = OPTIONAL];
- }
- // The shopping loyalty related data. Shopping utilizes this data to provide
- // users with a better experience.
- // Accessible only to merchants on the allow-list.
- message ShoppingLoyalty {
- // The membership tier. It is a free-form string as each merchant may have
- // their own loyalty system. For example, it could be a number from 1 to 10,
- // or a string such as "Golden" or "Silver", or even empty string "".
- optional string loyalty_tier = 1;
- }
- // Metadata for customer match user list.
- message CustomerMatchUserListMetadata {
- // The resource name of remarketing list to update data.
- // Required for job of CUSTOMER_MATCH_USER_LIST type.
- optional string user_list = 2;
- }
- // Metadata for Store Sales Direct.
- message StoreSalesMetadata {
- // This is the fraction of all transactions that are identifiable (for
- // example, associated with any form of customer information). Required. The
- // fraction needs to be between 0 and 1 (excluding 0).
- optional double loyalty_fraction = 5;
- // This is the ratio of sales being uploaded compared to the overall sales
- // that can be associated with a customer. Required.
- // The fraction needs to be between 0 and 1 (excluding 0). For example, if you
- // upload half the sales that you are able to associate with a customer, this
- // would be 0.5.
- optional double transaction_upload_fraction = 6;
- // Name of the store sales custom variable key. A predefined key that
- // can be applied to the transaction and then later used for custom
- // segmentation in reporting.
- // Accessible only to customers on the allow-list.
- optional string custom_key = 7;
- // Metadata for a third party Store Sales upload.
- StoreSalesThirdPartyMetadata third_party_metadata = 3;
- }
- // Metadata for a third party Store Sales.
- // This product is only for customers on the allow-list. Contact your
- // Google business development representative for details on the upload
- // configuration.
- message StoreSalesThirdPartyMetadata {
- // Time the advertiser uploaded the data to the partner. Required.
- // The format is "YYYY-MM-DD HH:MM:SS".
- // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
- optional string advertiser_upload_date_time = 7;
- // The fraction of transactions that are valid. Invalid transactions may
- // include invalid formats or values.
- // Required.
- // The fraction needs to be between 0 and 1 (excluding 0).
- optional double valid_transaction_fraction = 8;
- // The fraction of valid transactions that are matched to a third party
- // assigned user ID on the partner side.
- // Required.
- // The fraction needs to be between 0 and 1 (excluding 0).
- optional double partner_match_fraction = 9;
- // The fraction of valid transactions that are uploaded by the partner to
- // Google.
- // Required.
- // The fraction needs to be between 0 and 1 (excluding 0).
- optional double partner_upload_fraction = 10;
- // Version of partner IDs to be used for uploads. Required.
- optional string bridge_map_version_id = 11;
- // ID of the third party partner updating the transaction feed.
- optional int64 partner_id = 12;
- }
|