Store Listing CVR Auditor
Evaluates an App Store or Google Play listing — icon, screenshot sequence, captions, subtitle, description, preview vid…
Updated
Use this skill
$ npx skills add seoskills.sh/store-listing-cvr-auditorAbout this skill
Store Listing CVR Auditor is a App Store Optimization skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves keyword and listing optimization for the App Store and Google Play. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.
SKILL.md
Store Listing CVR Auditor
AGENT ROLE: Autonomous store-listing conversion auditor. Score the creative and copy against ASO CVR heuristics, rank the fixes by impact, design a valid experiment, and emit the JSON in references/output.schema.json.
OBJECTIVE
Grade every conversion-critical element of a store listing, tell the agent which fixes will move the product-page conversion rate the most, and produce a ready-to-run A/B experiment (variants, even traffic split, success metric, minimum sample size) matched to the store's own experimentation mechanism.
INPUTS
listing(REQUIRED): local JSON withapp_id,platform, optionalbaseline_cvr,iconmetadata,subtitle,description,screenshots[](order, width, height, orientation, has_caption, caption),preview_video,locales_supported[].platform(OPTIONAL enumios|android): overrideslisting.platform.mde(OPTIONAL, default 0.10): minimum detectable effect (relative) for the sample-size calc.fetch_live(OPTIONAL flag): pull the live listing before auditing.
AUTHENTICATION (App Store Connect / Play Console)
- The offline audit reads
--listingand needs NO credentials. --fetch-liveREQUIRES a bearer token: envAPP_STORE_CONNECT_TOKEN(iOS, minted fromAPP_STORE_CONNECT_KEY_ID/APP_STORE_CONNECT_ISSUER_ID/APP_STORE_CONNECT_PRIVATE_KEYas an ES256 JWT) orGOOGLE_PLAY_ACCESS_TOKEN(Android). IF--fetch-liveis set and the token is unset THEN STOPerror.code="AUTH_MISSING_STORE_TOKEN".401→ STOPAUTH_EXPIRED.- Live endpoint: iOS
GET https://api.appstoreconnect.apple.com/v1/apps/{id}; AndroidGET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{id}.
EXPECTED TOOL CALLS
- Run
scripts/listing_cvr_auditor.py --listing listing.json --platform ios [--mde 0.10 --fetch-live]. - Offline: zero network calls. Image metadata (dimensions, has_text, caption text) is supplied in the listing — the auditor scores metadata, it does not decode pixels.
PROCEDURE (deterministic)
STEP 1 — LOAD the platform guideline set (icon size, alpha rule, subtitle max, screenshot max/recommended, mechanism, treatment cap).
STEP 2 — AUDIT ICON: exact dimensions, no baked-in text, no alpha where the store forbids it.
STEP 3 — AUDIT SCREENSHOTS: count vs recommended; the first 1-3 (shown in search) MUST be captioned; caption concision (≤45 chars); orientation consistency across the first set; preview-video presence.
STEP 4 — AUDIT TEXT: subtitle present and within length; description substantial enough to front-load value above the fold.
STEP 5 — AUDIT LOCALIZATION: flag single-locale listings as a coverage/CVR miss.
STEP 6 — SCORE each check (pass=1, warn=0.5, fail=0) weighted; roll up per-category and an overall 0-100. RANK non-passing checks by severity then weight into prioritized_fixes with an impact value.
STEP 7 — EXPERIMENT PLAN: pick the top fix as the test element; build control + treatment variants under the store mechanism (App Store PPO ≤3 treatments / Play ≤4); even traffic split; success metric per platform; min_sample_per_variant from a two-proportion normal approximation (alpha=0.05 two-sided, power=0.80) on baseline_cvr and mde.
RATE LIMITS & ERROR HANDLING
- Live
429→ backoff2^attempt(max 5) then STOPRATE_LIMITED;5xx/timeout retry ≤3 then STOPLIVE_FETCH_FAILED. - Concurrency ≤ 1 (a single app fetch). The offline audit has no rate surface.
MISSING / INSUFFICIENT DATA
- IF
baseline_cvris absent THEN the sample size is computed on an assumed 0.30 andbaseline_assumed=trueis set with a note — NEVER present an assumed sample size as measured. - IF neither icon nor screenshot metadata is supplied THEN
status="insufficient"with a warning; partial listings still score the elements that are present. - Heuristics grade supplied metadata only; the auditor never claims to have inspected image pixels it was not given.
OUTPUT
One JSON object per references/output.schema.json. No prose.
FILES
scripts/listing_cvr_auditor.py— heuristic listing audit, weighted CVR scoring, prioritized fixes, power-based A/B plan.references/output.schema.json— output contract.
Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.
Embed a badge
Install into your agent
More in App Store Optimization
paseo-committee
Form a committee of two high-reasoning agents to step back, do root cause analysis, and produce a plan. Use when stuck, looping, tunnel-visioning, or facing a hard planning problem.
app-store-optimization
No description available.
aso
No description available.
masonry
No description available.
app-store-aso
Generate optimized Apple App Store metadata recommendations with ASO best practices. Use this skill when analyzing app listings, optimizing metadata (title, subtitle, description, keywords), performing competitive analysis, or validating App Store listing requirements. Triggers on queries about App Store optimization, metadata review, or screenshot strategy.
App Keyword Rank Tracker
Records an app's keyword positions across the App Store (keyless iTunes Search) and Google Play (ASO rank API) and acro…