The AdZoic Blog

Plain-English guides to programmatic advertising — how the auctions work, how machine learning buys smarter, and how to read the numbers that matter. No jargon left unexplained.

New to programmatic? Start with the guided path →

Diagram: one buying hub connected to TV, video, web, app, audio and billboard screensBasics
Featured

What is a DSP? A plain-English guide to demand-side platforms

If you've ever wondered how the ad on a website got there, start here. We explain what a DSP does, how it fits into the ad-buying world, and why it matters for your budget.

Read the guide Jun 2026 · 6 min read
Animated: ChatGPT is picked in the AdZoic campaign form, the change travels through the connector to OpenAI, a sponsored chat card rises in below a ChatGPT answer, and Applied on ChatGPT comes back to the formProduct

ChatGPT is now a channel in your campaign form

Pick ChatGPT next to YouTube, Search and Meta. The dashboard builds the campaign on OpenAI, keeps it in step, and shows you OpenAI's answer to every change.

Oct 2026 · 7 min read
Checklist from scanning our own platform: production build patched, session settings not exposed, a developer's local image to rebuildEngineering

We ran our scanner on our own platform

Patched in code is not patched everywhere. What we checked for PHP2Shell and CVE-2026-115560, what we found, and what is still open.

Oct 2026 · 5 min read
CVE-2026-115560: no fix yet, unusual setup only; the fix is session.upload_progress.enabled = 0Engineering

CVE-2026-115560: the other PHP session bug, and why most servers are fine

PHP has no fix yet, but only an unusual setup is exposed, and one setting covers it. How to check every server and every PHP-FPM pool.

Oct 2026 · 4 min read
Animated: a terminal runs php2shell-check and lists a vulnerable PHP-FPM, a back-ported patch and a worker still running a deleted PHP binaryEngineering

PHP2Shell: find every vulnerable PHP install in one command

A critical PHP flaw runs attacker code before your app even starts. We open-sourced php2shell-check, a free scanner that finds every PHP and tells you what to fix.

Oct 2026 · 6 min read
Animated: a tap on a mobile ad sends a click_id chip through AdZoic to the advertiser's page; the person subscribes on the advertiser's server, which sends a signed postback back; the report's Conversions row ticks from 0 to 1Measurement

Conversion campaigns on AdZoic: from a tap to a confirmed subscription

Every click carries an ID, every conversion comes back from your own server, signed. How it works, what your developer builds in about an hour, and how we go live together.

Oct 2026 · 7 min read
Animated: one master photo in the centre; six frames drawn to scale fly out to their slots, each the same photo cropped around the product with a text panel and a button; a GIF badge and an 8-second video badge pop onProduct

Creative Studio: one photo becomes every banner, GIF and video, in Bangla

Six sizes, a light GIF and an 8-second video from one photo and a short message, with Bangla set correctly and AI-suggested designs a person approves.

Oct 2026 · 6 min read
Animated: a campaign card lists websites, apps, video and search, then lights Facebook and Instagram and launches; a signal travels to a phone where a sponsored post rises into the feed, and link clicks, visits and conversions return to one report in takaChannels

Meta Ads in Bangladesh, without the guesswork

Facebook and Instagram are where Bangladesh scrolls. Two lessons from our own Meta campaigns, how AdZoic runs Meta from the same dashboard as every other channel, and seven rules that work here.

Oct 2026 · 8 min read
Animated: ten viewers start a video ad; as the playhead sweeps the timeline, viewers drop away at the quarter marks and four reach the end and turn teal. Counters read started ten, completed four, you pay for fourChannels

Paying for completed views: what counts, what we estimate, and what we refuse to invent

A completed view is the player saying the ad reached its end. How we hear that signal even when the ad is not ours, estimate how often it will come, bid without guessing, and report it honestly — corrections included.

Oct 2026 · 7 min read
Animated: impressions stream in; those with an id gather into people counted once each with a measured frequency, those without are divided by that frequency into estimated people drawn with dashed outlines, and the total is footnoted as partly estimatedMeasurement

Counting people, not impressions: how reach works when there is no ID

