# hecigo Ads Insights

Ads Insights answers one question without opening three dashboards: what did we
spend, and what did a result cost, on each creative. It reads Meta Ads, Google Ads
and TikTok Ads, normalises the three into one table, and hands that table to
whatever you are already working in: an assistant that speaks the Model Context
Protocol, or your terminal.

It is read-only. Nothing in it creates, pauses, edits or funds an ad.

## Why it exists

Paid ad platforms auto-tag their own clicks. Analytics products classify traffic
by `utm_medium`, so a click that carries no manual UTM parameters lands in organic
social rather than paid social. That is not a bug to fix by adding UTMs: a
hand-written medium that does not match the platform's fixed patterns lands in
*Unassigned* instead, and corrupts channel reporting for everyone reading it
afterwards.

So the honest source for spend, cost per click and cost per result is each
platform's own API, and comparing creatives means reading **by ad name**. That is
what this does, in one shape, across three platforms.

The second reason is arithmetic that dashboards quietly get wrong. Meta's `clicks`
column counts photo expands and "see more" taps alongside link clicks. One real
account we read showed 2,207 clicks and 317 link clicks over ninety days. If you
divide spend by the first number you are lying to yourself by a factor of seven.

## What you get

| | Meta Ads | Google Ads | TikTok Ads |
|---|---|---|---|
| Spend, impressions, clicks, CTR, CPC | yes | yes | yes |
| Conversions and cost per conversion | yes | yes | yes |
| Break down by campaign, ad set, ad name | yes | yes | yes |
| One row per day, for trends | yes | yes | yes |
| Raw per-action counts, so a number can be checked | yes | yes | yes |

Every platform is queried in parallel and the rows come back in one shape, so a
single question covers all three. One platform failing returns an error for that
platform, not an empty report.

## How you connect an account

You authorize your own ad account on the platform's own consent screen, under your
own login. hecigo never asks for your platform password.

- **Revoke whenever you want**, from the platform, without asking us. Access stops
  immediately.
- **Grant the smallest role that works.** On Google Ads, authorizing with an
  identity that holds *Read only* on the account means the connection cannot write
  even if it wanted to, because Google enforces at the account level rather than
  the permission level.
- **Credentials are encrypted before storage.** No interface returns their values,
  including to you.

## Three ways to run it

**In an assistant.** Point any Model Context Protocol client at the hosted service
and ask questions in plain language. Three tools: check the connections, list the
accounts, read the numbers.

**In your terminal.** `npx @hecigo/ads-insights login google`, then
`npx @hecigo/ads-insights report 14 --level ad`. Sign-in opens a browser, you pick
an account, and the token stays in a file only you can read.

**On your own machine.** The client is a TypeScript package with no framework
attached and no reporting back to us. Run it in a cron job, a dashboard, or your
own service. Businesses that will not put advertising credentials on someone
else's infrastructure can self-host the whole thing.

## What it does not do

It does not create, edit, pause, schedule or fund advertising. There is no write
path in the code.

Campaign management is being built, and it is deliberately slow: no single
instruction will both create and activate an ad. The system will produce a plan
with a diff, a person will approve that exact plan, and only then is it applied.
Everything created starts paused. Every apply carries a key so a retry cannot
create a duplicate. Every change is recorded with who asked, when, and what
changed.

It is also not an advertising agency. It does not choose your budget, targeting or
creative, and it does not promise a result.

## Data, plainly

Performance figures are fetched from the platform when you ask, not copied into a
warehouse of our own. One customer's data is never pooled with another's. Nothing
is sold, rented or passed to a third party. Ask at **hi@hecigo.com** and a
workspace is deleted, with written confirmation.

Details: [Privacy Policy](/privacy/) and [Terms of Service](/terms/).

## Status

Meta Ads and Google Ads reporting run today. TikTok Ads is built and waiting on
TikTok's own app review. Campaign management is in design, and will be tested in
each platform's sandbox before it touches a live account.

Early access is open to a small number of advertisers in Vietnam. Write to
**hi@hecigo.com** with the platforms you run on and the one number you check most
often.
