Google Ads · Schema
GoogleAdsGoogleadsV25Services__CreateOfflineUserDataJobRequest
Request message for OfflineUserDataJobService.CreateOfflineUserDataJob.
AdvertisingCampaign ManagementDigital AdvertisingGoogleMarketingPPCGoogle AdsAdTech
Properties
| Name | Type | Description |
|---|---|---|
| enableMatchRateRangePreview | boolean | If true, match rate range for the offline user data job is calculated and made available in the resource. |
| job | object | Required. The offline user data job to be created. |
| validateOnly | boolean | If true, the request is validated but not executed. Only errors are returned, not results. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-create-offline-user-data-job-request-schema.json",
"title": "GoogleAdsGoogleadsV25Services__CreateOfflineUserDataJobRequest",
"description": "Request message for OfflineUserDataJobService.CreateOfflineUserDataJob.",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-ads-customers-offlineuserdatajobs-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__CreateOfflineUserDataJobRequest",
"type": "object",
"properties": {
"enableMatchRateRangePreview": {
"description": "If true, match rate range for the offline user data job is calculated and made available in the resource.",
"type": "boolean"
},
"job": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__OfflineUserDataJob",
"description": "Required. The offline user data job to be created."
},
"validateOnly": {
"type": "boolean",
"description": "If true, the request is validated but not executed. Only errors are returned, not results."
}
},
"$defs": {
"GoogleAdsGoogleadsV25Common__Consent": {
"type": "object",
"properties": {
"adUserData": {
"x-enumDescriptions": [
"Not specified.",
"Output-only. Represents a format not yet defined in this enum.",
"Granted.",
"Denied."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"GRANTED",
"DENIED"
],
"description": "This represents consent for ad user data.",
"type": "string"
},
"adPersonalization": {
"type": "string",
"description": "This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.",
"x-enumDescriptions": [
"Not specified.",
"Output-only. Represents a format not yet defined in this enum.",
"Granted.",
"Denied."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"GRANTED",
"DENIED"
]
}
},
"description": "Consent"
},
"GoogleAdsGoogleadsV25Common__CustomerMatchUserListMetadata": {
"description": "Metadata for customer match user list.",
"type": "object",
"properties": {
"userList": {
"description": "The resource name of remarketing list to update data. Required for job of CUSTOMER_MATCH_USER_LIST type.",
"type": "string"
},
"consent": {
"description": "The consent setting for all the users in this job.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__Consent"
}
}
},
"GoogleAdsGoogleadsV25Common__StoreSalesMetadata": {
"description": "Metadata for Store Sales Direct.",
"type": "object",
"properties": {
"loyaltyFraction": {
"description": "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).",
"type": "number",
"format": "double"
},
"customKey": {
"type": "string",
"description": "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."
},
"transactionUploadFraction": {
"type": "number",
"description": "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.",
"format": "double"
},
"thirdPartyMetadata": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__StoreSalesThirdPartyMetadata",
"description": "Metadata for a third party Store Sales upload."
}
}
},
"GoogleAdsGoogleadsV25Common__StoreSalesThirdPartyMetadata": {
"type": "object",
"properties": {
"advertiserUploadDateTime": {
"type": "string",
"description": "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\""
},
"partnerUploadFraction": {
"format": "double",
"type": "number",
"description": "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": {
"format": "double",
"type": "number",
"description": "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)."
},
"partnerMatchFraction": {
"format": "double",
"description": "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).",
"type": "number"
},
"partnerId": {
"format": "int64",
"description": "ID of the third party partner updating the transaction feed.",
"type": "string"
},
"bridgeMapVersionId": {
"type": "string",
"description": "Version of partner IDs to be used for uploads. Required."
}
},
"description": "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."
},
"GoogleAdsGoogleadsV25Resources__OfflineUserDataJob": {
"description": "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 GoogleAdsService.Search/SearchStream.",
"type": "object",
"properties": {
"failureReason": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"The matched transactions are insufficient.",
"The uploaded transactions are insufficient.",
"The average transaction value is unusually high for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
"The average transaction value is unusually low for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
"There's a currency code that you haven't used before in your uploads. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#Unrecognized_currency"
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"INSUFFICIENT_MATCHED_TRANSACTIONS",
"INSUFFICIENT_TRANSACTIONS",
"HIGH_AVERAGE_TRANSACTION_VALUE",
"LOW_AVERAGE_TRANSACTION_VALUE",
"NEWLY_OBSERVED_CURRENCY_CODE"
],
"type": "string",
"description": "Output only. Reason for the processing failure, if status is FAILED."
},
"operationMetadata": {
"description": "Output only. Metadata of offline user data job depicting match rate range.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__OfflineUserDataJobMetadata"
},
"storeSalesMetadata": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__StoreSalesMetadata",
"description": "Immutable. Metadata for store sales data update."
},
"resourceName": {
"type": "string",
"description": "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}`"
},
"id": {
"format": "int64",
"description": "Output only. ID of this offline user data job.",
"type": "string"
},
"status": {
"description": "Output only. Status of the job.",
"type": "string",
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"PENDING",
"RUNNING",
"SUCCESS",
"FAILED"
],
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"The job has been successfully created and pending for uploading.",
"Upload(s) have been accepted and data is being processed.",
"Uploaded data has been successfully processed. The job might have no operations, which can happen if the job was run without any operations added, or if all operations failed validation individually when attempting to add them to the job.",
"Uploaded data has failed to be processed. Some operations may have been successfully processed."
]
},
"customerMatchUserListMetadata": {
"description": "Immutable. Metadata for data updates to a CRM-based user list.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomerMatchUserListMetadata"
},
"type": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"Store Sales Direct data for self service.",
"Store Sales Direct data for third party.",
"Customer Match user list data.",
"Customer Match with attribute data."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"STORE_SALES_UPLOAD_FIRST_PARTY",
"STORE_SALES_UPLOAD_THIRD_PARTY",
"CUSTOMER_MATCH_USER_LIST",
"CUSTOMER_MATCH_WITH_ATTRIBUTES"
],
"type": "string",
"description": "Immutable. Type of the job."
},
"externalId": {
"description": "Immutable. User specified job ID.",
"type": "string",
"format": "int64"
}
}
},
"GoogleAdsGoogleadsV25Resources__OfflineUserDataJobMetadata": {
"description": "Metadata of offline user data job.",
"type": "object",
"properties": {
"matchRateRange": {
"x-enumDescriptions": [
"Not specified.",
"Default value for match rate range.",
"Match rate range for offline data upload entity is between 0% and 19%.",
"Match rate range for offline data upload entity is between 20% and 30%.",
"Match rate range for offline data upload entity is between 31% and 40%.",
"Match rate range for offline data upload entity is between 41% and 50%.",
"Match rate range for offline data upload entity is between 51% and 60%.",
"Match rate range for offline data upload entity is between 61% and 70%.",
"Match rate range for offline data upload entity is between 71% and 80%.",
"Match rate range for offline data upload entity is between 81% and 90%.",
"Match rate range for offline data upload entity is more than or equal to 91%."
],
"type": "string",
"description": "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\".",
"enum": [
"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"
]
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-ads-google-ads-googleads-v25-services-create-offline-user-data-job-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.