Reach is a count of people, never a sum of days. How we count the people we can identify once each, measure how often they saw the ad, estimate the rest from that frequency, and say so on every report.

Oct 2026 · 7 min read
Animated: a phone shows an ad with a small mark in its corner; a tap opens a menu — why this ad, report this ad, hide this ad — and three cards explain each; choosing hide collapses the ad behind an ad hidden, undo noticeProduct

The ⓘ on our ads: what it shows, and what hiding an ad actually does

Tap the mark on one of our ads and a menu opens: why this ad, report this ad, hide this ad. What each one does behind the scenes, which ads carry the mark, and what it can never do.

Oct 2026 · 5 min read
Animated: a bid request asks who is this; an opt-out gate sends opted-out readers to no id at all, and everyone else climbs four rungs — an id they sent, the advertising id hashed, a fingerprint that is never a person, or nothingData

Who we think you are, and when we refuse to guess

One id per request, its kind written down, an opt-out gate first, and a fingerprint that may never be a person. How our bidder answers the question every ad request asks — and what it refuses to do.

Oct 2026 · 6 min read
Animated: one plan on the left sends a signal to a grid of phone screens that light up teal row by row — apps, websites, video, social and search. 136 million internet subscriptions, 89% of them on a phoneMarkets

136 million connections. One plan to reach them.

Bangladesh's digital market in 2026 in numbers, where ad budgets leak between the plan and a person, and a seven-step plan to reach every screen from one dashboard — in taka.

Oct 2026 · 8 min read
Animated: a brief travels through six boxes — context, run, inventory, group, campaign, bidder — each lighting up in turn, and the bidder turns teal: it buys only the group's sites and appsProduct

DeepContext: from a plain-words brief to a campaign that buys only fitting content

Describe the brand in plain words. AdZoic reads the sites and apps we're offered, scores each for fit, explains why, and the campaign buys only there — no cookies, no user IDs.

Oct 2026 · 7 min read
Animated: a bid request carrying only an app ID reaches the bidder, which makes one lookup into a shelf of pre-computed verdicts and answers with what the app is about, while a context engine slowly fills the shelf ahead of timeEngineering

Contextual targeting without cookies: how we rebuilt our context engine

Most of our bid requests arrive with no page to read. How we understand sites and apps before the auction and look them up in a fraction of a millisecond — without cookies or device IDs.

Oct 2026 · 8 min read
Animated: two dashboards — an ad exchange and a partner network, each with its own total and a spreadsheet between them — slide together into one report with one total, the same on every pageProduct

One campaign, one report: how AdZoic brings ad exchanges and partner networks into a single view

Two dashboards, two sets of numbers, one frustrated client. How delivery from ad exchanges and partner networks becomes one report with one total — and metrics that hold up when a client asks how they were counted.

Oct 2026 · 4 min read
Animated: one customer passes through four moments on a phone — see the ad, tap to install, verify identity, make a first deposit — and a teal signal travels back from the deposit to the campaignIndustries

A bank with no branches: the advertising playbook for Asia's new digital banks

Bangladesh just cleared five digital banks to launch, joining six other Asian markets. How a bank with no branches reaches people, what to run at each stage, and how to measure the deposit rather than the click.

Sep 2026 · 14 min read
Animated: billed impressions walk down five gates — served, rendered, measurable, viewable, valid — with a red slice peeling off at each gate for its reason, and the valid remainder turning tealMeasurement

Served, rendered, viewable, valid: the standard behind every impression we report

You buy ten thousand ads and the report says fewer. The five questions an impression must answer, the published standard for each, and why we keep two records of every ad.

Sep 2026 · 9 min read
Animated: storage traffic stops paying a NAT gateway's per-gigabyte toll and takes a free gateway endpoint road straight to S3, while ordinary internet traffic carries on through the NAT gatewayEngineering

The free road to S3: how, why and when we moved storage traffic off our NAT gateway

Same-region traffic to S3 is free — unless it passes through a NAT gateway. What we moved, why, when it's worth doing, and the checks to run first.

