Integration FAQ
Getting Started & Setup
Which platforms does AppLixir support? HTML5 web (the primary target), Unity WebGL, Cocos, WordPress, iOS, and Android. See Integration Guides for the per-platform walkthroughs.
How do I start the integration? Sign up at client.applixir.com/register, add your site to get an API key, and follow the HTML5 Integration guide (or your platform of choice).
What is the ads.txt file and why is it required?
It's a small text file you host at the root of your domain (yourdomain.com/ads.txt) to declare AppLixir as an authorized seller of your inventory. Without correct ads.txt entries, programmatic demand will not bid. The required lines are listed in Step 6: Updating ads.txt.
Technical Execution
What JS function do I call to show a video?
The v6 SDK exposes initializeAndOpenPlayer({...}). Example:
initializeAndOpenPlayer({
apiKey: "xxxx-xxxx-xxxx-xxxx",
adStatusCallbackFn: (status) => {
if (status.type === "complete") grantReward();
}
});
See Step 3: Initializing Video Ad for the full API and options.
Can I check if an ad is available before trying to play it?
Yes — the v6 SDK supports preloadAd() so you can keep an ad warm and only show a "Watch Ad" button once one is ready. See the Preload for instant reveal section.
How do I handle ad completion?
Set adStatusCallbackFn in your initialize call. The callback receives { type, ad?, error? } where type is the IMA event name. Grant the reward only when status.type === "complete" (and ideally only after your server-side webhook confirms it — see below).
Server & Security
What is a Server-to-Server (S2S) callback? A secure way to notify your backend directly when a reward is earned, verified with an MD5 signature derived from a shared secret. This prevents users from spoofing rewards by tampering with client-side code. Configure it in Settings → Callback. Full payload and signature guide: Step 4: Setting up Callbacks.
Should I grant rewards client-side or server-side?
Use the client-side status.type === "complete" only for optimistic UI (e.g., show "+50 coins!"). Always reconcile against the server webhook before persisting the reward — the webhook is the source of truth.
Can I test ads on localhost?
Yes. Use your sandbox API key from the dashboard. Some demand partners filter localhost, so for full-fidelity testing serve over a real domain (e.g., a staging URL).
Troubleshooting & Testing
Why am I seeing "No Ads VAST Response" (Error 303)?
No bidder returned an ad for this user's geo/device at that moment. It's not a bug — it's normal demand variability. Catch it via the callback (type === "noAd") and gracefully hide the prompt.
How do I test without affecting my live revenue? Use the sandbox / test API key from your dashboard. Test traffic doesn't accrue revenue and is excluded from reporting.
What is the behavior when no videos are available?
The callback fires with a non-complete type (e.g., noAd or error). Use that to hide the reward prompt or show a fallback message.
Integration Workflow Overview
- Sign up + add site → get your API key
- Drop in the SDK + anchor div → see Step 2
- Initialize the player with your callback → Step 3
- Wire the web callback for server-side reward grant → Step 4
- Update ads.txt → Step 6
- Submit Complete Application → ads go live after approval
Still stuck? Email support@applixir.com and we'll get back within one business day.