<!--
{
  "availability" : [
    "Retention Messaging API: 1.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RetentionMessaging",
  "identifier" : "/documentation/RetentionMessaging/advancedCommerceInfo",
  "metadataVersion" : "0.1.0",
  "role" : "Object",
  "symbol" : {
    "kind" : "Object",
    "modules" : [
      "Retention Messaging API"
    ],
    "preciseIdentifier" : "data:retention_messaging:advancedCommerceInfo"
  },
  "title" : "advancedCommerceInfo"
}
-->

# advancedCommerceInfo

A response object you provide to present an offer or switch-plan recommendation message.

```
object advancedCommerceInfo
```

## Discussion

Use the `advancedCommerceInfo` object to indicate the message to display and the signed request.

Before using this object to provide a custom offer or switch-plan recommendation, ensure that the app has a default message that you’ve assigned to its generic product identifiers. For more information on setting up generic product identifiers, see Set up generic product identifiers in <doc://com.apple.documentation/documentation/AdvancedCommerceAPI/setting-up-your-project-for-advanced-commerce>.

> Note: Providing `advancedCommerceInfo` isn’t available for subscription bundles; respond with a ``doc://com.apple.retentionmessaging/documentation/RetentionMessaging/message`` instead.

If you don’t have access to the Advanced Commerce API (ACA), use the `alternateProduct` or `promotionalOffer` keys of the [`RealtimeResponseBody`](/documentation/RetentionMessaging/RealtimeResponseBody).

For more information, see <doc://com.apple.documentation/documentation/AdvancedCommerceAPI>.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)