LogoLogo
  • Platform Overview
  • 🗺️Guides
    • Getting Started
    • Users
      • Integrate the User SDK
      • Registration
      • Authentication
      • SDK Releases
      • API Reference
    • Entitlements
      • Administrative API
        • Integrating the Administrative API
        • Entitlement Definitions
        • Managing Entitlements Sets
        • Managing Entitlements Sequences
        • Managing User Entitlements
        • API Schema
      • End-user API
        • Integrate the Entitlements SDK
        • Redeeming Entitlements
        • Retrieving Entitlements
        • SDK Releases
        • API Reference
    • Sudos
      • Integrate the Sudo Profiles SDK
      • Sudo Entitlements
      • Manage Sudos
      • SDK Releases
      • API Reference
    • Telephony
      • Integrate the Telephony SDK
      • Manage Phone Numbers
      • Text Messaging
      • Voice Calling
      • Telephony Simulator
      • SDK Releases
      • API Reference
    • Email
      • Integrate the Email SDK
      • Email Entitlements
      • Manage Email Addresses
      • Sending & Receiving Email
      • Manage Email Folders
      • Draft Email Messages
      • Manage Email Address Blocklists
      • Email Address Public Information
      • Pagination
      • Caching
      • Configuration Data
      • Email Notifications
      • SDK Releases
      • API Reference
    • Decentralized Identity
      • Edge Agent
        • Relay SDK
          • Integrate the Relay SDK
          • Relay Entitlements
          • Manage Relay Postboxes
          • Manage Relay Messages
          • Receiving Messages
          • SDK Releases
        • Edge Agent SDK
          • Integrate the Edge Agent SDK
          • Agent Management
          • Manage Wallets
          • Establishing Connections
          • Manage Connections
          • Messaging
          • Manage DIDs
          • Accepting New Credentials
          • Manage Credentials
          • Present Credentials for Verification
          • Utilize Alternative Cryptography Providers
          • SDK Releases
          • Standards and Protocols
      • Cloud Agent
        • Cloud Agent Admin API
          • Integrate the Cloud Agent Admin API
          • Aries Interop Profile (AIP)
            • Connection Exchanges
            • Credential Exchanges
            • Proof Exchanges
          • Connections
          • Basic Messages
          • Credentials
            • Anoncreds Credentials
              • Schemas
              • Credential Definitions
            • W3C Credentials
          • Audit Logs
          • API Schema
          • Error Codes
          • Standards and Protocols
    • Virtual Cards
      • Integrate the Virtual Cards SDK
      • Virtual Cards Entitlements
      • Virtual Cards Transaction Velocity Constraints
      • Key Management
      • Manage Funding Sources
      • Manage Virtual Cards
      • Manage Transactions
      • Configuration Data
      • Pagination
      • Caching
      • SDK Releases
      • API Reference
    • Virtual Cards Simulator
      • Integrate the Virtual Cards Simulator SDK
      • Simulate Authorizations
      • Simulate Debits
      • Simulate Refunds
      • Simulate Reversals
      • Merchants and Currencies
      • SDK Releases
      • API Reference
    • Virtual Private Network
      • Integrate the VPN SDK
      • VPN Entitlements
      • Manage Servers
      • Manage Connection
      • Observe VPN Related Events
      • SDK Releases
      • API Reference
      • Frequently Asked Questions
    • Secure ID Verification
      • Integrate the Secure ID Verification SDK
      • List Supported Countries
      • Verify an Identity
      • Check Secure ID Verification Status
      • Use the Secure ID Verification Simulator
      • SDK Releases
      • API Reference
    • Password Manager
      • Integrate the Password Manager SDK
      • Accessing the Password Manager
      • Managing Password Vaults
      • Managing Password Vault Items
      • Vault Import and Export
      • Password Utilities
      • Password Manager Entitlements
      • Password Vault Security
      • SDK Releases
      • API Reference
    • Ad/Tracker Blocker
      • Integrate the Ad/Tracker Blocker SDK
      • Manage Rulesets
      • Blocking Ads and Trackers
      • Manage Exceptions
      • SDK Releases
      • API Reference
    • Site Reputation
      • Integrate the Site Reputation SDK
      • Use the Site Reputation SDK
      • SDK Releases
      • API Reference
  • 💡Concepts
    • Sudo Digital Identities
  • 🧱Development
    • Versioning
  • 🏢Administration
    • Admin Console Roles
  • ❓Get Help
    • Request a Demo
    • Report an Issue
Powered by GitBook
On this page
  • Prerequisites
  • Get Started
  • Integrate the JS SDK
  • Initialize Web Assembly
  • Instantiate an Ad/Tracker Blocker Client
  • Custom Storage Provider
  • Check Entitlements
  • Reset
  • Integrate the iOS SDK
  • Integrate the Android SDK
  1. Guides
  2. Ad/Tracker Blocker

Integrate the Ad/Tracker Blocker SDK

Integrate the Ad/Tracker Blocker SDK into your application

PreviousAd/Tracker BlockerNextManage Rulesets

Last updated 3 years ago

Prerequisites

Get Started

Integrate the JS SDK

