PRD Hooks
✽
Checklist-style hooks a PRD for Upgraded Smart+ Catalog on Sprinklr should cover. Scaffolding only — not prose — so the PM can tick against it.
User stories
Advertiser (end-user)
- As an advertiser, I want to create a single Upgraded Smart+ campaign that advertises both my full catalog and brand videos, so I don't split budget across two campaigns. → flexible-catalog-ads-at-ad-level
- As an advertiser, I want my catalog ad delivered across web and app from the same campaign. → smart-plus-catalog-ads-web-and-app
- As an advertiser with iOS apps, I want to be warned before publish if my MMP configuration does not meet Smart+ Catalog prereqs. → 1
- As an advertiser, I want to pick among All products / a Product Set / up to 20 specific SKUs for each catalog ad.
- As an advertiser, I want to see a preview of my catalog ad on TikTok before it publishes.
Trafficker (Sprinklr operator)
- As a trafficker, I want to bulk-create catalog + non-catalog Smart+ ads from one composer view.
- As a trafficker, I want Sprinklr to validate my catalog has ≥4 active products before publish 1.
- As a trafficker, I want a TikTok Ads Manager preview link generated for every published catalog ad 4.
Entities touched
| Entity | Change required |
|---|---|
| Campaign | No schema change — inherits Upgraded Smart+. |
| AdGroup | Optional product_set_id (for ad-group-scoped catalog bias). |
| Ad | New fields: catalog_id, product_selection_mode ∈ {all, set, specific}, product_set_id, sku_list (≤20). |
| Asset group (if modelled separately) | Carries the catalog binding if catalog mode enabled. |
API-call inventory
Per user story, the TikTok Marketing API endpoints exercised 3:
| User story | TikTok endpoints |
|---|---|
| Pick catalog in composer | GET /open_api/v1.3/catalog/get/ |
| Pick product set | GET /open_api/v1.3/catalog/set/get/ |
| Pre-publish catalog health | GET /open_api/v1.3/catalog/overview/ |
| Verify locations/currency | GET /open_api/v1.3/catalog/available_country/get/, /location_currency/get/ |
| Confirm event source bound | GET /open_api/v1.3/catalog/eventsource_bind/get/ |
| Publish | Campaign / Ad Group / Ad create endpoints with Upgraded Smart+ + catalog ad-level fields |
Telemetry hooks
Events the PRD should define:
upgraded_smart_plus_catalog_campaign_startedupgraded_smart_plus_catalog_publish_success(+ objective, destination)upgraded_smart_plus_catalog_publish_failure(+ reason, api_error_code)mmp_preflight_blocked(+ which_check: probabilistic_match | attribution_window | reengagement_window)catalog_preflight_blocked_insufficient_products(+ product_count)catalog_binding_failed(+ api_error_code)catalog_adoption_toggle_used(per-ad; captures the uptake of ad-level flexibility)
UX surfaces
- Ads Composer → Ads tab → "Use catalog" toggle (not Campaign tab).
- Product selection picker: three radios (All / Product Set / Specific).
- Preflight modal before Publish — surface catalog health + MMP health.
- Publish confirmation with preview-link CTA 4.
Rollout flags
ff_tiktok_upgraded_smart_plus_catalog— primary gate for the MVP.ff_tiktok_smart_plus_catalog_app_retargeting— follow-up PRD.ff_tiktok_catalog_insights_surface— follow-up PRD.