
Your TikTok Ads were working. Cost per order was under 100 MAD. ROAS was above 3x. Then, over 7 to 10 days, performance started declining. Now you're at 1.5x ROAS, your CPA has doubled, and you don't know whether to pause the campaign, increase the budget, or start over.
A ROAS drop on TikTok is almost never random. There are four specific causes, and each one has a different fix. The mistake is to treat them all the same and make a structural change (new campaign, new objective, new targeting) before diagnosing which problem you actually have.
This guide walks through the diagnosis in the correct order, from most common to least common.
Step 1: Check Whether Your ROAS Drop Is Real or a Tracking Artifact
Before diagnosing creative fatigue, budget problems, or structural issues, verify that the ROAS drop is showing a real decline in sales, not a tracking gap.
TikTok's browser pixel underreports conversions since iOS privacy changes reduced its accuracy. If you are running pixel-only tracking without TikTok Events API, your reported ROAS was always understating actual performance. When iOS users make up a larger share of your traffic on a given week (which fluctuates), the reported ROAS drops further, even if actual sales are unchanged.
How to check: Compare your TikTok-reported purchases for the last 7 days with your Shopify order count for the same period and attribution window. Filter Shopify to orders where the source contains TikTok or where the campaign UTM parameters match.
- If Shopify shows more orders than TikTok reports: tracking gap. Install Events API.
- If Shopify and TikTok reports roughly match: the ROAS drop reflects a real performance decline. Continue to Step 2.
The fix if tracking is the problem: Install TikTok Events API via the TikTok Shopify channel app. Enable deduplication. Allow 7 days for data to recalibrate. In most cases, ROAS will appear to recover once the algorithm starts receiving complete purchase signals again.
Step 2: Check Creative Fatigue
For Moroccan fashion brands, creative fatigue is the most common cause of a genuine ROAS decline on TikTok. Fashion creative has a shelf life of 3 to 5 days on TikTok before performance begins declining significantly.
How to identify creative fatigue:
- Go to TikTok Ads Manager and look at your ad-level data (not campaign or ad group level)
- Filter by the last 14 days
- Sort by CTR or CPA over time, looking for creatives that started strong and are now declining
- Check video completion rate: a creative with declining completion rate is being skipped more frequently
Fatigue thresholds for Moroccan fashion TikTok Ads:
| Metric | Healthy | Fatigue Signal |
|---|---|---|
| CTR | Above 1% | Dropping below 0.5% |
| Video completion rate | Above 25% | Dropping below 10% |
| CPA | Stable within 20% | Rising more than 40% week-over-week |
| Frequency | Under 2 per week | Above 3 per week per user |
If 2 or more of these signals are present on your top-spending creatives, creative fatigue is the primary cause of your ROAS drop.
The fix: Pause the fatigued creatives. Launch 3 to 5 new creative variants immediately. Do not change the campaign structure, targeting, or budget at the same time as launching new creative, or you will reset the learning phase and lose attribution data. Change one variable at a time. For more detail on building creative that avoids fatigue, see TikTok ad creative mistakes for Morocco.
Step 3: Check Whether the Learning Phase Reset
Any significant change to a TikTok campaign resets the learning phase. The algorithm has to start over collecting the conversion events needed to optimize delivery. During this reset, ROAS is unstable and typically lower than your stable-state performance.
Actions that trigger a learning phase reset on TikTok:
- Budget increase or decrease of more than 20% in a single change
- Changing the campaign objective
- Changing the optimization event
- Adding or removing ad groups
- Changing targeting settings
- Pausing the campaign for more than 7 days and restarting
If you made any of these changes in the 7 to 14 days before your ROAS started dropping, the decline is likely a learning phase reset, not a structural campaign problem.
How to identify: In TikTok Ads Manager, check the "Learning" status label on your ad groups. An ad group in learning will show a learning status indicator. Compare the date when learning reset to the date when ROAS started declining.
The fix: Be patient. A campaign that reset learning after a budget change typically stabilizes within 7 to 10 days, provided:
- Budget is sufficient to generate 50 purchase events in 7 days
- Creative is fresh and not fatigued
- No additional changes are made during the recovery period
If ROAS has not stabilized after 14 days post-reset, the issue is something else. Continue to Step 4.

