Everything you need to launch.
Real, accurate steps for getting a campaign live or a placement integrated — no guesswork, nothing here that doesn't already work today.
Getting Started
Adnyro works the same way on both sides of the network: create an account, get approved, and you're live. There are two paths, depending on what you're here to do.
Launch a native campaign
Create campaigns, set targeting and budget, upload creatives, and track performance from your dashboard. No code required.
See the quick startIntegrate the widget
Add one snippet to your site to start showing native placements alongside your own content.
See the integration guideAdvertiser Quick Start
Everything here happens in your dashboard after creating an advertiser account — no integration work needed on your end.
Create your account and wait for approval
New accounts are reviewed before they can launch campaigns — this keeps the network brand-safe for publishers and other advertisers.
Add funds to your account balance
Your balance funds every click. Spend is deducted in real time as your campaigns run.
Create a campaign
Set your daily budget and CPC bid, upload creatives, and choose targeting by country, device, and site category.
Submit for review, then go live
Creatives are checked before they can serve. Once approved, your campaign starts competing for placements immediately.
Track performance
Your dashboard shows spend, clicks, and CTR as they happen, plus date-range reports you can export to CSV.
Conversion Tracking
Clicks and CTR tell you traffic quality; conversions tell you what that traffic actually did. Every click Adnyro sends you carries a signed mzclid parameter in the destination URL — capture it, and report back whenever that visitor completes something you care about.
Capture mzclid from the landing page URL
It arrives as a query parameter on every click we send, e.g. https://yoursite.com/landing?mzclid=abc123.... Store it (session, hidden form field, your own attribution table) for as long as your conversion window needs.
Report the conversion with a server-to-server call
No SDK, no JavaScript on your site required — a plain server-side HTTP request when the conversion happens is enough.
type is any label you choose — common ones are purchase, lead, signup, and add_to_cart — and shows up as-is in your campaign's conversion report. value is optional and denominated in USD; omit it (or send 0) for conversions that don't have a dollar value, like a signup.
Your campaign's exact postback URL, with your real domain and a live example, is always shown on that campaign's detail page in your dashboard — plus a "Send Test Conversion" button that fires one real, clearly-marked test event so you can confirm your integration without touching your live numbers.
Web Integration
The publisher widget is one HTML snippet — no build step, no dependencies. After creating a publisher account and adding a site, each placement you create gets its own embed code from your dashboard.
Create a placement and choose a type
Under-article, in-feed, in-article, sidebar, header strip, or mobile feed — each has its own default layout and sizing built for where it actually sits on the page, not just a label. This is set once in your dashboard, not in the embed code, and you can override the layout independently if a type's default isn't the right fit.
| Placement type | Default layout | Slots | Organic ratio |
|---|---|---|---|
| Under-article | Grid | 6 | 50% |
| In-feed | Grid | 4 | 70% |
| In-article | List | 1 | 0% (ads only) |
| Sidebar | List | 3 | 30% |
| Header strip | Horizontal | 1 | 0% (ads only) |
| Mobile feed | List | 5 | 40% |
"Organic ratio" is the share of slots filled with your own content (pulled from your site's feed) versus sponsored items — a placement with a 0% ratio, like in-article or header strip, is ad-only by design. Four layouts are available regardless of type: grid, horizontal scroll, list, and carousel (a scrollable strip with clickable prev/next controls).
Copy your placement's snippet
Every placement has its own key. The pattern is always the same two lines:
Paste it where you want the widget to appear
The script scans the page for any data-monetizd container and renders into it — you can place multiple placements on one page.
What loads, and what doesn't
- No cookies, no
localStorage— the widget reads and writes nothing to the visitor's browser beyond the page it's on. - Every sponsored item is labeled "Sponsored" in the rendered markup, not added after the fact.
- Viewability is measured with
IntersectionObserverand reported with a single batchedsendBeaconcall — no third-party trackers. - If the request fails for any reason, the container is simply left empty. It never breaks the surrounding page.
Theming Your Widget
The widget ships with a clean, neutral light style by default, and reads every color and shape value from a small set of CSS custom properties first — set any of them on your container element and the widget picks them up automatically. No JavaScript config needed.
Prefer not to touch CSS at all? Set the same values from your placement's page in the dashboard instead — changes apply immediately to the live widget, with nothing to re-copy or re-paste.
Example: matching a dark site theme —
Full list of available properties: --mz-card-bg, --mz-text-color, --mz-title-color, --mz-border-color, --mz-radius, --mz-font, --mz-sponsored-bg, --mz-sponsored-color, --mz-footer-color. Anything you don't set keeps the default.
Mobile Apps Coming Soon
Native iOS and Android SDKs are on the roadmap and not available yet — we'd rather tell you that plainly than publish integration steps for something that doesn't exist.
If your app already renders content in a WebView, today's web snippet works there without changes. For a fully native ad surface, check back — this section will be replaced with real SDK docs the day it ships, not before.
FAQ
How is the revenue share calculated?
Publishers earn a transparent share of every valid click — 50% by default. Every charge is booked as three entries (advertiser charge, publisher earning, platform share) that always sum to zero net, visible in your reports.
What counts as an invalid click?
Bot traffic, duplicate clicks, and rate-limit violations are all detected and rejected before any money moves — they never appear as billable events on either side.
Can I control what advertisers show on my site?
Every campaign and creative is reviewed by our team before it's eligible to serve, so nothing goes live unvetted. On top of that, you can block any specific advertiser from a site directly in your dashboard — pick from a list of advertisers who've recently run on that site, or unblock one at any time.
Is my traffic data shared with advertisers?
Advertisers see aggregate performance by campaign and creative — not individual visitor data, and not which specific site or page drove a click.