Skip to main content

Requirements

  • Playtolia SDK (with Authentication and Billing enabled)

Subscriptions API

Playtolia Subscriptions API allows you to manage recurring subscriptions, premium memberships, and time-based services. The API handles subscription lifecycle events, renewal tracking, and provides real-time subscription status updates. Use PlaytoliaSubscriptions to check subscription validity and manage premium features based on subscription state.
Subscription data is only available after successful authentication. PlaytoliaSubscriptions functions will return empty lists or null values until the player is logged in.

Getting player subscriptions

Import the PlaytoliaSDK.Runtime to your script by adding the using directive
SubscriptionsController.cs
using PlaytoliaSDK.Runtime;
Call the GetSubscriptions function to retrieve all player subscriptions
SubscriptionsController.cs
// Get all player subscriptions
var subscriptions = PlaytoliaSubscriptions.GetSubscriptions();
Subscriptions are automatically refreshed when players make purchases or when subscription status changes. If you need to refresh subscriptions manually, use PlaytoliaSubscriptions.Refresh() function.

Getting specific subscriptions

You can retrieve specific subscriptions using different identifiers
SubscriptionsController.cs
// Get subscription by ID
var subscription = PlaytoliaSubscriptions.GetSubscriptionById("premium_monthly");

// Get subscriptions by store item ID
var subscriptionsByItem = PlaytoliaSubscriptions.GetSubscriptionsByItemId("premium_subscription");

// Get active subscriptions only
var activeSubscriptions = PlaytoliaSubscriptions.GetActiveSubscriptions();

Understanding PlayerSubscription structure

Each PlayerSubscription contains the following information:
  • Id: Unique identifier for the subscription
  • AutoRenew: Whether the subscription will automatically renew
  • CreatedAt: When the subscription was created
  • ExpiresAt: When the subscription expires
  • StartsAt: When the subscription becomes active
  • Status: Current subscription status (subscribed, active, expired, cancelled)
  • StoreItem: The store item associated with this subscription
  • IsActive: Property indicating if subscription is “active”
  • IsExpired: Property indicating if subscription has expired
SubscriptionInfo.cs
public void DisplaySubscriptionInfo(PlayerSubscription subscription)
{
    Debug.Log($"Subscription ID: {subscription.Id}");
    Debug.Log($"Status: {subscription.Status}");
    Debug.Log($"Auto Renew: {subscription.AutoRenew}");
    Debug.Log($"Expires: {subscription.ExpiresAt}");
    Debug.Log($"Is Active: {subscription.IsActive}");
    Debug.Log($"Store Item: {subscription.StoreItem.Name}");
}

Checking for premium subscriptions

Here’s how to check if a player has an active premium subscription:
PremiumManager.cs
using PlaytoliaSDK.Runtime;
using UnityEngine;

public class PremiumManager : MonoBehaviour
{
    void Start()
    {
        // Listen to subscription changes
        PlaytoliaSubscriptions.AddListener(CheckPremiumStatus);

        // Initial check
        CheckPremiumStatus();
    }

    void CheckPremiumStatus()
    {
        var activeSubscriptions = PlaytoliaSubscriptions.GetActiveSubscriptions();

        // Check if player has any active premium subscription
        bool hasPremium = activeSubscriptions.Count > 0;

        if (hasPremium)
        {
            EnablePremiumFeatures();
        }
        else
        {
            DisablePremiumFeatures();
        }
    }

    void EnablePremiumFeatures()
    {
        Debug.Log("Premium features enabled!");
        // Enable premium UI, unlock content, etc.
    }

    void DisablePremiumFeatures()
    {
        Debug.Log("Premium features disabled");
        // Show subscription upgrade prompts
    }

    void OnDestroy()
    {
        PlaytoliaSubscriptions.RemoveListener(CheckPremiumStatus);
    }
}

Listen to subscription changes

Subscriptions can change during runtime due to:
  • Purchases: New subscriptions from successful purchases
  • Expiration: Subscriptions expiring
  • Renewals: Automatic subscription renewals
  • Cancellations: Players cancelling subscriptions
  • Manual refresh via PlaytoliaSubscriptions.Refresh()
SubscriptionTracker.cs
public void Start()
{
    PlaytoliaSubscriptions.AddListener(() => {
        var subscriptions = PlaytoliaSubscriptions.GetSubscriptions();
        var activeSubscriptions = PlaytoliaSubscriptions.GetActiveSubscriptions();

        Debug.Log($"Total subscriptions: {subscriptions.Count}");
        Debug.Log($"Active subscriptions: {activeSubscriptions.Count}");
    });
}

Subscriptions vs Entitlements

Important: PlaytoliaSubscriptions is used specifically for managing recurring subscription services. For non-consumable purchases (permanent unlocks, one-time premium features), use PlaytoliaEntitlements instead. Entitlements handle permanent or time-limited access granted through purchases, while subscriptions handle recurring payment services.

Need to implement purchases?

Use the Store API to handle subscription purchases that automatically create subscription records for your players.

In-game Stores

Learn how to setup subscription purchases using PlaytoliaStore