> ## Documentation Index
> Fetch the complete documentation index at: https://docs.playtolia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlaytoliaPromotion

> App review prompt management

### Methods

| Method                                                                                | Parameters                         | Returns          | Notes                                                             |
| ------------------------------------------------------------------------------------- | ---------------------------------- | ---------------- | ----------------------------------------------------------------- |
| `GetState()`                                                                          | —                                  | `PromotionState` | Current promotion/review state                                    |
| `ConfigureReview(minSessions, minDaysSinceInstall, maxRequestsPerYear, cooldownDays)` | `int, int, int, int`               | `void`           | Set review eligibility thresholds                                 |
| `RequestReview(force)`                                                                | `bool` (optional, default `false`) | `void`           | Show review dialog if eligible. `force: true` bypasses all checks |
| `RequestReviewAfterPositiveEvent(force)`                                              | `bool` (optional, default `false`) | `void`           | Skips session/day checks. `force: true` bypasses all checks       |
| `CanRequestReview()`                                                                  | —                                  | `bool`           | Check eligibility without prompting                               |
| `SetNeverAskAgain(value)`                                                             | `bool`                             | `void`           | Permanent opt-out                                                 |
| `AddListener(listener)`                                                               | `Action`                           | `void`           |                                                                   |
| `RemoveListener(listener)`                                                            | `Action`                           | `void`           |                                                                   |

### PromotionState

| Field                        | Type   | Notes                              |
| ---------------------------- | ------ | ---------------------------------- |
| `SessionCount`               | `int`  | Total app opens tracked            |
| `FirstSessionTimestamp`      | `long` | Epoch millis of first session      |
| `LastReviewRequestTimestamp` | `long` | Epoch millis of last review prompt |
| `ReviewRequestCount`         | `int`  | Total review prompts shown         |
| `NeverAskAgain`              | `bool` | Player opted out of reviews        |

### Default Review Configuration

| Parameter             | Default |
| --------------------- | ------- |
| `minSessions`         | 5       |
| `minDaysSinceInstall` | 7       |
| `maxRequestsPerYear`  | 3       |
| `cooldownDays`        | 120     |
