Import guide

Import TikTok Ads results into monday.com

TikTok Ads Manager holds the money side of a campaign and monday.com holds the work that follows it — the follow-ups, the creative briefs, the budget conversation. Joining the two by hand means pulling the same report out of Ads Manager again every time somebody asks how last week went.

Boardfeed reads one advertiser’s results on a schedule and writes one item per **day per campaign** — or per ad group, or per ad — into a monday.com board. The credential is not a key you paste: you connect the TikTok account that can see the advertiser, once, and Boardfeed stores the account rather than the token against the source.

Last checked : the three levels, the seven metrics one row holds, the day a row is for, and the window, all read off the connector — whose endpoints and field names come from TikTok’s own SDK reference rather than from TikTok’s documentation, and are marked unverified in docs/connectors.md § TikTok Ads

Doing it by hand, every time

  1. Open Ads Manager, set the date range, choose the level and export the report.
  2. Upload that file to the board and map the columns again, every time.
  3. Do it again tomorrow, and keep yesterday’s file somewhere if you want to compare the two.
  4. Work out which rows are new and which are already on the board, or accept a second copy of every day.

The scheduled route

  1. Connect the TikTok account that can see the advertiser. Boardfeed opens TikTok’s own consent screen in a small window and asks for **read-only** access to your ads, stores the connection encrypted (AES-256-GCM), and never lets a token reach the board, the browser or a log. You can revoke the account from the Support tab at any time.
  2. Choose the advertiser from the list Boardfeed reads back, or paste the advertiser id if the list comes back empty — the advertiser list is the one part of this platform Boardfeed is least sure of, and the field is there so a run can go ahead anyway. See the note at the bottom of this page.
  3. Choose the level: **campaign**, **ad group** or **ad**. One import reads one of the three, so a board that wants a campaign’s spend and the ads behind it is two imports.
  4. Choose how many days back to read. Left empty it is the last 28 days, and the run counts back from the day it runs — which is what makes the next step matter.
  5. Key the import on the date and the campaign (or the ad group, or the ad) and run it in **update matching items** mode. A scheduled import re-reads its whole window every time it runs, so the key is what keeps a day from being written twice; in create mode, running the same window twice is two sets of items, which is the mode rather than a bug.
  6. Every run reads one row per day, up to 200 rows at a time, and asks for the next page until TikTok says there are no more.

Field mapping notes for TikTok Ads

This is the part that decides whether an import works on the first try. Everything below is handled in the mapping step, before the first run.

  • One row is one day of one campaign, ad group or ad: `date`, the level’s id and name, `spend`, `impressions`, `clicks`, `ctr`, `cpc`, `cpm` and `conversion`.
  • The level decides which id columns exist. A campaign-level row has no `ad_id` and no `adgroup_id` — deliberately, rather than as a column that is empty on every row and in the way of the ones that matter.
  • Seven metrics, and no more. TikTok reports a long list of them — reach, frequency, video plays and dozens besides — and Boardfeed keeps the seven above rather than turning everything the platform returns into a column nobody asked for.
  • Every number arrives as the text TikTok sends, `"184.52"` rather than a number Boardfeed decided it was. Map `spend` to a Numbers column and monday.com reads it as 184.52; map it to Text and the string is kept as it came. Nothing is rounded and no decimal separator is guessed at.
  • **There is no currency column.** This report answers no currency, so if you run ads in more than one currency, nothing in the row says which one a figure is in — keep one advertiser per board, or add the currency yourself.
  • Nothing is summed: a 28-day report is 28 items per campaign, and the rollups belong on the board, where the people reading it can see what is in them.

TikTok Ads import questions

Do I need a TikTok app, an ads token or a developer account?

No. You connect a TikTok account from the source dialog: TikTok asks that account whether Boardfeed may read its ads — read-only, and nothing else — and Boardfeed resolves a token for it when a run starts. There is no key to create, paste or rotate by hand, and the token is never shown on the board or in a log.

The advertiser list came back empty. Is the import broken?

No — and this is the one part of this source Boardfeed is least sure of. The endpoint TikTok documents for listing an account’s advertisers also asks for credentials Boardfeed deliberately does not send, because an app secret belongs in no URL. So the picker may find nothing, and the `Advertiser` field is a plain text field for exactly that reason: paste the advertiser id from TikTok’s own interface and the import reads normally. Everything the run itself needs is a different endpoint, and that one has no such doubt.

Why is the import longer than the number of days I chose?

Because a row is one day of one campaign, ad group or ad. A 28-day window over twelve campaigns is up to 336 rows. Read the row count the preview reports before you schedule it, and check it against your monthly allowance.

Do the numbers change after they have been imported?

TikTok revises them. Results keep settling for a while after the day they cover, so an import in update mode writes the new figures over the old ones on its next run. That is also why the window is not incremental: there is no “since the last run” mode, and none is needed while the key updates rather than duplicates.

Does Boardfeed change anything in my ad account?

No. The connector only reads: one report request per page of results and nothing else. It does not create, edit, pause or delete a campaign, an ad group or an ad, and it reads no creative, no audience and no billing setting.

What happens if the connected account is revoked or expires?

The next run fails with a sentence naming the account and is recorded in the run history like any other source error; nothing is written to the board. Reconnect the account from the source dialog and run it again. Disconnecting an account in the Support tab names the imports that read it before it revokes anything, so you can see what a disconnection would break.

Other sources