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

Keep reading