Best Practices

Optimize your app store presence and keep your credentials secure.

Security Best Practices

API Key Management

  • Use environment variables — Never hardcode API keys in source code
  • Rotate keys regularly — Generate new API keys periodically and revoke old ones
  • Use scoped keys — Create keys with minimal required permissions
  • Separate environments — Use different keys for development, staging, and production
API Key Usagebash
# Good: Use environment variables
export ASC_API_KEY="asc_live_xxx"
asc push
# Bad: Hardcoded in commands (visible in shell history)
asc push --key asc_live_xxx

Store Credentials

  • Service accounts — Use dedicated service accounts for automation
  • Least privilege — Grant only the permissions needed for specific tasks
  • Secure storage — Store credentials in your CI/CD platform's secrets manager

App Store Optimization (ASO)

Title & Subtitle

  • Include primary keyword — Put your most important keyword in the title
  • Keep it memorable — Balance SEO with brand recognition
  • Use subtitle wisely — Include secondary keywords and value proposition

Keywords (App Store)

  • Use all 100 characters — Don't waste valuable keyword space
  • No spaces after commas — Maximize character usage
  • Avoid duplicates — Don't repeat words from your title
  • Research competitors — See what keywords successful apps target
Keyword Formattingtext
# Good: Efficient keyword usage
fitness,workout,exercise,health,tracker,gym,training,weight,loss
# Bad: Wasted characters
fitness, workout, exercise, health, tracker

Description

  • Front-load value — First 1-3 lines are visible before "Read More"
  • Use formatting — Break up text with bullet points and headers
  • Include social proof — Mention awards, press coverage, user numbers
  • Call to action — End with a clear CTA to download

Screenshots

  • First three matter most — Users often don't scroll past the first few
  • Show real UI — Use actual app screenshots, not mockups
  • Add context — Use captions to explain features
  • Localize everything — Text in screenshots should match the locale

Localization Best Practices

Translation Quality

  • Provide context — Use the --context flag to improve AI translations
  • Review translations — Have native speakers review important markets
  • Localize, don't just translate — Adapt messaging for cultural relevance
  • Test character limits — Some languages expand 20-30% in length
Translation with Contextbash
# Provide context for better translations
asc translate --from en-US --to ja \
--context "This is a fitness tracking app for casual users.
Use friendly, encouraging language. Avoid technical jargon."

Priority Markets

Focus your efforts on high-value markets first:

TierMarketsPriority
Tier 1US, UK, Canada, AustraliaEssential
Tier 2Germany, France, Japan, South KoreaHigh
Tier 3Spain, Italy, Brazil, MexicoMedium
Tier 4Other marketsAs needed

Automation Best Practices

CI/CD Integration

  • Validate before pushing — Run asc validate in CI before deployment
  • Use dry-run mode — Test workflows with --dry-run first
  • Version control metadata — Store metadata in your repo for history
  • Automate release notes — Generate from commit messages or changelogs
Validation in CIyaml
name: Validate Metadata
on: [pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g @appstorecopilot/cli
- run: asc validate --strict
env:
ASC_API_KEY: ${{ secrets.ASC_API_KEY }}

Error Handling

  • Check exit codes — CLI returns non-zero on failure
  • Parse JSON output — Use --json for programmatic access
  • Implement retries — Handle transient API failures gracefully
  • Monitor status — Check submission status after publishing

Performance Tips

  • Batch operations — Use --all flags instead of multiple commands
  • Cache translations — Only translate changed content
  • Compress screenshots — Optimize images before uploading
  • Use webhooks — React to events instead of polling for status
Batch Operationsbash
# Efficient: Single command for all locales
asc translate --from en-US --all
# Less efficient: Multiple commands
asc translate --from en-US --to es-ES
asc translate --from en-US --to fr-FR
asc translate --from en-US --to de-DE
# ...