arif.media

Ad Tech, Measurement & Automation

Arif Onur Hangişi

Nobody wants another tool. They want the result.

I build the systems performance marketing runs on: measurement, automation and AI, working as one. Your visit is running through a miniature of one right now. Four sides of me bid for your attention, and the winner decides what you read first.

What's behind it ↓

Auction

first price · tmax 120 ms

  1. automation Ad tech & automation
  2. builder Writes the software, end to end
  3. performance Ten years of performance marketing
  4. measurement Tracking, pipelines, signal

Pick a bidder to outbid the others yourself.

Winning creative

seat · automation

Ad tech and automation are my job.

Since September 2023 my job has been the machinery around media: the systems that move data, buy, report and decide, so that people spend their time on judgement instead of exports.

  • Organization-wide automation, well beyond campaign scope, on APIs and Python.
  • End-to-end campaign reporting pipelines, and the data integrity behind them, across global accounts.
  • Bringing global ad tech tools to the local market, and advising on vendor selection and architecture.

seat · builder

I write the software I use.

Not a spec handed to a dev team. Data model, backend, interface, deployment: I build applications end to end, myself.

This page is an example. The auction you just watched runs in your tab, and the site is served by a single Cloudflare Worker, with no framework, no cookies and no pixels. View source; the bidding logic is readable.

  • TypeScript
  • Python
  • Cloudflare Workers
  • D1
  • BigQuery
  • LLM APIs

seat · performance

Ten years in performance marketing.

I learned media from the buying side: budgets, ROAS targets, platforms that each report their own version of the truth. From 2019 to 2023 I led the teams that do it; today I build the systems they run on.

  • Media mix modeling and yearly budget allocation against strict ROAS targets.
  • A performance marketing team set up across Google, Meta, TikTok, Criteo and RTB House.

Full career ↓

seat · measurement

Measurement that survives the pipeline.

Every platform reports in its own language. I build the layer that makes them agree: signal captured without loss, schemas joined into one model, and the result pushed back into the buying platforms.

  • Server-side tracking, conversion APIs and MMP events.
  • GTM, GA4 and pixel architecture, set up so it can be audited.
  • Pipelines in BigQuery and Python that normalize fragmented media data.
  • Google Ads API
  • Meta Marketing API
  • DV360
  • GTM
  • GA4
  • BigQuery

Bid request · your visit

OpenRTB-ish

{
  "site":   { "domain": "arif.media" },
  "device": "filled in by your browser",
  "user":   "filled in by your browser",
  "tmax":   120
}

Built from what your browser already tells every page. None of it leaves this tab.

site.ref
user.hour
device.type

Thesis

Brands don't buy tools. They buy the result.

Dashboards, platforms and seats are the means. What a brand wants is the number moving the right way, and someone accountable for it. Performance marketing is turning into service that runs on software: the machinery stays behind the work, and the result is what gets delivered. Getting there takes four things, and each one has been my job at some point in the last ten years.

  1. 01

    Measure first.

    If the signal is wrong, every optimization built on it is wrong. Tracking comes before targeting.

    Behind it Server-side tracking, conversion APIs and MMP events at Mindshare. GTM, GA4 and pixel architecture at Sempeak.

  2. 02

    Automate the operation.

    Reporting, data integrity and routine checks run on their own, so people spend their time on decisions.

    Behind it Organization-wide automation on APIs and Python, and end-to-end campaign reporting pipelines across global accounts.

  3. 03

    Spend against outcomes.

    Budgets follow what each channel returns, not what it returned last year.

    Behind it Media mix modeling and yearly budget allocation against strict ROAS targets at Mindshare, where I set up the performance marketing team across Google, Meta, TikTok, Criteo and RTB House.

  4. 04

    Build what's missing.

    When the right tool does not exist, I write it. The client never has to learn it.

    Behind it Applications built end to end: data model, backend, interface, deployment. This page is one of them.

Reports

All reports

Measurement

synthetic data with a known answer · computed in your browser

Most of what moves the number isn't the campaign.

Before a channel gets credit, the calendar comes out, carry-over and saturation go in, and two questions get asked: what would have happened anyway, and could this be chance? Each method below runs on synthetic data where the true answer is known, so you can see how close it gets.

01 · seasonality

Take out the calendar first.

Sales rise in Q4 whether you advertise or not. The model fits trend and seasonality alongside media, so a December spike is not credited to whatever campaign happened to run in December.

02 · adstock

Spend keeps working after it stops.

A video burst sells for weeks; a search click mostly converts the same week. Each channel's carry-over is estimated from the data, not assumed, and the legend shows it next to the true value.

03 · sufficient level

Every channel has a sufficient level.

Past a point, the next ₺1K buys less than it costs. Response curves show where each channel stands today, and where its marginal return falls below break-even.

04 · cannibalization

Not every paid click is new.

Brand search ads collect clicks that would have come through organic results anyway. Switching them on and off in alternating four-week blocks shows how many are truly incremental.

05 · media mix model

Then, and only then, credit.

Media mix modeling splits every week into baseline and channel contributions. Where spend moved, the estimate lands close to the truth. Display ran flat all year, so the model cannot tell it apart from the baseline: that is a channel to test, not to trust.

06 · causality

Real, or chance?

A brand campaign ran in one city only, and brand search went up there. Synthetic control builds that city's counterfactual, what would have happened without the campaign, from 24 other cities. Running the same test on every city that never saw the campaign shows how large an effect chance alone produces.

Career

  1. WPP Media Türkiye

    Ad Tech & Automation Director

    Organization-wide automation on APIs and Python. End-to-end campaign reporting pipelines across global accounts. Global ad tech tools brought to the local market, with advice on vendor selection and architecture.

  2. Mindshare

    Performance Marketing Director

    Media mix modeling and yearly budget allocation against strict ROAS targets. Server-side tracking, conversion APIs and MMP events.

  3. Sempeak

    Performance Marketing Team Lead

    Digital marketing plans and budgets for a diverse client portfolio, and the team behind them. GTM, GA4 and conversion pixel implementation.

Stack Python · BigQuery · Google Ads API · Meta Marketing API · GTM · GA4 · DV360 · Server-side tracking · TypeScript · Cloudflare Workers

Deals · private marketplace

Some inventory never goes to open auction.

deal_id
pmp-arif-01
type
private, one to one
floor
a result worth building a machine for
seat
arif@arif.media
also
linkedin.com/in/arifhangisi

How it works · real auction mechanics, computed in this tab

  1. ingestparse the request
  2. enrichbuild the feature vector
  3. predictpCTR per bidder
  4. shadefirst-price bid shading
  5. pacebudget pacing
  6. floordynamic reserve
  7. clearfirst price wins
  8. renderDCO bandit
  9. automaterules engine

Features → pCTR

Each bidder is a logistic regression over twelve features of your request. The priors are mine. Your attention trains them: a viewable impression you read is a positive label, one you skip is a negative. Online SGD, in this tab.

Bid shading

The auction is first price, so bidding your value overpays. Each bidder fits a lognormal to the prices it had to beat and bids where expected surplus, (value − bid) × P(win), peaks.

Pacing and floor

A PI controller spreads each bidder's budget across a twelve-auction flight. Spend ahead of plan lowers its multiplier; behind plan raises it. The reserve price follows recent clearing prices.

Automations

Rules that watch the exchange and change it. Nobody touches a setting by hand.