Step 4: Check Campaign Structure and Objective
If tracking is clean, creatives are fresh, and learning phase is stable but ROAS is still dropping, check the fundamental campaign setup.
Common structural problems:
Wrong optimization event: If you are optimizing for Add to Cart or Initiate Checkout instead of Purchase, TikTok finds users who add items to cart, not users who complete purchases. As your campaign matures, you get more cart abandoners and fewer buyers. ROAS declines over time as the algorithm gets better at finding the wrong user.
Fix: Switch optimization event to Purchase. This requires the Events API to be firing the Purchase event correctly.
Too many ad groups competing: If you have 5 to 8 ad groups in the same campaign targeting overlapping audiences, they compete with each other at auction. This drives up your own CPM and fragments the data needed for learning. Each ad group ends up with less budget and fewer conversion events, making it harder to exit learning.
Fix: Consolidate to 2 to 3 ad groups per campaign. Combine overlapping audiences. Let each ad group accumulate sufficient budget to exit learning.
Audience too narrow: For Morocco, TikTok's interest targeting database is smaller than Meta's. Narrow interest stacks (fashion AND luxury AND online shopping AND beauty) produce very small audiences that exhaust quickly, driving CPM up and ROAS down.
Fix: Use broader targeting. Let the algorithm find buyers through conversion signals rather than demographic filters. TikTok's content-based algorithm is better at finding buyers through creative quality than through audience pre-filtering.
Step 5: Check the Landing Page
If all of the above checks out and ROAS is still declining, the issue may be downstream of the ad itself: your landing page conversion rate has dropped.
Landing page conversion rate declines for Moroccan TikTok traffic can be caused by:
- Page load time increasing (new app or plugin added to Shopify slowing the store)
- Product page changes (price increase, image changes, copy changes) that reduce conversion
- Seasonal drop in purchase intent (post-Ramadan, post-summer, around major exam periods)
- Increased competition driving higher CPM and changing the audience quality
How to check: Look at your Shopify analytics for the same traffic from TikTok. Check the add-to-cart rate and checkout completion rate independently. If add-to-cart rate has dropped, the product page changed or the audience quality changed. If add-to-cart is stable but checkout completion dropped, there is a checkout friction problem.
For details on diagnosing post-click conversion problems, see TikTok Ads clicks but no sales in Morocco.
Your TikTok Ads ROAS is dropping and you don't know which of these 5 causes is responsible. Glorythm runs TikTok Ads audits for Moroccan e-commerce brands. We run through this exact diagnosis, identify the root cause, and build a fix plan in one call. [Book your free audit →]
ROAS Benchmarks for TikTok Ads in Morocco (2026)
Use these to calibrate what your ROAS drop actually means:
| ROAS | Interpretation |
|---|---|
| Above 4x | Excellent. Scale carefully (max 20% budget increase per 3-4 days). |
| 3x to 4x | Strong and profitable for most Moroccan fashion margins. Maintain and test new creatives. |
| 2x to 3x | Acceptable. Investigate creative freshness and tracking accuracy. |
| 1.5x to 2x | Warning zone. Run the diagnosis from Step 1 before making any structural changes. |
| Below 1.5x | Losing money on ad spend. Pause scaling. Diagnose and fix before spending more. |
| Below 1x | Spending more than you earn. Pause the campaign immediately. |
Note: TikTok ROAS should be interpreted with the tracking gap in mind. If you do not have Events API installed, multiply your reported ROAS by 1.3 to 1.5 to estimate actual ROAS. A TikTok-reported 1.5x ROAS with pixel-only tracking may reflect an actual 2x to 2.2x ROAS once COD orders and iOS purchases are accounted for.
When to Reset vs When to Optimize
One of the most common mistakes Moroccan brands make after a ROAS drop is restarting the entire campaign. This destroys all accumulated pixel learning, restarts the learning phase from zero, and typically makes performance worse in the short term.
Optimize (don't restart) when:
- ROAS is above 1.5x and tracking shows a real performance issue
- Creative is fatigued but campaign structure is healthy
- Budget was changed too fast and learning phase reset
- One or two ad groups are underperforming while others are stable
Consider restarting when:
- ROAS has been below 1x for 14+ consecutive days despite creative refresh
- Campaign objective was set incorrectly from the start (Video Views instead of Conversions)
- Pixel tracking was completely broken and no Purchase events were recorded
- Campaign structure has been heavily modified (multiple objective changes, audience resets)
When restarting, start with a clean structure: one campaign, one or two ad groups, fresh creative, correct objective (Purchase), Events API installed and verified.
The Diagnosis Sequence: Quick Reference
| Symptom | First Check | Fix |
|---|---|---|
| ROAS dropped suddenly | Tracking gap (Shopify vs TikTok) | Install Events API |
| CTR dropping, CPA rising | Creative fatigue | New creative variants |
| ROAS dropped after a change | Learning phase reset | Hold steady for 7-14 days |
| High CPM, stable CTR | Audience exhaustion or narrow targeting | Broaden targeting |
| Good CTR, high CPA | Landing page conversion problem | Audit product page |
Frequently Asked Questions
How quickly should I expect TikTok ROAS to stabilize after launching a campaign?
For a properly structured campaign with Events API installed, correct objective, and sufficient budget (2,500 to 4,000 MAD/month minimum), expect unstable ROAS for the first 7 to 14 days while the algorithm collects conversion data. After 50 purchase events have been recorded, ROAS typically stabilizes. If it doesn't stabilize within 21 days, diagnose the campaign structure.
Why is my TikTok ROAS lower than my Meta ROAS for the same product?
This is common for Moroccan fashion brands. TikTok's audience in Morocco skews younger (18-34) with lower credit card penetration and higher purchase hesitation on unfamiliar brands. Meta's audience in the 30-45 range often has higher disposable income and more purchasing intent. Lower TikTok ROAS doesn't always mean the platform is worse: if CPM is lower on TikTok, you may be reaching a larger audience at lower cost even if individual conversion rates are lower.
Does pausing a TikTok Ads campaign hurt performance?
Pausing for more than 7 days typically resets the learning phase when you restart. Short pauses (1 to 3 days) may not reset learning, but longer pauses will. If you need to pause for budget reasons, reduce budget to the minimum (roughly 100 MAD/day per ad group) rather than pausing completely. This keeps the campaign technically active without significant spend.
How often should I change targeting on TikTok Ads Morocco?
As rarely as possible. Every targeting change resets the learning phase. Set targeting once, let the campaign exit learning, and only change targeting if ROAS has not stabilized after 21 days. TikTok's algorithm is better at finding buyers through creative quality signals than through interest targeting in a market the size of Morocco. Broad targeting with strong creative typically outperforms narrow targeting with average creative.
What is a good frequency for TikTok Ads before performance degrades?
For Moroccan fashion, watch for frequency above 2 to 3 per user per 7-day window. Once frequency crosses 3, the same user has seen the creative multiple times and is more likely to skip it. This raises CPM and lowers conversion rates. Frequency above 3 combined with dropping CTR is a clear signal to introduce new creatives rather than continuing to serve the same ad to the same audience.
ROAS instability on TikTok Ads usually has a specific cause. Glorythm identifies it in one audit session. We check tracking, creative fatigue, campaign structure, and landing page conversion for Moroccan fashion brands. [Book your free audit →]