Change Log

[1.2.0] - 2026-09-07

Added

  • Reward Center (optional module). When the Reward Center package is installed, CiaoSDK automatically initializes it, forwards event names to RewardCenter.ReportEvent, and forwards deep links to RewardCenter.HandleDeepLink. Studios do not need any extra integration code.
  • 'Update' menu item in the Ciao Games menu and Setup Window.

[1.1.0] - 2026-08-14

Added

  • Support for multiple ad units per format (interstitial and rewarded). At show time, the SDK picks the highest eCPM ad unit, falling back to rotation when revenue data is unavailable.
  • New analytics event ciao_ad_competition reporting winner, worst, and selection method.
  • New config schema fields: legacyLevelEventName and legacyLevelDigitsFormat. Fields are used only when mnPrefix=true.

Changed

  • Config schema: interstitial and rewarded are now lists of ad unit IDs. banner is a list of one.
  • Config download now bypasses HTTP cache so studios always receive the latest version.
  • Changed Singular event reporting in cases of mnPrefix=true, to support legacy games.

[1.0.1] - 2026-08-07

Changed

  • LevelPlay adapter debug is now controlled by CiaoSDKLogger.CurrentLogLevel. Enabled only at Info; disabled at Warn/Error/None. Silences vendor adapter noise for studios shipping at production log levels.

Fixed

  • Singular: privacy flags (TrackingOptIn, LimitDataSharing, TrackingUnder13, SetLimitAdvertisingIdentifiers) are now applied before InitializeSingularSDK per Singular's guidance, ensuring they are reflected in the first-session payload.

[1.0.0] - 2026-08-06

First general release.

Added

  • Consent snapshot event (ciao_consent) sent to MMP and Analytics on Initialize and UpdateConsent, for dashboard visibility on how studios are wiring consent. Fields: gdpr_consent, ccpa_do_not_sell, is_child_directed, is_under_age_of_consent, att_granted, gdpr_networks_source.

Changed

  • Singular: Opt-In consent pattern per Singular's official guidance. InitializeSingularSDK() is now called only after gdprConsent=true. Declined users produce no session and no events. UpdateConsent(true) later triggers deferred initialization.
  • ByteBrew: Opt-In consent pattern. InitializeByteBrew() is now called only after gdprConsent=true and non-child-directed. Same deferred behavior on later consent updates.

[0.7.6] - 2026-08-03

Fixed

  • LevelPlay consent: use LevelPlay.SetConsent(bool) (LevelPlay 9.4+) instead of LevelPlayPrivacySettings.SetGDPRConsent(bool) (LevelPlay 9.5+), restoring compatibility.

[0.7.5] - 2026-08-03

Fixed

  • ByteBrew analytics: possible NRE on SendEvent when Initialize() bailed out early. Event queue is now constructed first.
  • Singular consent: opting back in after gdprConsent=false did not resume tracking. Opt-in path now also resumes.
  • LevelPlay consent: Always wire primary GDPR flag SetGDPRConsent(bool).

Changed

  • Added diagnostic logs around platform key writes in ByteBrewAnalyticsProvider (no key values logged).

[0.7.4] - 2026-07-30

Changed

  • Removed maxLevel cap from custom level event reporting.

[0.7.3] - 2026-07-20

Changed

  • Custom level events now include level 1 (level_0001). Previously levels below 2 were silently skipped from Singular custom level reporting.

[0.7.2] - 2026-07-20

Fixed

  • Singular SDK logging now respects CiaoSDKLogger.CurrentLogLevel. Only LogLevel.Info enables verbose Singular output that logs Singular API key.

[0.7.1] - 2026-07-15

Fixed

  • InstallSourceChecker detects emulator and sideload installs. Application.installMode fallback removed.
  • Anti-cheat events fired during initialization are no longer lost. MMP and Analytics providers are now initialized before the anti-cheat provider, so early detections reach the reporting sinks.

Changed

  • LevelCompletedArgs: currencyName and currencyBalance are now optional. Analytics events omit these fields when currencyName is empty.
  • TimeChecker now reads server time from the HTTP Date header of a configurable endpoint (default: www.example.com), replacing the previous JSON time API. More reliable and globally reachable.

[0.7.0] - 2026-07-14

Added

  • Remote Config support via ByteBrew: CiaoSDKAnalytics.RefreshConfig, IsConfigReady, GetConfig.
  • User attribute tagging for segmentation: CiaoSDKAnalytics.SetUserAttribute (string/int/double/bool).
  • CiaoSDKAnalytics.GetUserId- returns the ByteBrew user ID.
  • CiaoSDKAnalytics.StartPushNotifications - enables ByteBrew push notifications (studio-side platform + dashboard setup required).

[0.6.0] - 2026-07-09

Added

  • Events queue in Singular and ByteBrew providers. Events are queued and processed one at a time with a configurable delay, preventing race conditions during provider initialization.
  • ciaosdk_version global property attached to all Singular and ByteBrew events.
  • Auto-sync of SDK version into CiaoSDKSettings on every Editor domain reload.

Changed

  • Providers no longer drop events that arrive before initialization completes; events are queued and delivered once the provider is ready.

[0.5.2] - 2026-07-06

Fixed

  • Detect legacy vendor SDK imports (LevelPlay, Singular, ByteBrew) in Assets/ and block activation with a clear migration message.
  • Detect UPM vendor SDK version below required minimum and block with an update message.
  • Vendor SDK package definitions moved to sdkPackages.json.

Changed

  • Editor folder reorganized into PackageManagement/, SetupWizard/, Configuration/.

[0.5.1] - 2026-07-01

Fixed

  • iOS IAP v5: revenue now correctly reported to Singular (was showing as nil due to missing r attribute).
  • iOS IAP v5: receipt now works with StoreKit 2 by extracting the payload from Apple's JWS representation (Unity IAP v5's Order.Info.Receipt.Payload is empty on iOS).
  • IAP v5: restored flag now correctly forwarded to Singular (was being ignored due to overload resolution).

Changed

  • Renamed SingularMMPHelper.BuildIAPAttributes to BuildIOSIAPAttributes for clarity.
  • Cleaned up CiaoSDKTest.cs sample script (removed diagnostic logs, made IAP/ATT sections opt-in via comments).

[0.5.0] - 2026-06-30

This is the Pilot pre-release of CiaoSDK.

Changed

  • None - this is the Pilot pre-release version.

Fixed

  • None - initial Pilot pre-release.

Did this page help you?