---
updatedAt: 2026-04-29T10:50:03.000Z
---

# React Native  SDK References and Release notes

# React Native SDK release notes

The release notes are managed with the actual [code releases](https://github.com/DynamicYield/Dynamic-Yield-Mobile-SDK-React-Native/releases) in the repository.

# React Native SDK references

## Classes

### DYResult

```javascript React Native
public class DYResult {
    public let status: ResultStatus
    public let error: Error?
    public let warnings: [Warning]?
    public let rawNetworkData: RawNetworkData?
}
```

| Property       | Description                                                                                                                                                 | Type                                          |
| :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------- |
| status         | The status of the Choose call. If the type is "WARNING," it indicates that the request was successful, but there are warnings associated with the response. | **ResultStatus**:<br> success, error, warning |
| warnings       | List of warnings returned from the server. Every warning item has a code and message.                                                                       | List\<Warning>?                               |
| error          | Error and exception.                                                                                                                                        | Error?                                        |
| rawNetworkData | Network-related data (for debugging purposes).                                                                                                              | RawNetworkData?                               |

***

### Page

```javascript React Native
public class Page: Encodable {
    let type: PageType
    let location: String
    let data: [String]
    let referrer: String?
    var locale: String?
}
```

| Property     | Description                                                                                                                                             | Type                  |
| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------- |
| pageType     | The current page type                                                                                                                                   | [PageType](#pagetype) |
| pageLocation | The current location. URL (for web), location (for SPA), or screen name (for mobile apps). Enables targeting the current page/screen.                   | String                |
| pageData     | Additional data for non-homepage pages: The SKU for a PRODUCT page, the category for a CATEGORY page, SKUs for the CART page, and the page ID in OTHER. | List<String>          |
| pageReferrer | The previous location. URL (for web), location (for SPA), or screen name (for mobile apps). Enables targeting the previous page/screen.                 | String?               |
| locale       | Page locale code                                                                                                                                        | String?               |

***

### ChooseOptions

```javascript React Native
public struct ChooseOptions {
    public var isImplicitPageview: Bool?
    public var returnAnalyticsMetadata: Bool?
    public var isImplicitImpressionMode: Bool?
}
```

| Property                 | Description                                                                                                                                                                                                                                                                 | Type    |
| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |
| isImplicitPageview       | Determine whether to report a new pageview with the given context. Default is `false`. Set to true to report a new pageview with the given context. Keep as false if the Dynamic Yield script is implemented on the page. It reports the new pageview from the browser.     | Boolean |
| returnAnalyticsMetadata  | Return additional metadata (display names & IDs for all entities). Useful for reporting to analytics tools. Set to true to return additional metadata (display names & IDs for all entities) for reporting to analytics tools.                                              | Boolean |
| isImplicitImpressionMode | Report an impression of the chosen variation. This is set to `true `by default, which means that the user's impression of the variation is reported immediately when the variation is chosen. Pass this as false to report the impression explicitly in an Engagement call. | Boolean |

***

### Facets

```javascript React Native
// Base type for facets. Use valuesType to determine the concrete type.
export interface Facet {
  column: string;
  displayName: string;
  valuesType: FacetValuesType;
}
```

| Property    | Description                            | Type                           |
| :---------- | :------------------------------------- | :----------------------------- |
| column      | Column identifier the facet applies to | String                         |
| displayName | Human-readable label for the facet     | String                         |
| valuesType  | Facet value category                   | FacetValuesType:number, string |

#### NumberFacet

```javascript React Native
export interface NumberFacet extends Facet {
  valuesType: FacetValuesType.Number;
  min: number;
  max: number;
}
```

| Property    | Description                            | Type                                       |
| :---------- | :------------------------------------- | :----------------------------------------- |
| column      | Column identifier the facet applies to | String                                     |
| displayName | Human-readable label for the facet     | String                                     |
| min         | Minimum value of the facet range       | Number                                     |
| max         | Maximum value of the facet range       | Number                                     |
| valuesType  | Facet type for numeric values          | [FacetValuesType.Number](#facetvaluestype) |

#### StringFacet

```javascript React Native
export interface StringFacet extends Facet {
  valuesType: FacetValuesType.String;
  values: StringFacetValue[];
}
```

| Property    | Description                            | Type                                       |
| :---------- | :------------------------------------- | :----------------------------------------- |
| column      | Column identifier the facet applies to | String                                     |
| displayName | Human-readable label for the facet     | String                                     |
| values      | Allowed string values for this facet   | StringFacetValue\[]                        |
| valuesType  | Facet type for string values           | [FacetValuesType.String](#facetvaluestype) |

***

### Widget

```javascript React Native
export interface Widget {
  title: string;
  slots: RecsSlot[];
}
```

| Property | Description                  | Type           |
| :------- | :--------------------------- | :------------- |
| title    | Widget title                 | String         |
| slots    | List of recommendation slots | List<RecsSlot> |

***

## Enums

### Channel

```javascript React Native
public enum Channel: String, Codable, CaseIterable {
    case app = "APP"
    case kiosk = "KIOSK"
    case driveThru = "DRIVE-THRU"
}
```

### DeviceType

```javascript React Native
public enum DeviceType: String, Codable, CaseIterable {
    case odmb = "ODMB"
    case smartphone = "SMARTPHONE"
    case tablet = "TABLET"
    case kiosk = "KIOSK"
}
```

### PageType

```javascript React Native
public enum PageType: String, Codable, CaseIterable {
    case homepage = "HOMEPAGE"
    case category = "CATEGORY"
    case product = "PRODUCT"
    case cart = "CART"
    case other = "OTHER"
}
```

### OrderFulfillment

```javascript React Native
public enum OrderFulfillment: String, Codable, CaseIterable {
  case delivery = "DELIVERY"
  case pickup = "PICKUP"
  case dinein = "DINEIN"
  case curbside = "CURBSIDE"
}
```

### SortOrderType

```javascript React Native
public enum SortOrderType: String, Codable, CaseIterable {
    case asc = "ASC"
    case desc = "DESC"
}
```

### VideoProgressType

```javascript React Native
enum class VideoProgressType: String, Codable, CaseIterable{
    case videoStarted = "VIDEO_STARTED",
    case prerollFinished = "PREROLL_FINISHED",
    case videoFinished = "VIDEO_FINISHED",
    case videoProgress = "VIDEO_PROGRESS"
}
```

### FacetValuesType

```javascript React Native
export interface Widget {
  title: string;
  slots: RecsSlot[];
}
```