---
name: seasonal-aso
description: Build an app Product's seasonal calendar and, per moment, the keyword, promotional text and screenshot changes with submission and revert dates. Use for "seasonal", "holiday", "Christmas", "New Year", "back to school", "Black Friday", "trending right now". For the full metadata rewrite use metadata-optimization; for the event cards tied to a moment use in-app-events.
metadata:
  version: 1.0.0
---

# Seasonal ASO

Seasonal rankings are crowded and short: metadata indexes in 1–3 days, so changes go in two weeks before the peak and come out 3–5 days after it. Output is a **seasonal calendar** with, per moment, the metadata, promotional text and screenshot changes and their timing; the User submits in App Store Connect and `in-app-events` covers the matching event card.

## Gather

1. `read_context` — positioning, ICP, target keywords, the moments the Product already owns (launches, anniversaries).
2. `connector_asc_localizations` when the ASC Connector exists — the subtitle, the promotional text and the **keywords field** of every Locale: the evergreen baseline every seasonal swap must return to, read in the Locale of the storefront the moment belongs to (the calendar is storefront-specific). Without it, treat those fields as unknown and write each seasonal value without its current one.
3. `connector_asc_screenshots` when the ASC Connector exists — the first two slots of the primary locale's sets; look at them with `view_image` before deciding on a seasonal frame. Without it, the public `screenshotUrls` from iTunes Lookup through `fetch_url` (`https://itunes.apple.com/lookup?id=<App Store id>&country=<storefront>`).
4. `connector_apple_ads_search_terms` when the Apple Ads Connector exists — seasonal terms with observed taps and installs, and Apple's suggestions. Without it, take the reference calendar's terms and the competitors' seasonal listings through `fetch_url` on iTunes Search.
5. `connector_asc_analytics` when the ASC Connector exists — last year's impressions and downloads by week, which show which moments moved the Product.

## Plan

The moment calendar, the T-minus timeline, the seasonal-vs-evergreen trade-off and the trending-moment variant are in [`references/seasonal-calendar.md`](references/seasonal-calendar.md); read it to select moments. Field limits and indexing rules are those of `metadata-optimization`'s [`field-rules.md`](../metadata-optimization/references/field-rules.md).

1. **Select moments** — a moment fits when its terms touch the Product's core use; skip the rest.
2. **Keywords** — 2–4 seasonal terms per moment, swapped for the weakest evergreen terms in the keywords field. A term ranking well today stays.
3. **Subtitle** — a seasonal hook only when the current subtitle is not keyword-critical; otherwise keep.
4. **Promotional text** — always, 170 chars, no review: the seasonal call to action or limited-time feature.
5. **Screenshots** — a seasonal frame or theme on the first two slots when the moment justifies the production (`screenshot-optimization`).
6. **Timing** — submit and revert dates counted back from the peak, using the reference timeline.

## Output: seasonal calendar

The year's selected moments in date order. Per moment: peak window, seasonal terms with source (search terms, suggestions, inference), keywords field `current → proposed` with `chars/100`, subtitle keep or change, promotional text `chars/170`, screenshot decision, and dates: brief creative, submit metadata, submit promotional text, monitor, revert metadata, revert promotional text. Trending moments get promotional text only, within 24–48 hours, reverted after 3–7 days.

Done when every selected moment has a submit date at least 5 days before peak and a revert date, every proposed field is within its limit, no evergreen term that ranks is swapped, and the Output names the data it lacked (keywords field, search terms, last year's trend) when a Connector was absent.

## Related Skills

- `metadata-optimization` — field rules and the evergreen package the calendar departs from and returns to.
- `in-app-events` — the event card for each moment.
- `screenshot-optimization` — seasonal screenshot themes.
- `localization` — the calendar for other storefronts.
