# Cross-Promote Another App

## Goal

Open the app store page for a different app (e.g., to promote another game in your portfolio).

## Actions Required

| Action                        | Purpose                                        |
| ----------------------------- | ---------------------------------------------- |
| UtilitiesOpenAppStorePageById | Opens app store with platform-specific app IDs |

## Variables Needed

* iosAppStoreId (String): iOS numeric App Store ID (e.g., "1234567890")
* androidPackageId (String): Android bundle ID (e.g., "com.publisher.anotherapp")

## Implementation Steps

### 1. State: SetTargetIds

Set the platform-specific IDs for the app you want to promote:

* **iOS**: `iosAppStoreId` = numeric App Store ID (e.g., "1234567890")
* **Android**: `androidPackageId` = package name (e.g., "com.publisher.anotherapp")

### 2. State: OpenTargetApp

**Action:** UtilitiesOpenAppStorePageById

* **Inputs:**
  * iosAppStoreId → iosAppStoreId (optional, iOS only)
  * androidPackageName → androidPackageName (optional, Android only)

**Note:** The app will suspend and the App Store will open for the target app.

## Common Issues

* **Wrong app opens**: Verify app ID is correct for the platform
* **App not found**: Ensure the target app is published on the current platform
* **Action fails in Editor**: App Store links only work on device

## Flow Diagram

```
SetTargetIds
    ├─ iosAppStoreId = "1234567890"
    └─ androidPackageId = "com.publisher.anotherapp"

OpenTargetApp
    └─ App Store opens for target app
```

## Best Practices

* Show a preview/description of the promoted app before opening
* Use compelling call-to-action: "Try our NEW game!"
* Track conversions using analytics before opening store
* Consider showing promotions after natural breaks (level end, menu screen)

## Example Configuration

### For iOS:

```
targetAppId = "123456789"  // Numeric App Store ID
```

### For Android:

```
targetAppId = "com.yourpublisher.anothergame"  // Package name
```

### Platform-Aware Setup:

Use PlayMaker's platform detection or FsmString with different values per build.

## Notes

* You can set only the ID for the platform you ship on, or set both to support cross-platform builds.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://assetstore.essentialkit.voxelbusters.com/features/utilities/playmaker/use-cases/use-case-3-cross-promotion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
