---
title: "POST /v23/customers/{customersId}/offlineUserDataJobs:create"
method: POST
path: "/v23/customers/{customersId}/offlineUserDataJobs:create"
tags: ["customers"]
---

# POST /v23/customers/{customersId}/offlineUserDataJobs:create

`POST /v23/customers/{customersId}/offlineUserDataJobs:create`

## Request

- Base URL: `https://searchads360.googleapis.com`
- URL: `https://searchads360.googleapis.com/v23/customers/{customersId}/offlineUserDataJobs:create`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/doubleclicksearch`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/doubleclicksearch`
- TypeScript: <https://skmtc.dev/google/apis/searchads360/docs/v23/customers/:customersId/offlineUserDataJobs:create/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates an offline user data job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [NotAllowlistedError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()

## Path parameters

- `customersId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesCreateOfflineUserDataJobRequest: Request message for OfflineUserDataJobService.CreateOfflineUserDataJob.
  - `enableMatchRateRangePreview` boolean: If true, match rate range for the offline user data job is calculated and made available in the resource.
  - `job` GoogleAdsSearchads360V23ResourcesOfflineUserDataJob: A job containing offline user data of store visitors, or user list members that will be processed asynchronously. The uploaded data isn't readable and the processing results of the job can only be read using
    - `customerMatchUserListMetadata` GoogleAdsSearchads360V23CommonCustomerMatchUserListMetadata: Metadata for customer match user list.
      - `consent` GoogleAdsSearchads360V23CommonConsent: Consent
        - `adPersonalization` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.
        - `adUserData` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad user data.
      - `userList` string: The resource name of remarketing list to update data. Required for job of CUSTOMER_MATCH_USER_LIST type.
    - `externalId` string, int64: Immutable. User specified job ID.
    - `failureReason` 'UNSPECIFIED' | 'UNKNOWN' | 'INSUFFICIENT_MATCHED_TRANSACTIONS' | 'INSUFFICIENT_TRANSACTIONS' | 'HIGH_AVERAGE_TRANSACTION_VALUE' | 'LOW_AVERAGE_TRANSACTION_VALUE' | 'NEWLY_OBSERVED_CURRENCY_CODE': Output only. Reason for the processing failure, if status is FAILED.
    - `id` string, int64: Output only. ID of this offline user data job.
    - `operationMetadata` GoogleAdsSearchads360V23ResourcesOfflineUserDataJobMetadata: Metadata of offline user data job.
      - `matchRateRange` 'UNSPECIFIED' | 'UNKNOWN' | 'MATCH_RANGE_LESS_THAN_20' | 'MATCH_RANGE_20_TO_30' | 'MATCH_RANGE_31_TO_40' | 'MATCH_RANGE_41_TO_50' | 'MATCH_RANGE_51_TO_60' | 'MATCH_RANGE_61_TO_70' | 'MATCH_RANGE_71_TO_80' | 'MATCH_RANGE_81_TO_90' | 'MATCH_RANGE_91_TO_100': Output only. Match rate of the Customer Match user list upload. Describes the estimated match rate when the status of the job is "RUNNING" and final match rate when the final match rate is available after the status of the job is "SUCCESS/FAILED".
    - `resourceName` string: Immutable. The resource name of the offline user data job. Offline user data job resource names have the form: `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}`
    - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'PENDING' | 'RUNNING' | 'SUCCESS' | 'FAILED': Output only. Status of the job.
    - `storeSalesMetadata` GoogleAdsSearchads360V23CommonStoreSalesMetadata: Metadata for Store Sales Direct.
      - `customKey` string: 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.
      - `loyaltyFraction` number, double: 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).
      - `thirdPartyMetadata` GoogleAdsSearchads360V23CommonStoreSalesThirdPartyMetadata: 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.
        - `advertiserUploadDateTime` string: 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"
        - `bridgeMapVersionId` string: Version of partner IDs to be used for uploads. Required.
        - `partnerId` string, int64: ID of the third party partner updating the transaction feed.
        - `partnerMatchFraction` number, double: 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).
        - `partnerUploadFraction` number, double: 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).
        - `validTransactionFraction` number, double: 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).
      - `transactionUploadFraction` number, double: 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.
    - `type` 'UNSPECIFIED' | 'UNKNOWN' | 'STORE_SALES_UPLOAD_FIRST_PARTY' | 'STORE_SALES_UPLOAD_THIRD_PARTY' | 'CUSTOMER_MATCH_USER_LIST' | 'CUSTOMER_MATCH_WITH_ATTRIBUTES': Immutable. Type of the job.
  - `validateOnly` boolean: If true, the request is validated but not executed. Only errors are returned, not results.

## Response `200`

Successful response

- GoogleAdsSearchads360V23ServicesCreateOfflineUserDataJobResponse: Response message for OfflineUserDataJobService.CreateOfflineUserDataJob.
  - `resourceName` string: The resource name of the OfflineUserDataJob.

---

[API](https://skmtc.dev/google/apis/searchads360.md) - [All operations](https://skmtc.dev/google/apis/searchads360/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/searchads360/revisions/4a4511f84b18?raw)
