TikTok App Campaign Not Spending? Find Where Delivery Stopped

Find out whether delivery stopped, an app event went missing, or attribution is still catching up before changing your TikTok App Promotion campaign.

A TikTok App Promotion campaign can look active while the ad group you care about serves nothing. It can also keep spending while the install or subscription column goes blank. Those are different incidents. If you change the bid before you know which one you have, you can buy more traffic through a broken measurement path or lose the evidence that would have explained a delivery stop.

Start with impressions and spend for the affected ad group, market and operating system, then read the status detail on the campaign, ad group and ad. No impressions points first to delivery eligibility or auction access. Impressions with spend and missing outcomes point first to the store journey, app event or attribution report. If only one slice fell, compare it with a slice that still runs before changing the whole campaign. TikTok's status guide explains how to find the reason and action card in Ads Manager.

This guide is for a live App Promotion campaign or an approved campaign that never started. If you're deciding whether to launch in the first place, start with the TikTok App Promotion readiness guide.

Find the first thing that stopped

An empty conversion column is a symptom. Give the incident a name the rest of the team can verify, such as “Android ad group stopped getting impressions after noon” or “iOS install reporting fell while spend held.” The name determines which evidence to pull.

What you see What to check first Who should take it --- --- --- No impressions or spend anywhere in the affected account Account notices, available balance or spend limit, schedule, and campaign/ad group status detail Account administrator or billing owner Campaign shows Active, but the intended ad group has zero impressions Delivery status and schedule on the exact child row, eligible ads, ad group budget UA lead; policy owner if the detail flags review Some markets or ads deliver; others are quiet Status detail for affected ads or regions, store destination and market eligibility, spend allocation UA lead and store owner Impressions and spend fell, but did not stop Change log, eligible creative coverage, bidding and audience constraints, event availability UA lead with measurement owner Spend continues, but installs or the optimization event disappear Store path, production event receipt for the correct app, report settings and cohort maturity Product analytics or measurement owner

A budget is a spending limit or allocation, not evidence that the system can spend it at the intended cost. A purchase event is a separate outcome from an impression. Keep those two facts on the incident ticket so a billing issue doesn't become a tracking project and a tracking issue doesn't become a bid increase.

Save a baseline that can survive the next edit

Take a snapshot before making changes. Use a complete affected window and a comparable window from before the issue, with the same account time zone, campaign IDs, filters and reporting breakdown. An unfinished Tuesday morning compared with all of Monday can look like a delivery collapse. The inverse is possible too: one healthy country can hide a stalled ad group when you compare account totals.

Capture campaign and ad group IDs, the app and OS, the intended markets, campaign type, optimization event, bid setting, budget, schedule and status detail. Export impressions, spend, destination clicks and the outcome you are investigating. Note the metric definition: an install from Ads Manager, a first open from an MMP, and an app-store download need not represent the same population or date. Mark any column that is still maturing rather than filling in a zero.

Open TikTok Ads Manager change logs for the same window. They record the affected object, operator, time and activity; the ad-group log covers changes to targeting, schedule, budget and optimization. Add changes the platform log cannot see, such as an app release, a store availability change or an event mapping edit by the measurement team. Keep both the last known good timestamp and the first observed failure. An edit between them is a candidate cause. If the failure began before the edit, rule that edit out as the original trigger.

When possible, pick a comparison group that shares the suspected dependency and another that does not. Two ad groups using the same Android app and purchase event are useful when you suspect the app feed. An iOS group in the same account can help show that some account delivery remains possible, but its healthy spend cannot clear an Android event route or prove identical auction conditions. Write down what each comparison actually rules out.

Check the object TikTok says is affected

TikTok's status definitions say an Active parent can contain a child that's running as expected; the parent label does not clear all children or regions. The status detail can surface a problem from a related row. Open the relevant action card, then verify the affected ad group, ad or creative in its own view. Record the detail alongside the ID so the team can distinguish one stopped creative from an account-wide pause.

For a scheduled or under-review item, check the intended launch time, account time zone and the precise review state. If a confirmed account suspension or disapproval explains the stop, follow the TikTok rejection versus suspension guide and use the applicable official correction or appeal route. A still-running sibling can coexist with an ad rejection; it doesn't make the rejected ad eligible. Conversely, an unexplained drop does not establish that the account was suspended.

For a budget message, identify the level before changing a number. TikTok's budget troubleshooting documentation distinguishes account-level constraints from campaign and ad-group limits. Record the named constraint, time and amount from the appropriate screen. Increasing an ad group allocation cannot clear a billing issue at account level. If the stated budget constraint isn't visible in your role, ask the billing owner to confirm the account state through the normal account controls. Leave bids unchanged while they check it.

For partial delivery, answer a more precise question than “is it running?” Ask whether the specific market, creative or ad group needed for the test is eligible and receiving impressions. A second creative spending can keep the parent healthy while the only creative designed for one market is under review. That matters if your test was meant to compare countries, even if the aggregate campaign is on pace.

Trace the app signal through three separate checks

TikTok's App Promotion objective documentation distinguishes App Install from App Retargeting and lists different optimization goals. Record the actual campaign type and selected event rather than inferring either from its name. A campaign called “Install US” can be configured to optimize for an in-app action; the install count alone cannot prove that action is reaching TikTok.

