Ads Manager: check what you pulled¶
https://ads-manager.huydata.com shows the same numbers the three APIs return, in each platform's own reporting interface. Data engineers use it the way they use the real Ads Managers: as the reference to verify that a pipeline pulled the right rows and the right totals.
Log in¶
Paste any one of your API tokens (Meta, TikTok or Google access token) on the login page. The session is tied to your student code; the token itself is not stored. Usage is logged per student, like API calls.
Three views, three vocabularies¶
| Meta Ads Manager | TikTok Ads Manager | Google Ads | |
|---|---|---|---|
| Levels | Campaigns · Ad sets · Ads | Campaign · Ad group · Ad | Campaigns · Ad groups · Ads |
| Status words | Active · Paused · Completed | Active · Not delivering · Completed | Enabled · Paused · Ended |
| Account id shown as | act_<id> |
advertiser id | 123-456-7890 |
| Dates | Oct 20, 2026 | 2026-10-20 | Oct 20, 2026 |
| Countries | VN |
Vietnam (VN) | Vietnam |
Every view has the same controls: date range (presets or custom, max 184 days), breakdown (none, day, country), Data as reported on (see below), the level tabs, an Export (CSV) button and a Copy totals button. Click a campaign to drill into its ad sets / ad groups, then into its ads.
Column names on the UI versus fields in the API¶
The UI uses the platform's marketing names. Your pipeline sees the API names. They refer to the same numbers.
Meta¶
| Ads Manager column | Insights API field | Notes |
|---|---|---|
| Amount spent | spend |
string in the API, USD |
| Impressions / Reach / Frequency | impressions / reach / frequency |
|
| Link clicks | clicks (and actions[link_click]) |
|
| CTR (all), CPC, CPM | ctr, cpc, cpm |
ratios are computed from sums; never sum them |
| App installs | actions[action_type = mobile_app_install] |
|
| Cost per app install | cost_per_action_type[mobile_app_install] |
|
| Purchases | actions[app_custom_event.fb_mobile_purchase] |
omni_purchase is the same number, do not add both |
| Purchases conversion value | action_values[app_custom_event.fb_mobile_purchase] |
|
| Purchase ROAS | purchase_roas[omni_purchase] |
|
| Video plays | actions[video_view] |
|
| Day (breakdown) | date_start = date_stop with time_increment=1 |
|
| Country (breakdown) | country with breakdowns=country |
TikTok¶
| Ads Manager column | Report metric | Notes |
|---|---|---|
| Cost | spend |
string in the API |
| Impressions / Clicks / CTR / CPC / CPM / Reach | impressions / clicks / ctr / cpc / cpm / reach |
|
| Conversions | conversion (= app_install) |
|
| CPA, CVR | cost_per_conversion, conversion_rate |
|
| Complete payment | purchase |
|
| Total complete payment value | total_purchase_value |
|
| Video views | video_play_actions |
|
| By day (breakdown) | dimension stat_time_day (YYYY-MM-DD 00:00:00) |
|
| By country (breakdown) | dimension country_code |
Google Ads¶
| Google Ads column | GAQL field | Notes |
|---|---|---|
| Cost | metrics.cost_micros |
divide by 1,000,000 |
| Impr. / Clicks / CTR / Avg. CPC / Avg. CPM | metrics.impressions / clicks / ctr / average_cpc / average_cpm |
CPC/CPM are in micros |
| Conversions | metrics.conversions |
installs |
| Cost / conv. | metrics.cost_per_conversion |
micros |
| Conv. value | metrics.conversions_value |
|
| Conv. value / cost | metrics.conversions_value / (metrics.cost_micros / 1e6) |
|
| Views / View rate | metrics.video_views / metrics.video_view_rate |
|
| Day (segment) | segments.date |
|
| Country/Territory (segment) | segments.geo_target_country (geoTargetConstants/<id>) |
map via geo_target_constant |
The API equivalent of this view panel at the bottom of every report prints the exact request (curl) that returns the rows on screen.
Checking your pipeline¶
- Open the account, level and breakdown you pulled, with the same date range.
- Compare the Totals row with the sums in your table: spend to the cent, impressions and clicks exactly.
- If installs or purchases differ, check when you pulled: those metrics keep increasing for 3 days. Choose the same date in Data as reported on and the totals must then match exactly.
- Rows shown as No delivery in this period are not returned by the API. Do not expect them in your data.
- For a row-by-row diff, Export (CSV). IDs are text; keep them as text in your tools (Excel turns long IDs into numbers and corrupts them).
Data as reported on¶
Installs and purchases are attributed for 3 days after the report date, so a value you fetched yesterday is smaller than the value you fetch today for the same day. The Data as reported on selector replays what the API returned on an earlier day. The banner then shows today's values for the same filter and the difference. A report date is final from its fourth day (D+3). Pipelines that need final numbers re-pull the last three report dates.