Skip to main content
The CloudX Unity SDK enables monetization of your Unity games with banner, MREC, interstitial, and rewarded ads across iOS and Android.

Installation

The CloudX Unity SDK is distributed as a .unitypackage file.
  1. Download the latest CloudXSdk-4.1.3.unitypackage from GitHub Releases
  2. In Unity, go to Assets > Import Package > Custom Package
  3. Select the downloaded .unitypackage file
  4. Import all assets when prompted
The External Dependency Manager will automatically resolve Android and iOS dependencies.

Ad Network Adapters

The CloudX SDK requires ad network adapters to serve ads. Enable them by uncommenting the relevant lines in Assets/CloudXSdk/Editor/CloudXDependencies.xml. See the Adapters section for per-adapter setup instructions, including iOS Info.plist requirements.
At least one adapter is required for the SDK to serve ads.

Initialization

Initialize the SDK before loading any ads. You can optionally configure user and app properties before initialization.
using CloudX;
using UnityEngine;

public class MyGameManager : MonoBehaviour
{
    void Start()
    {
        InitializeCloudX();
    }

    void InitializeCloudX()
    {
        // Pre-initialization configuration (optional)
        CloudXSdk.SetHashedUserId("hashed-user-id");
        CloudXSdk.SetUserKeyValue("user_level", "premium");
        CloudXSdk.SetAppKeyValue("app_version", "1.0.0");

        // Subscribe to initialization callbacks before initializing
        CloudXInitializationCallbacks.OnSdkInitializedEvent += OnSdkInitialized;
        CloudXInitializationCallbacks.OnSdkInitializationFailedEvent += OnSdkInitializationFailed;

        // Initialize SDK
        var config = CloudXInitializationConfiguration.Create("YOUR_APP_KEY").Build();
        CloudXSdk.Initialize(config);
    }

    private void OnSdkInitialized(CloudXSdkConfiguration config)
    {
        Debug.Log("CloudX SDK initialized successfully");
        // Now you can load ads
    }

    private void OnSdkInitializationFailed(CloudXError error)
    {
        Debug.LogError($"SDK initialization failed: {error}");
    }
}
Subscribe to CloudXInitializationCallbacks events before calling Initialize() to receive initialization results.

Ad Formats

CloudX Unity SDK supports banner, MREC, interstitial, and rewarded ad integrations. Use the format-specific guides for implementation details:

Banner & MREC ads

Display ads at a fixed screen position with optional refresh control.

Interstitial ads

Load and show full-screen interstitial placements.

Rewarded ads

Reward users after completed rewarded ad views.

Advanced Features

Privacy Controls

You can override consent state before initialization when your app is not using a CMP.
// Optional manual privacy overrides before Initialize()
CloudXSdk.SetHasUserConsent(true);
CloudXSdk.SetDoNotSell(false);

// Pass null to clear the manual override and defer back to CMP or IAB signals
CloudXSdk.SetHasUserConsent(null);
CloudXSdk.SetDoNotSell(null);
  • SetHasUserConsent(bool?) sets the GDPR consent override.
  • SetDoNotSell(bool?) sets the CCPA do-not-sell override.
  • IAB consent and privacy signals take precedence over these manual overrides when available.

iOS ATT Usage Description

Starting with Unity SDK 2.2.4, the iOS post-process step adds NSUserTrackingUsageDescription automatically if your app has not already defined it in Info.plist.
  • Default value: This uses device info for more personalized ads and content
  • If you already provide NSUserTrackingUsageDescription, CloudX leaves your existing value unchanged.
  • Set your own copy in Info.plist if you want custom ATT prompt wording.

User Targeting

Configure user and app properties for better ad targeting. Call these methods before Initialize.
// Set hashed user ID
CloudXSdk.SetHashedUserId("hashed-user-id-12345");

// Set user-level key-value pairs
CloudXSdk.SetUserKeyValue("user_level", "premium");
CloudXSdk.SetUserKeyValue("age_group", "25-34");

// Set app-level key-value pairs
CloudXSdk.SetAppKeyValue("app_version", "1.0.0");
CloudXSdk.SetAppKeyValue("build_number", "123");

// Clear all custom key-values
CloudXSdk.ClearAllKeyValues();

Revenue Tracking

All ad formats provide revenue callbacks through the OnAdRevenuePaid event. The CloudXAd object contains revenue information:
CloudXAdsCallbacks.Banner.OnAdRevenuePaid += (ad) =>
{
    Debug.Log($"Revenue: ${ad.Revenue:F4}");
    Debug.Log($"Network: {ad.NetworkName}");
    Debug.Log($"Ad Unit: {ad.AdUnitId}");
    Debug.Log($"Ad Format: {ad.AdFormat}");
    Debug.Log($"Placement: {ad.Placement}");
    Debug.Log($"Network Placement: {ad.NetworkPlacement}");

    // Track revenue in your analytics
    TrackRevenue(ad.Revenue, ad.NetworkName);
};