<!--
{
  "availability" : [
    "iOS: 11.0.0 - 18.0.0",
    "iPadOS: 11.0.0 - 18.0.0",
    "macCatalyst: 14.0.0 - 18.0.0",
    "macOS: 11.0.0 - 15.0.0",
    "tvOS: 11.0.0 - 18.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/SKProductStorePromotionController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SKProductStorePromotionController"
  },
  "title" : "SKProductStorePromotionController"
}
-->

# SKProductStorePromotionController

A product promotion controller for customizing the order and visibility of In-App Purchases per device.

```
class SKProductStorePromotionController
```

## Overview

For information about promoting In-App Purchases, see [Promoting In-App Purchases](/documentation/StoreKit/promoting-in-app-purchases).

> Note:
> ``doc://com.apple.storekit/documentation/StoreKit/SKProductStorePromotionController`` and promoted In-App Purchases aren’t available to compatible iPad and iPhone apps running in visionOS.

## Topics

### Managing promoted product order

[`fetchStorePromotionOrder(completionHandler:)`](/documentation/StoreKit/SKProductStorePromotionController/fetchStorePromotionOrder(completionHandler:))

Reads the product order override that determines the promoted product order on this device.

[`update(storePromotionOrder:completionHandler:)`](/documentation/StoreKit/SKProductStorePromotionController/update(storePromotionOrder:completionHandler:))

Overrides the promoted product order on this device.

### Managing promoted product visibility

[`fetchStorePromotionVisibility(for:completionHandler:)`](/documentation/StoreKit/SKProductStorePromotionController/fetchStorePromotionVisibility(for:completionHandler:))

Reads the visibility setting of a promoted product in the App Store for this device.

[`update(storePromotionVisibility:for:completionHandler:)`](/documentation/StoreKit/SKProductStorePromotionController/update(storePromotionVisibility:for:completionHandler:))

Updates the visibility of the product on the App Store, per device.

[`SKProductStorePromotionVisibility`](/documentation/StoreKit/SKProductStorePromotionVisibility)

The visibility settings that determine if an in-app purchase is visible on a device.

### Getting the controller

[`default()`](/documentation/StoreKit/SKProductStorePromotionController/default())

Returns the default product store promotion controller.



---

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)