To use the Ad/Tracker Blocker SDK in a Web or Node.js project, you must add @sudoplatform/sudo-ad-tracker-blocker as a dependency to your project.

yarn add '@sudoplatform/sudo-ad-tracker-blocker'
# or
npm install --save '@sudoplatform/sudo-ad-tracker-blocker'

In order to instantiate an Ad/Tracker Blocker client, make sure you have followed instructions for and (see above).

Initialize Web Assembly

./node_modules/@sudoplatform/ad-tracker-blocker-client/wasm/filter_engine_bg.wasm

You should instruct your bundler to add this file to your static assets, or deploy it to your CDN of choice.

import { initWasm } from '@sudoplatform/sudo-ad-tracker-blocker'

async function initOnce() {
  await initWasm((file) => `/${file}`)
}

Important: You should only invoke initWasm one time in your application. It does not need to be run every time you instantiate a SudoAdTrackerBlockerClient.

Instantiate an Ad/Tracker Blocker Client

import { SudoAdTrackerBlockerClient } from '@sudoplatform/sudo-ad-tracker-blocker'
import { DefaultSudoUserClient } from '@sudoplatform/sudo-user'

const sudoUserClient = new DefaultSudoUserClient()

const client = new SudoAdTrackerBlockerClient({
  sudoUserClient,
})

Custom Storage Provider

By default, DefaultSudoUserClient will not persist any cached data or user preferences. To use persistent storage, you should pass a custom storage provider that implements the StorageProvider interface.

import { StorageProvider } from '@sudoplatform/sudo-ad-tracker-blocker'

class CustomStorage implements StorageProvider {
  // Implement StorageProvider functions here
  // See lib/storage-provider.d.ts for interface specifics
}

const client = new SudoAdTrackerBlockerClient({
  storageProvider: new CustomStorage()
  // ...
})

Check Entitlements

// val client: SudoAdTrackerBlockerClient

val entitlementName = client.ENTITLEMENT_NAME

Reset

To reset the Ad/Tracker Blocker you can use the reset method. This will clear all cached data and reset user preferences back to defaults.

await client.reset()

Integrate the iOS SDK

pod 'SudoAdTrackerBlocker'

Install pod dependencies by running the following command in your project directory:

pod install --repo-update

This will update the local CocoaPods repository and install the latest version of the Ad/Tracker Blocker SDK.

To instantiate a client in your application, add the following:

let userClient: SudoUserClient!
let config = try SudoAdTrackerBlockerConfig(userClient: userClient)
let client = DefaultSudoAdTrackerBlockerClient(config: config)

You only need one client instance for a given user per device. Instantiating multiple clients with the same configuration and using them at the same time may cause unexpected runtime errors to occur.

Integrate the Android SDK

To use the Ad/Tracker Blocker SDK in an Android project, add this line to the dependencies section of the app module build.gradle and run Gradle sync.

dependencies {
    implementation 'com.sudoplatform:sudoadtrackerblocker:1.0.0'
}

To instantiate a client in your application, add the following:

val logger = // ... use your implemenation of logger
val userClient = // ... see "Users" docs

val sudoAdTrackerBlocker = SudoAdTrackerBlockerClient.builder()
            .setContext(this)
            .setSudoUserClient(sudoUserClient)
            .setLogger(logger)
            .build()

You only need one client instance for a given user per device. Instantiating multiple clients with the same configuration and using them at the same time may cause unexpected runtime errors to occur.

The SudoAdTrackerBlockerClient class uses a module to provide high performance filtering and thus needs to load a .wasm file at runtime. You can find this file in the following location after installing the Ad/Tracker Blocker package via npmoryarn:

Then use the initWasm helper function to instruct the SDK how to locate this file so that it can be fetched and loaded into the Web Assembly runtime. Check out the to see an example.

When creating a new instance of SudoAdTrackerBlockerClient you must provide an instance of SudoUserClient via the sudoUserClient property. This is used for obtaining platform authentication tokens. See the section for more information about SudoUserClient.

Import the ENTITLEMENTS_NAME string constant that can be compared with entitlements retrieved from the Entitlements SDK method.

To use the Ad/Tracker Blocker SDK in an iOS project add this line to your :

In order to instantiate an Ad/Tracker Blocker client, make sure you have followed instructions for and (see above)

See it in action. Be sure to take a look at the on GitHub that our team published as a reference for integrating the Ad/Tracker Blocker SDK into your app as quickly and seamlessly as possible.

In order to instantiate an Ad/Tracker Blocker client, make sure you have followed instructions for and (see above)

See it in action. Be sure to take a look at the open source on GitHub that our team published as a reference for integrating the Ad/Tracker Blocker SDK into your app as quickly and seamlessly as possible.

🗺️
wasm
Sample App
Users
open-source iOS sample app
Android sample app
Complete the Getting Started Guide
Integrate the User SDK
Getting Started
User SDK
Integrate the JS SDK
Integrate the iOS SDK
Integrate the Android SDK
Prerequisites
Getting Started
User SDK
Prerequisites
Getting Started
User SDK
Prerequisites
Podfile
getEntitlements