1. App identity and store path. Match the store listing, platform, production build and TikTok App ID to the app selected in the ad group. TikTok documents the App ID's role in connecting an MMP, SDK or Events API. Where a destination path can be safely previewed, check that it reaches the intended listing for the device and target market. Confirm the app is available to the intended users. Do this before interpreting high clicks and few installs as an audience problem.

2. Production receipt of the right event. Confirm the product action is occurring in production, then trace it through the configured partner or app data connection to the matching app in TikTok's App Events Manager. Record when the event last appeared, whether other events still arrive, and which release or mapping changed. A test in a debug pipeline can verify part of the connection but isn't proof of production reporting; TikTok's SDK integration guide distinguishes those paths. If a custom event is missing from the ad-group selector, TikTok documents event eligibility for custom App Event Optimization; an event seen in a test or recorded by your backend isn't necessarily selectable. Verify the account's actual options before planning a test around it.

3. Attribution of that event to the campaign. A production event in the app connection does not establish how many campaigns get credit for it. Compare the event definition, attribution basis and reporting windows before trying to reconcile Ads Manager with an MMP or product data. In its guide for iOS 14 or later dedicated campaigns, TikTok describes SKAdNetwork reporting delays and possible discrepancies with MMP reporting for that campaign type. Verify whether that documented mode applies to your campaign. Don't apply its timing to every iOS setup or conclude that a blank report caused zero impressions. If the app-level event route is still disputed, use the Firebase versus MMP evidence checklist to assign the reconciliation to an owner.

These checks should give you one of three findings: the destination is wrong, the relevant production event isn't reaching the expected place, or the event is present and the attribution question remains open. Fixing one does not prove the other two. Keep delivery and measurement on separate lines in your incident log until the evidence connects them.

Test an auction constraint only when the campaign is eligible

With the correct app and event, live assets, valid schedule and no confirmed account or budget block, the remaining question can be whether the approved campaign can find enough opportunities under its current settings. TikTok's auction troubleshooting guide discusses bid, audience and creative changes as possible responses. Its learning phase documentation also warns that edits can affect learning. Treat these as reasons to test one hypothesis, not as instructions to turn every lever at once.

For example, if delivery fell just after the team lowered its target cost and eligible creatives, app events and comparable groups stayed steady, the bid change is a reasonable hypothesis. Use an approved spend ceiling and one change, such as restoring the last accepted target where the account supports it. Agree in advance what would count as useful evidence: for example, the affected group starts to receive impressions in a comparable window while its goal and audience stay the same. A return of spend shows the group delivered under those conditions. It does not establish incremental installs or acceptable payback.

If eligible video coverage shrank while the bid held, examine that constraint first. Determine which assets can actually serve in the affected segment. A cross-channel creative fatigue diagnosis can help distinguish repeated exposure and weakening response from an approval or coverage gap. Those problems deserve different briefs: new concepts for a genuine response problem, or eligible asset coverage for a group that cannot show the ads it already has.

Write the test before touching settings: the suspected constraint, evidence for and against it, exact changed setting, unchanged controls, authorized spend cap, observation window, and stop rule. Make the observation window fit the decision. You can observe whether impressions resume before you can judge the cost of a mature subscription cohort. If the best test would require violating the team's economics or broadening into an ineligible market, pause the test and escalate the evidence instead.

Worked example: one active campaign, two separate incidents

Consider a fictional subscription app with Android and iOS App Promotion campaigns. At 11:00, the campaign summary still reads Active. Spend is down, and the growth report shows no new attributed trials. A first look suggests the team should raise its target cost.

The Android export tells a different story. One group spends in its usual range, while the group responsible for a new market has zero impressions and a future start time in the ad account's time zone. The Android group serving today did not need a higher bid. The launch owner had compared two local clocks and expected tomorrow's group to be live. The correct action is to confirm the intended schedule with that owner, then observe whether impressions start in the authorized window.

On iOS, the affected group still has impressions and spend. The analytics owner confirms real trials in product data and checks the applicable attributed report after the measurement window matures. If the gap persists, they can compare app identity, event mapping and attribution scope with the MMP. They cannot use an Android schedule correction to explain iOS reporting. The incident closes only when each owner has a result or a documented open question, even if the combined dashboard already looks healthier.

Hand off the smallest useful evidence packet

For a delivery case, collect the affected IDs, timestamp and account time zone, status detail, schedule, spend and impressions before and after, one unaffected comparison if available, and the exact changes already made. Include the error or notice verbatim in the authorized support channel when appropriate. Ask whether the platform can confirm an eligibility, account or delivery condition you cannot observe. A screenshot of an Active parent alone leaves that question underspecified.

For a measurement case, include the affected app and OS, production release, selected event, data connection, last observed receipt, comparison windows and the reporting source where the number disappeared. Explain whether the issue affects raw event receipt, attributed results or both. Redact user identifiers, payment details, access tokens and unrelated account data before sharing. Keep the internal log even if the problem clears; the next incident should start with a known good comparison rather than a fresh round of guesses.

If your team runs a live app campaign and can share a redacted delivery export, status detail and change timeline, contact Sharply Labs for a scoped evidence review. We'll use the conversation to identify the owner of the next check and outline one bounded test or a clearer support handoff. See our mobile app growth work and paid acquisition services for the related scope. The review carries no guarantee of approval, restored delivery, lower costs or performance.