Sep 2026 · 8 min read
Animated: one copy of an event stream reserves far more of a machine than it uses; measured and resized, three copies fit on three machines with none boughtEngineering

Measure first, buy last: how we keep our infrastructure lean

The whole platform is code, one definition serves every environment, and most of our best fixes were a measurement rather than a purchase.

Sep 2026 · 12 min read
Animated: a campaign leaves one dashboard window into a boundary marked Google where three surfaces light up, and results travel back every hourProduct

YouTube without the tab switch

Google campaigns — YouTube feeds, Search and skippable in-stream — planned, launched and reported on from the dashboard you already use.

Sep 2026 · 7 min read
Animated: synthetic load streams at a rate limit, most bounces back, and only a thin stream reaches an idle bidderEngineering

How we load test the bidder — and what our own test was hiding

A load test gates every merge. Reading the report properly showed it was measuring our rate limiter, not our bidder — plus what the platform actually handles.

Sep 2026 · 7 min read
Animated: retries arriving as one wave overload a dependency, while jittered retries spread out and it keeps upEngineering

The jitter that never jittered: how a passing test hid a real bug

Our retry delay was supposed to be random. It returned the same number 100,000 times — and the test we wrote for it passed.

Sep 2026 · 8 min read
Animated: a person's question travels to an AI agent, which compares three made-up options — one marked sponsored — and locks the best answer in tealAI

When the buyer is a bot: what AI agents mean for advertisers in Asia

Ads are inside AI assistants now, and agents have started completing purchases. What it means for brands — and why Asia may feel it first.

Aug 2026 · 8 min read
Animated: ad requests stream through ingress, Go bidder and cache-plus-models layers into a bid decision inside the auction deadlineEngineering

Inside adZoic: the architecture behind millions of ad decisions a day

Our stack, system design, security posture and scaling approach — shared openly, with a diagram and honest numbers.

Aug 2026 · 8 min read
Animated: words from an article flow into an AI reader that lights up topic tags and a matching ad clicks into placeTargeting

AI contextual targeting: how machines read a page

The methods (NLP, embeddings, sentiment, multimodal), what the public research says, and the philosophy behind our approach — no cookies needed.

Aug 2026 · 9 min read
The AdZoic mark connected to a video player, a Discover feed card and a Gmail envelopeChannels

Demand Gen: reaching people on YouTube, Discover & Gmail

Google's image-and-video channel for the top of the funnel — and how AdZoic runs it alongside real-time bidding.

Jul 2026 · 6 min read
Auction timeline with racing bid bars and a winning teal bidBasics

RTB explained: how an ad auction finishes in ~100 ms

Real-time bidding, step by step — from a page opening to the winning ad appearing, faster than you can blink.

Jun 2026 · 5 min read
Venn diagram: page content on one side, a person on the otherTargeting

Contextual vs. audience targeting — and when to use each

Two ways to reach the right people, no third-party cookies required. Here's how they differ and how to combine them.

Jun 2026 · 5 min read
Prediction curve with sampled points and a marked best-bid peakAI

How machine learning decides what an impression is worth

A look under the hood at predictive bidding: how models forecast value and auto-optimise your spend in real time.

Jun 2026 · 6 min read
Bar chart with a trend line and CPM, CTR, CVR and ROAS chipsMeasurement

eCPM, CTR, impressions: the metrics that actually matter

Decode the dashboard. What each number means, what "good" looks like, and which ones to watch.

Jun 2026 · 5 min read
Shield with a checkmark, blocked ad tiles crossed out around itBrand safety

Brand safety 101: keeping your ads out of bad neighbourhoods

How pre-bid filtering blocks ad fraud and unsafe content before a cent of your budget is spent.

Jun 2026 · 5 min read
Database cylinder with a consent checkmark orbiting itData

Why first-party data is your most valuable ad asset

As third-party cookies fade, the data you own becomes your edge. Here's how to put it to work.

Jun 2026 · 5 min read

More engineering and open-source write-ups on our developer blog: adzoic.github.io ↗

Learn by doing.

The fastest way to understand programmatic is to watch it run on your own goals.