For Developers

11 integration surfaces. One wire contract.

Native SDKs for Python, Node, Web, React Native, Android, iOS, Flutter, Unity and Rust — plus drop-in adx.js and low-bandwidth adx-lite.js tags. More platform coverage than any independent ad network, all speaking the same versioned contract.

SDK hub

Pick your platform, paste, ship

Every SDK below is generated from one authoritative wire contract, with SQL-filter-safe encoding, fraud-safe user agents and IAB viewability handled for you.

Read the full documentation

Web (drop-in tag)

adx.js / adx-lite.js

No build step — one script tag

<script async src="https://api.adx.theaimart.co/static/sdk/v1/adx.js"></script>
<div id="ad-slot"></div>
<script>
  TaimAds.init({ apiKey: "YOUR_API_KEY" });
  TaimAds.createBanner({ slotId: "YOUR_SLOT_ID", container: "ad-slot" });
</script>

Web (npm)

@theaimart/adx-web

npm install @theaimart/adx-web

import { AdxWebClient } from "@theaimart/adx-web";

const client = new AdxWebClient({ apiKey: "YOUR_API_KEY" });
const ad = await client.requestAd({ slotId: "YOUR_SLOT_ID", pageUrl: location.href });

Node (server)

@theaimart/adx-node

npm install @theaimart/adx-node

import { Adx } from "@theaimart/adx-node";

const adx = new Adx({ apiKey: process.env.ADX_API_KEY });
const ad = await adx.requestAd({ slotId: "YOUR_SLOT_ID", pageUrl: req.url });

Python

theaimart-adx

pip install theaimart-adx

from theaimart_adx import Adx

adx = Adx(api_key="YOUR_API_KEY")
ad = adx.request_ad(slot_id="YOUR_SLOT_ID", page_url="https://example.com")

Rust (server)

theaimart-adx

cargo add theaimart-adx

let adx = theaimart_adx::Adx::new("YOUR_API_KEY");
let ad = adx.request_ad(&AdRequest { slot_id: Some("YOUR_SLOT_ID"), ..Default::default() });

Android (Kotlin)

co.theaimart:adx-android

implementation("co.theaimart:adx-android:1.0.0")

val adx = Adx(apiKey = "YOUR_API_KEY")
val banner = BannerAdView(context)
banner.load(adx, AdRequest(slotId = "YOUR_SLOT_ID"))

iOS (Swift)

TheaimartAdx

.package(url: "https://github.com/theaimartco/theaimart-adx-sdks.git", from: "1.0.0")

let adx = Adx(apiKey: "YOUR_API_KEY")
let banner = BannerAdView(frame: .zero)
banner.load(adx, request: AdRequest(slotID: "YOUR_SLOT_ID"))

Flutter (Dart)

theaimart_adx

flutter pub add theaimart_adx

BannerAd(
  apiKey: 'YOUR_API_KEY',
  slotId: 'YOUR_SLOT_ID',
)

React Native

@theaimart/adx-react-native

npm install @theaimart/adx-react-native

import { BannerAd } from "@theaimart/adx-react-native";

<BannerAd apiKey="YOUR_API_KEY" slotId="YOUR_SLOT_ID" />

Unity (C#)

co.theaimart.adx (UPM)

Add co.theaimart.adx via Unity Package Manager

var adx = new Adx("YOUR_API_KEY");
StartCoroutine(adx.RequestAd(new AdRequest { SlotId = "YOUR_SLOT_ID" }, ad => {
    if (ad.Filled) { /* render ad.Creative.AssetUrl */ }
}));

Low-bandwidth web

adx-lite.js

For 2G/3G-heavy audiences — a few KB, zero dependencies

<script async src="https://api.adx.theaimart.co/static/sdk/v1/adx-lite.js"></script>
<div id="ad-slot"></div>
<script>
  TaimAds.init({ apiKey: "YOUR_API_KEY" });
  TaimAds.createBanner({ slotId: "YOUR_SLOT_ID", container: "ad-slot" });
</script>
Engineering standard

Hardening you don't have to build

Every SDK enforces the same production guarantees, derived from real backend behavior.

Fail-closed rendering

Any error, non-200 or unparseable response renders nothing. An ad can never crash or block your app.

IAB viewability built in

One beacon per ad, fired at ≥50% visible for ≥1 second, deduplicated client-side — MRC-style counting by default.

Sandboxed creatives

HTML and OpenRTB markup render inside a sandboxed iframe/WebView. Hostile creatives can't touch your DOM or smuggle javascript: URLs.

One wire contract

Every SDK implements the same versioned REST contract, so behavior is identical across all 11 surfaces.

Made for real networks

adx-lite.js serves ads in a few KB for 2G/3G users — an audience most ad networks silently drop.

No SDK? Use OpenRTB

Already on Prebid or another exchange? Point it at our inbound OpenRTB 2.5 endpoint — connect from the publisher dashboard in minutes.

FAQ

Developer FAQ

How many platforms does adx support?

+

Eleven integration surfaces: Python, Node, Web (npm), React Native, Android/Kotlin, iOS/Swift, Flutter/Dart, Unity/C# and Rust SDKs, plus the adx.js drop-in tag and adx-lite.js for low-bandwidth users. Most independent ad networks ship two or three.

Is the API key safe to embed in my app?

+

Yes. The api_key is a public client identifier — like any ad SDK's publisher key — designed to be shipped in client binaries. It is not a server secret and grants no account access.

Will the SDK slow my site or app down?

+

No. SDKs are thin, dependency-light clients that load asynchronously and fail closed. On the web, ads never block content or hurt Core Web Vitals; adx-lite.js is only a few kilobytes.

Can I integrate without any SDK?

+

Yes — two ways. Use a plain HTML ad tag generated in the dashboard, or sell through your existing header-bidding stack via our inbound OpenRTB 2.5 endpoint (Header Bidding tab in the publisher dashboard).

How do I test my integration?

+

Every account includes a sandbox mode that serves real creative payloads with zero billing or tracking side effects. Toggle it from the Sandbox tab in the dashboard.

Integrate in an afternoon

Create a site, mint an API key and serve your first (sandbox) ad before your coffee gets cold.

Start building