Fides Documentation – Ethyca

Janus SDK Mobile Documentation

Introduction

Janus SDK enables mobile applications to implement privacy consent management features with minimal development effort. The SDK is available for Android, iOS, and Flutter, providing a consistent API across platforms while respecting platform-specific conventions.

With the Janus SDK, you can:

This documentation covers common concepts that apply across all platforms, as well as links to platform-specific implementation details.

Common Concepts

Core Features

All Janus SDK implementations provide the following core features:

Installation

Each platform has a specific installation process. Please refer to the platform-specific implementation guides for detailed instructions:

Initialization

Before using any Janus SDK features, you must initialize the SDK early in your app's lifecycle. The initialization process requires:

Required Configuration Values:

Optional Configuration Values:

You can obtain the apiHost, propertyId, and privacyCenterHost from your Ethyca account manager, if you don't have them already.

For platform-specific initialization code, please refer to the implementation guides linked above.

Privacy Experience Management

By default, Janus automatically shows the privacy experience after successful initialization, given you have a privacy experience configured for the given region.

If you wish to customize the user experience flow outside of this default, the SDK provides helpful methods to manage when and how the privacy experience is displayed to users.

Refer to the platform-specific implementation guides for details on how to manage the privacy experience display.

Consent Management

The SDK provides methods to access and manage user consent choices:

Region Detection

The SDK provides region detection capabilities for privacy compliance:

WebView Integration

The SDK provides specialized WebView integration to synchronize consent preferences with web content:

Advanced Usage

Consent Event Handling

Subscribe to consent events to be notified when the user updates their preferences:

Android Example:

// Listen for consent events
listenerId = Janus.addConsentEventListener { event ->
    when (event.eventType) {
        JanusEventType.EXPERIENCE_SELECTION_UPDATED -> {
            // Do something
        }
        // Handle other events...
    }
}

// Remove listener when no longer needed
Janus.removeConsentEventListener(listenerId)

Full list of event.type:

Manual Experience Control

If you want to manually control when the privacy experience is shown:

  1. Disable automatic display in the configuration:
autoShowExperience: false
  1. Check if the experience should be shown and display it at the appropriate time:
// Android
if (Janus.shouldShowExperience) {
    Janus.showExperience(activity)
}

SDK Interface Reference

Key Methods/Properties:

Apple App Tracking Transparency (ATT)

On iOS, the Janus SDK integrates natively with Apple's App Tracking Transparency framework. When enabled, the SDK requests the system ATT permission dialog before showing the privacy experience. If the user denies or restricts tracking, all non-exempt notices are automatically pre-populated to opt-out and their toggles are locked.

Configuration:

For full setup instructions including the required NSUserTrackingUsageDescription Info.plist key, see the Apple ATT guide.