Method: monetization.subscriptions.basePlans.offers.batchUpdate
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
更新批次訂閱優惠。
將巢狀要求的延遲時間 Tolerance 欄位設為 PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT,才能達到最大更新處理量。
HTTP 要求
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdate
這個網址使用 gRPC 轉碼語法。
路徑參數
參數 |
packageName |
string
必要欄位。更新訂閱項目優惠的上層應用程式 (套件名稱)。 必須等於所有已更新 SubscriptionOffer 資源中的 packageName 欄位。
|
productId |
string
必要欄位。如果所有更新後的優惠都屬於同一個訂閱項目,則父項訂閱項目的產品 ID。如果這項要求涵蓋多個訂閱項目,請將這個欄位設為「-」。必須設定。
|
basePlanId |
string
必要欄位。要更新優惠的上層基本方案 (ID)。可以指定為「-」更新多個基本方案的優惠。
|
要求主體
要求主體的資料會採用以下結構:
欄位 |
requests[] |
object (UpdateSubscriptionOfferRequest )
必要欄位。最多包含 100 個元素的更新要求清單。所有要求都必須更新不同的訂閱優惠。
|
回應主體
offer.batchUpdate 的回應訊息。
如果成功,回應主體會含有以下結構的資料:
欄位 |
subscriptionOffers[] |
object (SubscriptionOffer )
更新後的訂閱項目優惠清單。
|
授權範圍
需要下列 OAuth 範圍:
https://www.googleapis.com/auth/androidpublisher
UpdateSubscriptionOfferRequest
欄位 |
subscriptionOffer |
object (SubscriptionOffer )
必要欄位。要更新的訂閱優惠。
|
updateMask |
string (FieldMask format)
必要欄位。要更新的欄位清單。 這是以半形逗號分隔的完整欄位名稱清單。範例:"user.displayName,photo" 。
|
regionsVersion |
object (RegionsVersion )
必要欄位。用於 subscriptionOffer 的可用地區版本。
|
allowMissing |
boolean
選用設定。如果設為 true,且指定 packageName、productId、basePlanId 和 offerId 的訂閱優惠不存在,系統將建立優惠。 如果建立新優惠,系統會忽略 updateMask。
|
latencyTolerance |
enum (ProductUpdateLatencyTolerance )
選用設定。這項產品更新傳播的延遲時間容忍度。預設為易受延遲時間影響。
|
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
[null,null,["上次更新時間:2025-07-26 (世界標準時間)。"],[[["\u003cp\u003eUpdates a batch of subscription offers, allowing for up to 100 update requests in a single call.\u003c/p\u003e\n"],["\u003cp\u003eRequires providing the package name, product ID, and base plan ID for the offers being updated.\u003c/p\u003e\n"],["\u003cp\u003eAllows specifying latency tolerance to optimize update throughput using the \u003ccode\u003elatencyTolerance\u003c/code\u003e field.\u003c/p\u003e\n"],["\u003cp\u003eUtilizes the \u003ccode\u003eUpdateSubscriptionOfferRequest\u003c/code\u003e to define the changes for each subscription offer within the batch.\u003c/p\u003e\n"],["\u003cp\u003eRequires authorization with the \u003ccode\u003ehttps://www.googleapis.com/auth/androidpublisher\u003c/code\u003e scope.\u003c/p\u003e\n"]]],["This document details the process of batch updating subscription offers via a `POST` request to a specified URL. Key actions involve providing `packageName`, `productId`, and `basePlanId` as path parameters. The request body must include an array of `UpdateSubscriptionOfferRequest` objects, each specifying the offer to update, fields to modify, regions version and a latency tolerance. The response body will then return the list of updated `SubscriptionOffer` objects. Authorization requires the `androidpublisher` OAuth scope.\n"],null,["# Method: monetization.subscriptions.basePlans.offers.batchUpdate\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n - [JSON representation](#body.BatchUpdateSubscriptionOffersResponse.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n- [UpdateSubscriptionOfferRequest](#UpdateSubscriptionOfferRequest)\n - [JSON representation](#UpdateSubscriptionOfferRequest.SCHEMA_REPRESENTATION)\n- [Try it!](#try-it)\n\nUpdates a batch of subscription offers.\n\nSet the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.\n\n### HTTP request\n\n`POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdate`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `packageName` | `string` Required. The parent app (package name) of the updated subscription offers. Must be equal to the packageName field on all the updated SubscriptionOffer resources. |\n| `productId` | `string` Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this request spans multiple subscriptions, set this field to \"-\". Must be set. |\n| `basePlanId` | `string` Required. The parent base plan (ID) for which the offers should be updated. May be specified as '-' to update offers from multiple base plans. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"requests\": [ { object (/android-publisher/api-ref/rest/v3/monetization.subscriptions.basePlans.offers/batchUpdate#UpdateSubscriptionOfferRequest) } ] } ``` |\n\n| Fields ||\n|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `requests[]` | `object (`[UpdateSubscriptionOfferRequest](/android-publisher/api-ref/rest/v3/monetization.subscriptions.basePlans.offers/batchUpdate#UpdateSubscriptionOfferRequest)`)` Required. A list of update requests of up to 100 elements. All requests must update different subscription offers. |\n\n### Response body\n\nResponse message for offers.batchUpdate.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|-----------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"subscriptionOffers\": [ { object (/android-publisher/api-ref/rest/v3/monetization.subscriptions.basePlans.offers#SubscriptionOffer) } ] } ``` |\n\n| Fields ||\n|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `subscriptionOffers[]` | `object (`[SubscriptionOffer](/android-publisher/api-ref/rest/v3/monetization.subscriptions.basePlans.offers#SubscriptionOffer)`)` The updated subscription offers list. |\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/androidpublisher`\n\nUpdateSubscriptionOfferRequest\n------------------------------\n\nRequest message for offers.patch.\n\n| JSON representation |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"subscriptionOffer\": { object (/android-publisher/api-ref/rest/v3/monetization.subscriptions.basePlans.offers#SubscriptionOffer) }, \"updateMask\": string, \"regionsVersion\": { object (/android-publisher/api-ref/rest/v3/RegionsVersion) }, \"allowMissing\": boolean, \"latencyTolerance\": enum (/android-publisher/api-ref/rest/v3/ProductUpdateLatencyTolerance) } ``` |\n\n| Fields ||\n|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `subscriptionOffer` | `object (`[SubscriptionOffer](/android-publisher/api-ref/rest/v3/monetization.subscriptions.basePlans.offers#SubscriptionOffer)`)` Required. The subscription offer to update. |\n| `updateMask` | `string (`[FieldMask](https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask)` format)` Required. The list of fields to be updated. This is a comma-separated list of fully qualified names of fields. Example: `\"user.displayName,photo\"`. |\n| `regionsVersion` | `object (`[RegionsVersion](/android-publisher/api-ref/rest/v3/RegionsVersion)`)` Required. The version of the available regions being used for the subscriptionOffer. |\n| `allowMissing` | `boolean` Optional. If set to true, and the subscription offer with the given packageName, productId, basePlanId and offerId doesn't exist, an offer will be created. If a new offer is created, updateMask is ignored. |\n| `latencyTolerance` | `enum (`[ProductUpdateLatencyTolerance](/android-publisher/api-ref/rest/v3/ProductUpdateLatencyTolerance)`)` Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive. |"]]