TikTok Ads → HookGet
HookGet reads TikTok Ads's reporting API on a schedule and turns it into normalised events on the same pipeline as everything else you deliver.
In short
- Reads the integrated report endpoint per advertiser with an access token in the
Access-Tokenheader. - One event per settled day, same shape as the Meta source —
spend_cents, impressions, clicks, reach — so one filter covers both networks. - TikTok answers HTTP 200 even for auth failures; the connector reads the envelope’s real status code, so a dead token reports
auth_failedhealth, not silence. - Every TikTok metric arrives as a string; they become real numbers here.
What it produces
| Read from the API | Becomes | Data |
|---|---|---|
| One settled day of the advertiser | ad.spend_reported | spend_cents, impressions, clicks, reach |
Set up
# TikTok Ads Manager -> tools -> API access: create an app, authorize the advertiser
curl -X POST https://api.hookget.com/v1/sources \
-H "authorization: Bearer $HOOKGET_KEY" \
-d '{"provider":"tiktok-ads",
"secret":"<access token>",
"config":{"advertiser_id":"7012345678901"}}'
Stated plainly
The reporting endpoint returns advertiser-level dailies and does not return the account currency, so unlike the Meta source no currency attribute is invented here — an attribute we cannot verify is an attribute we do not emit. Spend is converted to cents from whole units, matching every other money metric in the product.
Questions
Why do failures show up as health instead of errors in my logs?
Because a scheduled reader’s failures belong on the source, where you can see and
act on them: the source records auth_failed or rate_limited with
the provider’s own message, backs off, and pauses after repeated failures.