Skip to content
Open
4 changes: 2 additions & 2 deletions skills/levelplay-unity-integration/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## v0.7.0 — 2026-06-05 — Initial public beta release
## v0.7.0 — 2026-06-12 — Initial public beta release

First release of the LevelPlay Unity integration skill, released as public beta.

Expand All @@ -17,4 +17,4 @@ First release of the LevelPlay Unity integration skill, released as public beta.

## Feedback

This skill is currently in beta. Share your feedback here: https://docs.google.com/forms/d/e/1FAIpQLSe7WvWozJ67KjgOLglSBvLug8JdgEYk895nn_BHZs0HS_bWJA/viewform?usp=sharing&ouid=116753073211029919766
This skill is currently in beta. [Share your feedback here](https://docs.google.com/forms/d/e/1FAIpQLSe7WvWozJ67KjgOLglSBvLug8JdgEYk895nn_BHZs0HS_bWJA/viewform).
6 changes: 5 additions & 1 deletion skills/levelplay-unity-integration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![Beta](https://img.shields.io/badge/status-beta-orange) ![Version](https://img.shields.io/badge/version-0.7.0-blue) ![License](https://img.shields.io/badge/license-Unity%20Companion-blue)

> 🧪 **Note:** This skill is in beta and will be shaped by your feedback. Try it out and [let us know what you think](https://docs.google.com/forms/d/e/1FAIpQLSe7WvWozJ67KjgOLglSBvLug8JdgEYk895nn_BHZs0HS_bWJA/viewform?usp=sharing&ouid=116753073211029919766)!
> 🧪 **Note:** This skill is in beta and will be shaped by your feedback. Try it out and [let us know what you think](https://docs.google.com/forms/d/e/1FAIpQLSe7WvWozJ67KjgOLglSBvLug8JdgEYk895nn_BHZs0HS_bWJA/viewform)!

A skill that guides Unity developers through integrating the LevelPlay SDK using the Ads Mediation package in Unity Package Manager: from installation to fully working rewarded ads, interstitials, and banners.

Expand Down Expand Up @@ -50,6 +50,10 @@ Type `/levelplay-unity-integration` to activate the skill, then describe what yo

You can jump in at any step. If the Unity package and SDK are already installed, your agent will pick up from where you are.

## Privacy & Legal

> **Note:** This skill provides technical integration guidance, including for LevelPlay's privacy APIs. It is not legal advice, and it does not determine which laws apply to your app — that depends on your users, your data practices, and your distribution. Consult your own legal counsel, and refer to [Regulation Advanced Settings for Unity](https://docs.unity.com/en-us/grow/levelplay/sdk/unity/regulation-advanced-settings) for the authoritative LevelPlay documentation.

## What's in this folder

```
Expand Down
16 changes: 6 additions & 10 deletions skills/levelplay-unity-integration/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ description: Use when integrating LevelPlay (IronSource) ads into a Unity projec

# LevelPlay Unity package/SDK Integration

Use Unity.RunCommand for editor-side checks and operations. The C# scripts generated in this skill are MonoBehaviour files for the user to save to their project, not for inline execution.
The C# scripts generated in this skill are MonoBehaviour files for the user to save to their project, not for inline execution.

Follow the integration workflow sequentially, one step at a time. Ask only the questions for the current step — do not gather information for future steps in advance. Wait for the user's response at each checkpoint before proceeding.

LevelPlay is Unity's ad mediation platform: it connects your game to multiple ad networks simultaneously and automatically shows the highest-paying ad available. This guide walks you through the full integration: installing the SDK, configuring dependencies for Android and iOS, initializing LevelPlay in your project, and implementing rewarded, interstitial, and banner ads. If you already have part of this set up, you can skip ahead to the relevant step.
LevelPlay is Unity's ad mediation platform: it connects your game to multiple ad networks simultaneously and runs a unified auction across multiple ad networks and bidders to maximize competition for each impression. This guide walks you through the full integration: installing the SDK, configuring dependencies for Android and iOS, initializing LevelPlay in your project, and implementing rewarded, interstitial, and banner ads. If you already have part of this set up, you can skip ahead to the relevant step.

## Integration Workflow

Expand Down Expand Up @@ -164,14 +164,9 @@ This configuration is required for AdMob to work as a mediation network in Level

### 6.5. Privacy & Regulation Settings (If Required)

**When to use**: If your app serves users in the EU (GDPR), California (CCPA), or is directed at children (COPPA).
> **Note:** This skill provides technical integration guidance, including for LevelPlay's privacy APIs. It is not legal advice, and it does not determine which laws apply to your app — that depends on your users, your data practices, and your distribution. Consult your own legal counsel, and refer to [Regulation Advanced Settings for Unity](https://docs.unity.com/en-us/grow/levelplay/sdk/unity/regulation-advanced-settings) for the authoritative LevelPlay documentation.

Ask the user: "Does your app need to comply with any privacy regulations?"
- **GDPR** (EU users): Requires user consent for data collection
- **CCPA** (California users): Requires "Do Not Sell" opt-out option
- **COPPA** (Child-directed apps): Restricts data collection for children under 13

If you're unsure whether your app reaches EU users, implement GDPR handling as a precaution — it's better to request consent you don't strictly need than to miss it where you do.
Ask the user: "Do you need to configure privacy settings for GDPR, CCPA/CPRA (or certain state privacy consumer acts), or for child-directed apps?"

**If YES to any:**

Expand Down Expand Up @@ -224,7 +219,7 @@ Call these BEFORE `LevelPlay.Init()` in Step 7.

For complete implementation with UI, consent management, and combined regulations, see `references/privacy-settings.md`.

**For iOS builds — required regardless of privacy regulations above:** Also implement App Tracking Transparency (ATT) before proceeding to Step 7. ATT must be called before `LevelPlay.Init()` to maximize ad fill rate on iOS 14+. See `references/ios-setup.md` for the ATT implementation code.
**For iOS builds — required regardless of privacy regulations above:** Also implement App Tracking Transparency (ATT) before proceeding to Step 7. Apple requires ATT authorization before your app tracks users or accesses the device's advertising identifier on iOS 14.5+. Request ATT authorization before calling `LevelPlay.Init()` — this is both an Apple platform requirement and necessary for personalized ads (which also affects fill rate). See `references/ios-setup.md` for the ATT implementation code.

**If NO privacy regulations and not targeting iOS:** Skip this step and proceed to Step 7.

Expand Down Expand Up @@ -1109,3 +1104,4 @@ Read specific references based on what the user is implementing:
8. Recommend balanced strategy (Step 8)
9. Ask to see existing GameManager.cs, then provide code snippets (Step 9)
10. Guide through testing (Step 10)

Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public class InterstitialAdManager : MonoBehaviour
interstitialAd.OnAdDisplayFailed += OnAdDisplayFailed;
interstitialAd.OnAdClicked += OnAdClicked;
interstitialAd.OnAdClosed += OnAdClosed;
interstitialAd.OnAdInfoChanged += OnAdInfoChanged; // Fires when the loaded ad swaps to a higher-paying network
interstitialAd.OnAdInfoChanged += OnAdInfoChanged; // Fires when the loaded ad updates after a new auction result

// Load the ad
LoadAd();
Expand Down Expand Up @@ -604,7 +604,7 @@ interstitialAd.OnAdClosed += (adInfo) =>
**Best practice:** Load the next ad immediately in this callback.

#### `OnAdInfoChanged`
Fired when ad information changes, such as when a new highest-paying ad becomes available.
Fired when ad information changes, such as when a new winning ad becomes available after auction.

**Signature:** `event Action<LevelPlayAdInfo>`

Expand All @@ -617,7 +617,7 @@ interstitialAd.OnAdInfoChanged += (adInfo) =>
};
```

**Important:** This event indicates that a new ad with potentially different revenue has become available. The SDK automatically selects the highest-paying ad when you call `ShowAd()`, but this event lets you know when the ad info has been updated. This is particularly important for revenue optimization as it signals when a better-paying ad has loaded.
**Important:** This event indicates that a new ad with potentially different revenue has become available. The SDK automatically selects the winning ad from the auction when you call `ShowAd()`, but this event lets you know when the ad info has been updated. This is particularly important for revenue optimization as it signals when a new auction winner has loaded.

**When it fires:**
- After a new ad loads with different properties than the previous one
Expand Down
2 changes: 1 addition & 1 deletion skills/levelplay-unity-integration/references/ios-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ After building to Xcode, you should see entries like this in Info.plist:

### What is ATT?

Starting with iOS 14.5, apps must request user permission before tracking them across apps and websites. This is required for personalized advertising. ATT must be requested **before** `LevelPlay.Init()` to maximise ad fill rate.
Apple requires ATT authorization before your app tracks users or accesses the device's advertising identifier on iOS 14.5+. Request ATT authorization before calling `LevelPlay.Init()` — this is both an Apple platform requirement and necessary for personalized ads (which also affects fill rate).

### Implementation

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@

## Overview

LevelPlay SDK provides APIs to comply with privacy regulations including GDPR, CCPA, and COPPA. These settings must be configured before SDK initialization to ensure compliance with regional privacy laws.
> **Note:** This skill provides technical integration guidance, including for LevelPlay's privacy APIs. It is not legal advice, and it does not determine which laws apply to your app — that depends on your users, your data practices, and your distribution. Consult your own legal counsel, and refer to [Regulation Advanced Settings for Unity](https://docs.unity.com/en-us/grow/levelplay/sdk/unity/regulation-advanced-settings) for the authoritative LevelPlay documentation.

LevelPlay SDK provides APIs to help facilitate privacy regulation requirements including GDPR, CCPA, and COPPA. These settings must be configured before SDK initialization.

**SDK Version Requirement:** SDK 9.4.0+ for current APIs (older deprecated APIs available in SDK 9.3.0 and lower)

Expand Down Expand Up @@ -352,7 +354,7 @@ If your app is child-directed:
1. **Disable personalized ads**: COPPA requires non-personalized ads only
2. **Google Play Families Policy**: If targeting children on Google Play:
- Set COPPA flag: `LevelPlayPrivacySettings.SetCOPPA(true)`
- Ensure ad networks comply with Google Play Families requirements
- Review Google Play Families requirements for child-directed apps
- Test thoroughly before submission
3. **App Store age ratings**: Set appropriate age ratings in both app stores
4. **Privacy policy**: Clearly state data collection practices for children
Expand Down Expand Up @@ -536,7 +538,7 @@ LevelPlay.SetMetaData("is_child_directed", "false");
4. **Provide UI controls**: Give users easy access to privacy settings
5. **Respect user choices**: Honor opt-outs and consent denials
6. **Update promptly**: When user changes preferences, apply immediately via privacy APIs
7. **Test thoroughly**: Verify compliance in all supported regions
7. **Test thoroughly**: Test your privacy settings in all supported regions
8. **Document clearly**: Include privacy policy links in your app
9. **Use consent management platforms**: Consider third-party CMPs for complex consent requirements
10. **Stay updated**: Privacy regulations evolve, monitor SDK updates for compliance changes
Expand Down
6 changes: 3 additions & 3 deletions skills/levelplay-unity-integration/references/rewarded-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RewardedAdManager : MonoBehaviour
rewardedAd.OnAdRewarded += OnAdRewarded;
rewardedAd.OnAdClosed += OnAdClosed;
rewardedAd.OnAdClicked += OnAdClicked;
rewardedAd.OnAdInfoChanged += OnAdInfoChanged; // Fires when the loaded ad swaps to a higher-paying network
rewardedAd.OnAdInfoChanged += OnAdInfoChanged; // Fires when the loaded ad updates after a new auction result

// Load the ad
LoadAd();
Expand Down Expand Up @@ -580,7 +580,7 @@ rewardedAd.OnAdClicked += (adInfo) =>
```

#### `OnAdInfoChanged`
Fired when ad information changes, such as when a new highest-paying ad becomes available.
Fired when ad information changes, such as when a new winning ad becomes available after auction.

**Signature:** `event Action<LevelPlayAdInfo>`

Expand All @@ -593,7 +593,7 @@ rewardedAd.OnAdInfoChanged += (adInfo) =>
};
```

**Important:** This event indicates that a new ad with potentially different revenue has become available. The SDK automatically selects the highest-paying ad when you call `ShowAd()`, but this event lets you know when the ad info has been updated. This is particularly important for revenue optimization as it signals when a better-paying ad has loaded.
**Important:** This event indicates that a new ad with potentially different revenue has become available. The SDK automatically selects the winning ad from the auction when you call `ShowAd()`, but this event lets you know when the ad info has been updated. This is particularly important for revenue optimization as it signals when a new auction winner has loaded.

**When it fires:**
- After a new ad loads with different properties than the previous one
Expand Down