Build and Upload a TikTok Playable Ad
TikTok accepts a ZIP file. The ZIP root must contain index.html and config.json.
Generated output
Needle creates dist/TikTok/playable.zip. The build uses the TikTok Playable SDK instead of MRAID.
Requirements
- A TikTok for Business account
- A registered app
- Business and billing details
- A video for the feed ad
- An App Promotion campaign in Smart+
Read the TikTok playable ad specification. Then read the TikTok campaign procedure.
1. Add the profile
playableAds: {
name: "MyGame",
platforms: [{
platform: "tiktok",
maxBytes: 5_000_000,
reportPath: "artifacts/tiktok-playable-build-report.json",
orientation: 0,
}],
}orientation | Layout |
|---|---|
0 | Portrait and landscape |
1 | Portrait only |
2 | Landscape only |
See Build Playable Ads for the complete Vite configuration.
2. Build the ZIP file
npm run build -- --productionThe ZIP has this structure:
playable.zip
├── index.html
└── config.jsonTikTok requires the hosted Playable-sdk.js. The ZIP contains all other game files.
3. Upload the ZIP file
- Open Creative Library → Playable.
- Select + Add.
- Upload
dist/TikTok/playable.zip. - Wait for validation.
- Open the preview.
- Complete the game.
4. Add the playable to a campaign
- Select + Create in Ads Manager.
- Select App Promotion.
- Select App Install.
- Select the app and optimization goal.
- Select TikTok placement.
- Select + Add Creative at ad level.
- Select the playable.
- Add the required video.
- Preview the ad.
- Submit the ad for review.
Safe zones
Use the TikTok UI overlays during the test. Keep controls and important text outside the overlays.
Test on a device
- Open the campaign or ad group.
- Open View data → Creatives → Preview.
- Select TikTok → QR Code.
- Scan the code with TikTok.
- Select Preview Ad.
Read Preview ads with a QR code. A QR code expires after seven days. A preview session expires after 24 hours.
Test with an agent
Upload the ZIP to an authorized Creative Library draft. Record all validator messages.
For a local test, extract the ZIP. Then use the browser test procedure.
Do not publish a campaign or change its spend without permission.
Troubleshooting
| Error | Action |
|---|---|
| ZIP structure rejected | Upload playable.zip. Do not put the ZIP in another ZIP or folder. |
| CTA does not work locally | Test the CTA in TikTok Preview. The local test does not supply the hosted SDK. |
| HTTP request rejected | Remove remote game files, fonts, analytics, and configuration. Keep the required TikTok SDK. |