> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apostra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# TikTok Ads compatibility

> What you can and cannot do with TikTok Ads through Apostra.

This page compares the TikTok Ads capabilities represented in the
Apostra adapter with what Apostra currently makes available to buyers.
It answers a practical question: **what can I do through Apostra today, and
what would still require another path?**

<Note>
  **Last reviewed 2026-08-27.** This is Apostra's description of
  its own adapter, based on the implementation and the linked provider
  documentation. TikTok Ads has not reviewed or endorsed this page.
  Availability can still vary by account permissions, market, and provider access.
</Note>

## At a glance

| Area                 | 🟢 Available | 🟡 Partial | 🔵 Testing | ⚪ Planned |
| -------------------- | ------------ | ---------- | ---------- | --------- |
| Campaign products    | **0**        | **0**      | **43**     | **4**     |
| Creative formats     | **0**        | **0**      | **0**      | **8**     |
| Adapter capabilities | **1**        | **0**      | **0**      | **15**    |

### How to read availability

* 🟢 **Available** — Offered through Apostra now, subject to your ad account's permissions and eligibility with the provider.
* 🟡 **Partial** — Some of the workflow is available; the Comments column explains the boundary.
* 🔵 **Testing** — Apostra is validating the workflow before offering it broadly.
* ⚪ **Planned** — Not offered through Apostra yet. The provider may still support it directly; Comments explains why and links a roadmap reference.

## Roadmap

