• Programmatic 101
  • Posts
  • Why Optimizing Towards Clicks in Programmatic Is a Bad Idea

Why Optimizing Towards Clicks in Programmatic Is a Bad Idea

(and what to about it)

It might seem like everyone knows optimizing for clicks is a bad idea…
But CPC bidding still lives in many DSPs — and a lot of buyers still use it.

Why? Because clicks are easy to see, easy to report, and easy to chase.
But that doesn’t mean they’re real signals of value.

❌ Why Clicks Don’t Work in Programmatic

  • Clicks ≠ Engagement
    On the open web, most people don’t click display ads — and if they do, it’s often by accident. The real role of programmatic is to drive attention, familiarity, and outcomes post-view.

  • Clicks Are Easy to Fake
    Bots love clicks. So do click farms and deceptive placements. Optimizing to CPC often sends your budget straight into low-quality, fraud-prone supply.

  • Clicks Belong in Search — Not Display
    Search users are typing with intent. Programmatic users are reading, watching, and scrolling. Different mindset = different KPIs.

  • Clicks Are Lazy Logic
    When you optimize for clicks, your DSP isn’t looking for value — it’s looking for volume. The cheapest clicks win, not the best users.

✅ What to Optimize Toward Instead

Start moving away from vanity clicks and toward actual quality and attention. Here’s what to use instead:

  • High-quality supply signals
    Use tools like OpenSincera to filter for domains with low ads-to-content ratios, good identifier support, and lower refresh rates.

  • Post-impression conversions
    Optimize to real business outcomes — not just front-end interactions.

  • Avg. Time in View
    A better attention proxy than CTR. If users see your ad for longer, that impression has more value.

  • Your own custom quality tiers
    Score domains using quality data, then build bid strategies that align with attention, not bots.

🛠️ Build a Quality Filter for Your Campaigns Using OpenSincera + Google Sheets

You can build a lightweight enrichment workflow in Google Sheets using OpenSincera’s free API — no dev team needed. This lets you evaluate supply quality after campaigns by pulling in metrics like ads-to-content ratio, page weight, and identifier coverage.

Here’s how to do it, step-by-step.

🔧 What You’ll Need

  • A list of domains from your DSP (e.g., post-campaign report from TTD)

  • An OpenSincera account (free with company email)

  • Your API token (found under Profile after logging in)

  • Access to Google Sheets + Apps Script

📐 Suggested Sheet Structure

Set up two tabs in your Google Sheet:

  1. CampaignData (or whatever name works for you):
    Paste your post-campaign impression data here. Make sure there's a column with domains (e.g., forbes.com, buzzfeed.com, etc.).

  2. SinceraData:
    This is where you’ll store enriched data from the OpenSincera API. Each row will represent a domain and its associated quality signals.

🔄 How It Works

You’ll write a simple Apps Script that does the following:

  • Loops through the domains in your campaign data

  • For each domain, calls the OpenSincera API and retrieves:

    • Ads-to-Content Ratio (A2CR)

    • Avg Ads in View

    • Ad Refresh Rate (in seconds)

    • Avg Page Weight (MB)

    • Identifier Absorption Rate

  • Stores these results in the SinceraData tab (one row per domain)

  • You can then use VLOOKUP to map those metrics back to your campaign data

💬 Example ChatGPT Prompt

Here’s a prompt to help generate the Apps Script if you don’t want to code it yourself:

“Help me build a Google Sheets script that connects to the OpenSincera API using my token. I want to enrich a list of domains in Sheet1 (column A) with the following metrics from OpenSincera: A2CR, Ad Refresh Rate, Avg Page Weight, Avg Ads in View, and Identifier Absorption Rate. Output the data into a second tab called SinceraData. Use caching or deduplication to avoid hitting the API multiple times for the same domain.”

🔁 After the Data is Pulled

Once your SinceraData tab is populated:

  • Use VLOOKUP in your CampaignData tab to match each domain with its Sincera metrics.

  • Sort or filter based on thresholds (e.g. flag domains with A2CR > 0.4, or Page Weight > 10MB).

  • Build supply quality tiers, identify waste, and support blocklist recommendations with objective data.

TL;DR

  • Clicks are misleading, gameable, and often toxic.

  • Quality signals like A2CR, ad refresh rate, and page weight are better attention proxies.

  • With OpenSincera + Google Sheets, you can operationalize that today — no devs needed.

💬 Want to sanity-check your own setup?

If this made you rethink your current bidding logic or you’re not sure whether your campaigns are optimizing for real outcomes (or just noise), let’s talk.

I offer consultations for programmatic marketers and ad buyers who want to get more signal, less fluff.
Just fill out this quick form - I’ll personally reach out.

🎁 Bonus: Get my guide "Do You Really Need Programmatic?" for free

Normally paid, but free to subscribers → Access it here

👋 Let’s connect