> For the complete documentation index, see [llms.txt](https://assetstore.essentialkit.voxelbusters.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://assetstore.essentialkit.voxelbusters.com/features/utilities/playmaker/use-cases/use-case-3-cross-promotion.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