The adapter roadmap is tracked in AI-1942 (a plain-text reference — Apostra's internal issue tracker is not public).
This roadmap tracks TikTok product completeness, account resources, and live readiness. Every row that is not currently available shows
that reference or a more specific one in its References column, so customers
and partners can quote a stable identifier when asking about a capability.

## Connection, accounts, and identity

TikTok Ads connects to Apostra through an OAuth grant. Connecting a Business Center account gives Apostra access to each Advertiser account (plus channel identities for Spark Ads) it can reach — you then map each one to your advertisers. The mapped account decides which TikTok Ads tenant a buy runs on: a media buy for an unmapped advertiser fails closed with `account_mapping_required` rather than silently using another account. Connection, account-discovery, and revocation behavior is the same across ad platforms — see [Platform accounts and advertiser mapping](/v2/concepts/ad-platform-accounts) for the full model and the [TikTok Ads section of the connecting guide](/v2/guides/connecting-ad-platforms#tiktok) for TikTok Ads-specific permissions.

| Apostra concept                             | TikTok Ads concept             | What it represents                                                       |
| ------------------------------------------- | ------------------------------ | ------------------------------------------------------------------------ |
| Account (`account`)                         | provider advertising account   | The authenticated selected account is the execution boundary.            |
| Media Buy (`media_buy`)                     | campaign                       | Media Buy maps to campaign.                                              |
| Package (`package`)                         | ad group                       | Budget, targeting, optimization, and flight bindings.                    |
| Creative Assignment (`creative_assignment`) | ad or identity-backed creative | Creative materialization or assignment surface declared by current code. |

## Campaign products

| Feature                                            | Availability | References                                                                               | Comments                                                                                                                                                   |
| -------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reach                                              | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Video Views                                        | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Video Views 15s                                    | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Traffic                                            | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart Traffic Clicks                               | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart Traffic Landing Page Views                   | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Followers                                          | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Profile Visits                                     | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Conversions                                        | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Sales Website Catalog                              | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Installs                                       | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Install                                  | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App In App Event                             | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Value                                    | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Value Purchase Target Roas Day7          | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Value Purchase Target Roas Day0          | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Value Ad Revenue Highest Value Day7      | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Value Ad Revenue Highest Value Day0      | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Value Ad Revenue Target Roas Day7        | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart App Value Ad Revenue Target Roas Day0        | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Clicks                                 | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install In App Event                           | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Retargeting In App Event                       | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Retargeting Value Maximum Delivery             | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Value                                  | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Value Target Roas Day7                 | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Value Purchase Target Roas Day0        | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Value Ad Revenue Highest Value Day7    | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Value Ad Revenue Highest Value Day0    | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Value Ad Revenue Target Roas Day7      | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| App Install Value Ad Revenue Target Roas Day0      | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Lead Gen                                           | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Lead Gen Website                                   | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Lead Gen Direct Message Clicks                     | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Lead Gen Direct Message Conversations              | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Lead Gen Phone Call Clicks                         | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Lead Gen Messaging App Clicks                      | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Lead Gen Messaging App Conversations               | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Smart Web Conversion                               | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra cannot yet verify that the selected account's Pixel supports the required event. Current boundary: Apostra implementation/testing.                 |
| Smart Web Value                                    | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra cannot yet verify that the selected account's Pixel supports value optimization. Current boundary: Apostra implementation/testing.                 |
| Smart Catalog Conversion                           | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra cannot yet verify that the selected account's Pixel supports the required event. Current boundary: Apostra implementation/testing.                 |
| Smart Catalog Value                                | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra cannot yet verify that the selected account's Pixel supports value optimization. Current boundary: Apostra implementation/testing.                 |
| Search Traffic Clicks Maximum Delivery             | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Search Traffic Clicks Cost Cap                     | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Search Traffic Landing Page Views Maximum Delivery | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Search Traffic Landing Page Views Cost Cap         | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |
| Search Web Conversions Target Cpa                  | 🔵 Testing   | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra has implemented this product in code but has not yet completed testing for general availability. Current boundary: Apostra implementation/testing. |

## Optional maximum-CPC bidding

Traffic (`tiktok_traffic`) and App Install Clicks (`tiktok_app_install_clicks`) use automatic bidding when a package omits `bid_price`.

To set a cap for either product, supply a positive `packages[].bid_price`. Apostra then uses TikTok custom bidding and treats the value as the maximum cost per click, as indicated by `max_bid: true` on the product's pricing option.

Apostra validates a supplied bid, including the advertiser currency's minor-unit precision, before creating or updating a TikTok campaign. After each write, it reads the ad group back and reports success only when the bid type and maximum CPC match the request. Before supplying a maximum CPC, rediscover either product with `get_products`; a selection saved from an earlier discovery response does not advertise this option. An existing automatic-bidding package can move to maximum-CPC bidding only when it was created through Apostra's manual TikTok flow from a response advertising this option and its durable product and bidding provenance are available; missing or mismatched provenance fails without a provider write. Later maximum-CPC changes are supported. Clearing `bid_price` does not move a custom-bidding package back to automatic bidding. Other TikTok products retain their creation-time bidding modes; on update, Apostra rejects `bid_price` for an automatic-bidding package whose selected product did not advertise maximum-CPC bidding, and automatic-bidding package readback omits stale provider bid values rather than presenting them as an active buyer cap.

The custom-bid path has automated contract and readback coverage, but it has not yet been validated with a live TikTok account; account permissions and eligibility remain authoritative.

## Pricing notes

`pricing_options` omits `floor_price` and `price_guidance` for every TikTok product, including the two products above that support a maximum-CPC bid. TikTok exposes no discovery-time bid estimate, so Interchange no longer guesses a floor. Each product is still priced (`pricing_model`, `currency`); there is simply no platform-backed number to bid against yet.

## Creative formats

These rows describe **Apostra availability**, not a claim that the ad platform
itself prohibits an unavailable format.

| Feature              | Availability | References                                                                               | Comments                                                                                                                                                                                                |
| -------------------- | ------------ | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| In Feed Video        | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |
| Image Ad             | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |
| Carousel             | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |
| Spark Video          | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |
| Promoted Offerings   | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |
| Generated Image 9x16 | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |
| Generated Video 9x16 | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |
| Generated Offerings  | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra represents this creative format in its catalog, but has not completed the end-to-end buyer workflow and faithful readback needed to offer it. Current boundary: Apostra implementation/testing. |

## What the adapter can do

| Feature                | Availability | References                                                                               | Comments                                                                                                                                                                      |
| ---------------------- | ------------ | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| List Accounts          | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Sync Accounts          | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Account synchronization is not implemented. Current boundary: Apostra implementation/testing.                                                                                 |
| Get Products           | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Sync Creatives         | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| List Creatives         | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Preview Creative       | 🟢 Available | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs)           | Available through Apostra.                                                                                                                                                    |
| Create Media Buy       | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Get Media Buys         | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Update Media Buy       | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Get Media Buy Delivery | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Get Signals            | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Sync Audiences         | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Sync Event Sources     | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Log Event              | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Sync Catalogs          | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Get Account Financials | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this capability; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |

## Placement choices

Apostra does not expose a separate TikTok Ads placement selector.

## Targeting

| Feature          | Availability | References                                                                               | Comments                                                                                                                                                                            |
| ---------------- | ------------ | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Audience Exclude | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this targeting choice; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Audience Include | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this targeting choice; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Geo Countries    | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this targeting choice; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Geo Regions      | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this targeting choice; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Frequency Cap    | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this targeting choice; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Signals          | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this targeting choice; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |
| Keyword Targets  | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Apostra does not currently offer this targeting choice; the linked roadmap reference tracks the missing workflow and disposition. Current boundary: Apostra implementation/testing. |

## Reporting

Apostra reports TikTok Ads delivery day by day (there is no hourly delivery breakdown), aggregated nightly from adapter-reported delivery, in the advertiser's home currency using the booked or historical exchange rate — any cross-currency rollup is always labeled an estimate and is never used for billing. See [Reporting overview](/v2/guides/reporting-overview) for the full model. Apostra does not currently publish an attribution-finality window for TikTok Ads; the table below lists every metric the adapter surfaces today.

| Feature         | Availability | References                                                                               | Comments                     |
| --------------- | ------------ | ---------------------------------------------------------------------------------------- | ---------------------------- |
| Impressions     | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Campaign and ad-group totals |
| Spend           | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Account-currency amount      |
| Clicks          | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Destination clicks           |
| Completed Views | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | 100% video completions       |
| Conversions     | ⚪ Planned    | [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs) · AI-1942 | Provider conversion count    |

## Webhooks and async lifecycle

TikTok Ads does not push status, delivery, or reporting events into Apostra — every campaign product declares `supports_webhooks: false`.

* **Status.** Apostra does not currently poll TikTok Ads in the background for creative or media-buy status changes; status reflects what the adapter returned on your last call.
* **Delivery.** Apostra has not yet made on-demand delivery fetching generally available for TikTok Ads — see Get Media Buy Delivery in "What the adapter can do" above. The `/reporting/metrics` endpoints never call the adapter either way — they read from a separately-populated store (see Reporting below), so a reporting request does not itself refresh provider delivery.

This is separate from Apostra's own buyer webhook subscriptions — an unrelated account-level event feed (currently `discovery.revision` only), documented in [Buyer webhooks](/v2/buyer/webhooks).

## Market and account availability

Apostra does not promise that every feature is enabled for every account or
market. Availability is checked against your selected ad account rather than a global market list on this page.

## Important limitations

* **Apostra implementation/testing.** Apostra reviewed 58 TikTok Ads creation flows: 38 exist in the current adapter code, 19 are blocked, and one is unavailable.
* **Apostra implementation/testing.** The implemented campaign products are still being certified before general availability.
* **Apostra implementation/testing.** Briefs with unresolved exclusions or interests, unverified creative localization, or instruction-like prompt text return no runnable products while Apostra asks for clarification.
* **Apostra implementation/testing.** TikTok preview is limited to saved in-feed videos. Other creative families and unsynced or transient specifications are rejected rather than approximated.
* **the ad platform's API or your account's eligibility.** TikTok account permissions, Pixels, apps, catalogs, identities, and market eligibility can further narrow availability.
* **the ad platform's API or your account's eligibility.** Smart+ Website and Smart+ Website Catalog conversion and value products stay unavailable until the selected account's event statistics prove the required Purchase conversion or value eligibility.
* **the ad platform's API.** For some campaign objectives, TikTok's platform automatically extends delivery to TikTok's search results page in addition to your selected placement. TikTok does not offer a way to opt out of this for these objectives, and Apostra cannot disable it on your behalf.

## Technical mapping

Engineering-level detail — raw provider objectives, billing enums, optimization
codes, and object-field mappings. Not required reading to understand what
Apostra can do with TikTok Ads; see the tables above for that.

<AccordionGroup>
  <Accordion title="Campaign product configuration">
    | Product                                                                                                          | Provider objective | Optimization           | Billing |
    | ---------------------------------------------------------------------------------------------------------------- | ------------------ | ---------------------- | ------- |
    | Reach (`tiktok_reach`)                                                                                           | `REACH`            | `REACH`                | `CPM`   |
    | Video Views (`tiktok_video_views`)                                                                               | `VIDEO_VIEWS`      | `ENGAGED_VIEW`         | `CPV`   |
    | Video Views 15s (`tiktok_video_views_15s`)                                                                       | `VIDEO_VIEWS`      | `ENGAGED_VIEW_FIFTEEN` | `CPV`   |
    | Traffic (`tiktok_traffic`)                                                                                       | `TRAFFIC`          | `CLICK`                | `CPC`   |
    | Smart Traffic Clicks (`tiktok_smart_traffic_clicks`)                                                             | `TRAFFIC`          | `CLICK`                | `CPC`   |
    | Smart Traffic Landing Page Views (`tiktok_smart_traffic_landing_page_views`)                                     | `TRAFFIC`          | `LANDING_PAGE_VIEW`    | `OCPM`  |
    | Followers (`tiktok_followers`)                                                                                   | `ENGAGEMENT`       | `FOLLOWERS`            | `OCPM`  |
    | Profile Visits (`tiktok_profile_visits`)                                                                         | `ENGAGEMENT`       | `PAGE_VISIT`           | `CPC`   |
    | Conversions (`tiktok_conversions`)                                                                               | `WEB_CONVERSIONS`  | `CONVERSION`           | `OCPM`  |
    | Sales Website Catalog (`tiktok_sales_website_catalog`)                                                           | `PRODUCT_SALES`    | `CONVERT`              | `OCPM`  |
    | App Installs (`tiktok_app_installs`)                                                                             | `APP_PROMOTION`    | `INSTALL`              | `OCPM`  |
    | Smart App Install (`tiktok_smart_app_install`)                                                                   | `APP_PROMOTION`    | `INSTALL`              | `OCPM`  |
    | Smart App In App Event (`tiktok_smart_app_in_app_event`)                                                         | `APP_PROMOTION`    | `IN_APP_EVENT`         | `OCPM`  |
    | Smart App Value (`tiktok_smart_app_value`)                                                                       | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | Smart App Value Purchase Target Roas Day7 (`tiktok_smart_app_value_purchase_target_roas_day7`)                   | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | Smart App Value Purchase Target Roas Day0 (`tiktok_smart_app_value_purchase_target_roas_day0`)                   | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | Smart App Value Ad Revenue Highest Value Day7 (`tiktok_smart_app_value_ad_revenue_highest_value_day7`)           | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | Smart App Value Ad Revenue Highest Value Day0 (`tiktok_smart_app_value_ad_revenue_highest_value_day0`)           | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | Smart App Value Ad Revenue Target Roas Day7 (`tiktok_smart_app_value_ad_revenue_target_roas_day7`)               | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | Smart App Value Ad Revenue Target Roas Day0 (`tiktok_smart_app_value_ad_revenue_target_roas_day0`)               | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Clicks (`tiktok_app_install_clicks`)                                                                 | `APP_PROMOTION`    | `CLICK`                | `CPC`   |
    | App Install In App Event (`tiktok_app_install_in_app_event`)                                                     | `APP_PROMOTION`    | `IN_APP_EVENT`         | `OCPM`  |
    | App Retargeting In App Event (`tiktok_app_retargeting_in_app_event`)                                             | `APP_PROMOTION`    | `IN_APP_EVENT`         | `OCPM`  |
    | App Retargeting Value Maximum Delivery (`tiktok_app_retargeting_value_maximum_delivery`)                         | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Value (`tiktok_app_install_value`)                                                                   | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Value Target Roas Day7 (`tiktok_app_install_value_target_roas_day7`)                                 | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Value Purchase Target Roas Day0 (`tiktok_app_install_value_purchase_target_roas_day0`)               | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Value Ad Revenue Highest Value Day7 (`tiktok_app_install_value_ad_revenue_highest_value_day7`)       | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Value Ad Revenue Highest Value Day0 (`tiktok_app_install_value_ad_revenue_highest_value_day0`)       | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Value Ad Revenue Target Roas Day7 (`tiktok_app_install_value_ad_revenue_target_roas_day7`)           | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | App Install Value Ad Revenue Target Roas Day0 (`tiktok_app_install_value_ad_revenue_target_roas_day0`)           | `APP_PROMOTION`    | `VALUE`                | `OCPM`  |
    | Lead Gen (`tiktok_lead_gen`)                                                                                     | `LEAD_GENERATION`  | `LEAD_GENERATION`      | `OCPM`  |
    | Lead Gen Website (`tiktok_lead_gen_website`)                                                                     | `LEAD_GENERATION`  | `CONVERSION`           | `OCPM`  |
    | Lead Gen Direct Message Clicks (`tiktok_lead_gen_direct_message_clicks`)                                         | `LEAD_GENERATION`  | `CLICK`                | `CPC`   |
    | Lead Gen Direct Message Conversations (`tiktok_lead_gen_direct_message_conversations`)                           | `LEAD_GENERATION`  | `CONVERSATION`         | `OCPM`  |
    | Lead Gen Phone Call Clicks (`tiktok_lead_gen_phone_call_clicks`)                                                 | `LEAD_GENERATION`  | `CLICK`                | `CPC`   |
    | Lead Gen Messaging App Clicks (`tiktok_lead_gen_messaging_app_clicks`)                                           | `LEAD_GENERATION`  | `CLICK`                | `CPC`   |
    | Lead Gen Messaging App Conversations (`tiktok_lead_gen_messaging_app_conversations`)                             | `LEAD_GENERATION`  | `CONVERSATION`         | `OCPM`  |
    | Smart Web Conversion (`tiktok_smart_web_conversion`)                                                             | `WEB_CONVERSIONS`  | `CONVERSION`           | `OCPM`  |
    | Smart Web Value (`tiktok_smart_web_value`)                                                                       | `WEB_CONVERSIONS`  | `VALUE`                | `OCPM`  |
    | Smart Catalog Conversion (`tiktok_smart_catalog_conversion`)                                                     | `WEB_CONVERSIONS`  | `CONVERSION`           | `OCPM`  |
    | Smart Catalog Value (`tiktok_smart_catalog_value`)                                                               | `WEB_CONVERSIONS`  | `VALUE`                | `OCPM`  |
    | Search Traffic Clicks Maximum Delivery (`tiktok_search_traffic_clicks_maximum_delivery`)                         | `TRAFFIC`          | `CLICK`                | `CPC`   |
    | Search Traffic Clicks Cost Cap (`tiktok_search_traffic_clicks_cost_cap`)                                         | `TRAFFIC`          | `CLICK`                | `CPC`   |
    | Search Traffic Landing Page Views Maximum Delivery (`tiktok_search_traffic_landing_page_views_maximum_delivery`) | `TRAFFIC`          | `LANDING_PAGE_VIEW`    | `OCPM`  |
    | Search Traffic Landing Page Views Cost Cap (`tiktok_search_traffic_landing_page_views_cost_cap`)                 | `TRAFFIC`          | `LANDING_PAGE_VIEW`    | `OCPM`  |
    | Search Web Conversions Target Cpa (`tiktok_search_web_conversions_target_cpa`)                                   | `WEB_CONVERSIONS`  | `CONVERSION`           | `OCPM`  |
  </Accordion>

  <Accordion title="Creative format shapes">
    | Format                                               | TikTok Ads shape      |
    | ---------------------------------------------------- | --------------------- |
    | In Feed Video (`tiktok_in_feed_video`)               | Canonical Code Format |
    | Image Ad (`tiktok_image_ad`)                         | Canonical Code Format |
    | Carousel (`tiktok_carousel`)                         | Canonical Code Format |
    | Spark Video (`tiktok_spark_video`)                   | Canonical Code Format |
    | Promoted Offerings (`tiktok_promoted_offerings`)     | Canonical Code Format |
    | Generated Image 9x16 (`tiktok_generated_image_9x16`) | Canonical Code Format |
    | Generated Video 9x16 (`tiktok_generated_video_9x16`) | Canonical Code Format |
    | Generated Offerings (`tiktok_generated_offerings`)   | Canonical Code Format |
  </Accordion>

  <Accordion title="Targeting field mapping">
    | Targeting choice                      | Provider field                                                                                                                                                                                      |
    | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Audience Exclude (`audience_exclude`) | `Accepted by the current adapter targeting gate; provider eligibility remains account-bound.`                                                                                                       |
    | Audience Include (`audience_include`) | `Accepted by the current adapter targeting gate; provider eligibility remains account-bound.`                                                                                                       |
    | Geo Countries (`geo_countries`)       | `Accepted by the current adapter targeting gate; provider eligibility remains account-bound.`                                                                                                       |
    | Geo Regions (`geo_regions`)           | `Accepted by the current adapter targeting gate; provider eligibility remains account-bound.`                                                                                                       |
    | Frequency Cap (`frequency_cap`)       | `Accepted by the current adapter targeting gate; provider eligibility remains account-bound.`                                                                                                       |
    | Signals (`signals`)                   | `Accepted by the current adapter targeting gate; provider eligibility remains account-bound.`                                                                                                       |
    | Keyword Targets (`keyword_targets`)   | `Required activation input on tiktok_search_* products only; 1-1000 unique (keyword, match_type) entries validated and rejected before any provider mutation. Not accepted on non-Search products.` |
  </Accordion>

  <Accordion title="Reporting field mapping">
    | Apostra output                      | TikTok Ads source  |
    | ----------------------------------- | ------------------ |
    | Impressions (`impressions`)         | `impressions`      |
    | Spend (`spend`)                     | `spend`            |
    | Clicks (`clicks`)                   | `clicks`           |
    | Completed Views (`completed_views`) | `video_views_p100` |
    | Conversions (`conversions`)         | `conversion`       |
  </Accordion>
</AccordionGroup>

## Provider documentation

* [TikTok Ads public documentation](https://business-api.tiktok.com/portal/docs)
* [TikTok preview endpoint](https://business-api.tiktok.com/portal/docs?id=1739403070695426)
* [TikTok advertiser video search endpoint](https://business-api.tiktok.com/portal/docs?id=1740050472224769)
* [TikTok call-to-action enumeration](https://business-api.tiktok.com/portal/docs?id=1737174886619138)
* [TikTok ad-create endpoint](https://business-api.tiktok.com/portal/docs?id=1739953377508354)
