[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -0,0 +1,371 @@
|
||||
---
|
||||
id: mobile-app-store-optimization
|
||||
title: ASO — App Store / Play Store 최적화
|
||||
category: Coding
|
||||
status: draft
|
||||
source_trust_level: B
|
||||
verification_status: conceptual
|
||||
created_at: 2026-05-09
|
||||
updated_at: 2026-05-09
|
||||
tags: [mobile, aso, vibe-coding]
|
||||
tech_stack: { language: "process", applicable_to: ["Mobile"] }
|
||||
applied_in: []
|
||||
aliases: [ASO, App Store Optimization, keyword, screenshot, conversion, App Store Connect, Play Console]
|
||||
---
|
||||
|
||||
# App Store Optimization (ASO)
|
||||
|
||||
> 앱 의 SEO. **Title + keyword + screenshot + rating + review = 검색 / 전환**. App Store + Play Store 다름.
|
||||
|
||||
## 📖 핵심 개념
|
||||
- 검색 = 첫 노출.
|
||||
- 페이지 = 전환 (install).
|
||||
- Rating + review = 신뢰.
|
||||
- 매주 / 매월 update.
|
||||
|
||||
## 💻 코드 패턴
|
||||
|
||||
### App Store (iOS)
|
||||
```
|
||||
Title: 30 char + brand
|
||||
Subtitle: 30 char
|
||||
Keyword: 100 char (CSV, 안 보임)
|
||||
Description: 4000 char
|
||||
Promotional text: 170 char
|
||||
What's new: 4000 char
|
||||
```
|
||||
|
||||
### Play Store (Android)
|
||||
```
|
||||
Title: 30 char
|
||||
Short description: 80 char
|
||||
Description: 4000 char (full text search)
|
||||
What's new: 500 char
|
||||
```
|
||||
|
||||
### iOS keyword field
|
||||
```
|
||||
Title: 가장 무거운 weight.
|
||||
Subtitle: 두 번째.
|
||||
Keyword field: 보조.
|
||||
|
||||
→ Title 에 핵심 keyword 1-2.
|
||||
Subtitle 에 추가 1-2.
|
||||
Keyword field = 나머지 (CSV: comma 만).
|
||||
```
|
||||
|
||||
### Title 예
|
||||
```
|
||||
❌ "MyApp" — brand 만
|
||||
❌ "MyApp - Best Photo Editor App For iPhone" — keyword stuffing
|
||||
|
||||
✅ "Photolab: AI Photo Editor"
|
||||
- Brand + 핵심 keyword + 차별
|
||||
```
|
||||
|
||||
### Keyword research
|
||||
```
|
||||
- Sensor Tower / data.ai / AppFollow
|
||||
- Apple Search Ads (Ads → 인기 keyword)
|
||||
- 경쟁사 분석
|
||||
- "{my niche}" + "for iPhone" / "free"
|
||||
|
||||
매 keyword 의:
|
||||
- Volume (검색)
|
||||
- Difficulty (경쟁)
|
||||
- Relevance
|
||||
```
|
||||
|
||||
### Localization
|
||||
```
|
||||
국가 / 언어 별 title + keyword.
|
||||
EN-US: "Photo Editor: AI Filter"
|
||||
KO: "포토 에디터: AI 필터"
|
||||
JA: "写真編集アプリ"
|
||||
ES: "Editor de Fotos"
|
||||
|
||||
→ 매 locale 가 별 검색 / volume.
|
||||
```
|
||||
|
||||
→ App Store Connect → Localizations.
|
||||
|
||||
### Screenshot
|
||||
```
|
||||
첫 1-3 가 가장 중요 (preview).
|
||||
|
||||
순서:
|
||||
1. Hook (가장 attractive)
|
||||
2. Key feature 1
|
||||
3. Key feature 2
|
||||
4. Key feature 3
|
||||
5. Social proof / award
|
||||
|
||||
추가:
|
||||
- Title text overlay
|
||||
- Annotation arrow
|
||||
- Lifestyle (사람)
|
||||
```
|
||||
|
||||
### Screenshot tooling
|
||||
```
|
||||
- Figma → 레이아웃
|
||||
- Fastlane snapshot → device frame
|
||||
- ScreenshotOne (web)
|
||||
- AppLaunchpad (template)
|
||||
|
||||
→ 6.9", 6.7", 6.5" 다 size.
|
||||
```
|
||||
|
||||
### App preview video (iOS)
|
||||
```
|
||||
30 sec max.
|
||||
- Sound off (자막)
|
||||
- 첫 5초 가 핵심
|
||||
- App 안의 demo (외부 X)
|
||||
- 매 size 별
|
||||
|
||||
→ 3 video / locale (가능).
|
||||
```
|
||||
|
||||
### Icon
|
||||
```
|
||||
- Square 1024 × 1024 (iOS)
|
||||
- 글자 X (작아 안 보임)
|
||||
- Recognizable
|
||||
- A/B test (Play Console)
|
||||
|
||||
iOS = A/B test 안 됨 (변경 = review).
|
||||
```
|
||||
|
||||
### Rating
|
||||
```
|
||||
5 ★ 가 install 의 가장 큰 driver.
|
||||
|
||||
→ Negative review 가 주범.
|
||||
|
||||
해결:
|
||||
- In-app review prompt (좋은 시점)
|
||||
- 좋은 사용자 → store
|
||||
- 안 좋은 → support form
|
||||
```
|
||||
|
||||
```swift
|
||||
// iOS
|
||||
import StoreKit
|
||||
|
||||
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
|
||||
SKStoreReviewController.requestReview(in: scene)
|
||||
}
|
||||
```
|
||||
|
||||
→ 매 365 days 3회 한도.
|
||||
|
||||
### Review prompt timing
|
||||
```
|
||||
좋은 시점:
|
||||
- User 가 가치 경험 후 (e.g. 3 photo edit)
|
||||
- Onboarding 후 X
|
||||
- Bug 후 X
|
||||
|
||||
나쁜:
|
||||
- 첫 launch
|
||||
- 매 launch
|
||||
```
|
||||
|
||||
### Negative review 응답
|
||||
```
|
||||
- 24-48 시간 안 답
|
||||
- 친절 + 해결책
|
||||
- "Update X.Y 에서 fixed" 가 update
|
||||
- 사용자 가 rating 다시 가능
|
||||
|
||||
→ 진짜 응답 = 다른 사용자 도 신뢰.
|
||||
```
|
||||
|
||||
### Description structure
|
||||
```
|
||||
첫 3 line = 가장 중요 (preview).
|
||||
|
||||
[Hook]
|
||||
"Edit photos with AI in seconds."
|
||||
|
||||
[Features]
|
||||
✓ AI background removal
|
||||
✓ One-tap filters
|
||||
✓ Pro tools
|
||||
|
||||
[Social proof]
|
||||
"Featured by Apple, 5M+ users"
|
||||
|
||||
[CTA]
|
||||
"Download now — free."
|
||||
```
|
||||
|
||||
### A/B test (Play Store)
|
||||
```
|
||||
Play Console → Store listing experiments.
|
||||
|
||||
Variant A: Original
|
||||
Variant B: New screenshot
|
||||
|
||||
→ 4-8주 → winner.
|
||||
```
|
||||
|
||||
### iOS A/B (Custom Product Pages)
|
||||
```
|
||||
Product Page: 3 variant max.
|
||||
|
||||
→ Marketing 가 다른 page link 사용:
|
||||
URL `?ppid=xxx`
|
||||
```
|
||||
|
||||
→ Apple Search Ads 가 variant 선택.
|
||||
|
||||
### Pricing
|
||||
```
|
||||
무료 + IAP > 유료.
|
||||
Subscription:
|
||||
- 월 / 연 (보통 연 = 50% 할인)
|
||||
- Free trial (7-30 days)
|
||||
- Yearly first (큰 LTV)
|
||||
|
||||
$0.99 vs $1.99: 가격 가 install 영향 X (큰 차이 시).
|
||||
```
|
||||
|
||||
### 예: yearly first
|
||||
```
|
||||
"$59.99 / year (7 days free)" (default)
|
||||
"$9.99 / month" (small option)
|
||||
|
||||
→ 선택 시 가 yearly. LTV 5x.
|
||||
```
|
||||
|
||||
### App size
|
||||
```
|
||||
< 200 MB = WiFi + cellular 가능.
|
||||
> 200 MB = WiFi 만 (download abandon ↑).
|
||||
|
||||
→ App thinning + bitcode + on-demand resources.
|
||||
```
|
||||
|
||||
### What's new (release notes)
|
||||
```
|
||||
매 update = update.
|
||||
- 변경 사항 (concrete)
|
||||
- "Bug fixes" 만 = 약함
|
||||
|
||||
✓ "Now supports Live Photos"
|
||||
✓ "30% faster export"
|
||||
✗ "Bug fixes and improvements"
|
||||
```
|
||||
|
||||
### Version bumping
|
||||
```
|
||||
- 매 1-4 주 1 update
|
||||
- Apple = featured 후보 가 update 가 잦은 앱
|
||||
- 작은 update 도 update notes 기회
|
||||
```
|
||||
|
||||
### Release scheduling
|
||||
```
|
||||
Mon-Wed: 가장 좋음.
|
||||
Thu-Fri: review 가 늦음 (주말).
|
||||
연말 (Dec 22 - Jan 7): App Store freeze.
|
||||
```
|
||||
|
||||
### Apple Search Ads
|
||||
```
|
||||
- 검색 keyword 광고
|
||||
- $5-50 / install (분야 따라)
|
||||
- ROAS 측정 필요
|
||||
|
||||
→ 큰 keyword 비싼.
|
||||
Long-tail keyword 가 cheap.
|
||||
```
|
||||
|
||||
→ 좋은 organic ASO 후 Search Ads.
|
||||
|
||||
### Featured (App Store)
|
||||
```
|
||||
Apple 가 선정. 큰 boost (2-10x install).
|
||||
- New (출시 첫 1개월)
|
||||
- Update (significant)
|
||||
- Today story
|
||||
- Category top
|
||||
|
||||
→ Apple-friendly:
|
||||
- iOS 새 feature 빨리 채택
|
||||
- App Store guidelines 준수
|
||||
- 좋은 design
|
||||
```
|
||||
|
||||
### Indie hacker tips
|
||||
```
|
||||
- 1-2 keyword 만 집중
|
||||
- Niche 가 broad 보다 좋음
|
||||
- App preview video 가 differentiator
|
||||
- Rating 4.7+ 우선
|
||||
- Update note 가 마케팅
|
||||
```
|
||||
|
||||
### 측정
|
||||
```
|
||||
App Store Connect:
|
||||
- Impression / product page view / install
|
||||
- Conversion = install / view
|
||||
- Source (search, browse, web)
|
||||
- Top keyword
|
||||
|
||||
Play Console:
|
||||
- 비슷
|
||||
- A/B variant
|
||||
- Acquisition source
|
||||
```
|
||||
|
||||
### 함정
|
||||
```
|
||||
- Review 매수 (Apple 가 ban)
|
||||
- Misleading screenshot (rejection)
|
||||
- Trademark (다른 앱 이름) → reject
|
||||
- Auto reply review = penalty
|
||||
```
|
||||
|
||||
### Tools
|
||||
```
|
||||
- AppFollow (review monitoring)
|
||||
- Sensor Tower (data)
|
||||
- Mobile Action (ASO)
|
||||
- App Annie / data.ai
|
||||
- ASOMobile (cheap)
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준
|
||||
| 단계 | 추천 |
|
||||
|---|---|
|
||||
| Pre-launch | Title + screenshot + Apple Search Ads test |
|
||||
| First month | Featured 후보 — release notes + iOS new |
|
||||
| 첫 6 month | Keyword 실험, A/B (Play Store) |
|
||||
| 1+ year | Negative review 적극 응답, retention focus |
|
||||
| Subscription | Yearly first, free trial |
|
||||
| Indie | 1-2 keyword, niche, fast iterate |
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Brand 만 title**: 검색 안 됨.
|
||||
- **Keyword stuffing**: rejection.
|
||||
- **첫 screenshot 가 약함**: 전환 ↓.
|
||||
- **Negative review 무시**: 누적 = bad rating.
|
||||
- **"Bug fixes" only**: 새 기회 안 보임.
|
||||
- **Update 안 함**: deindex (Apple).
|
||||
- **Single locale**: 큰 시장 잃음.
|
||||
- **iOS 새 feature 무시**: featured 안 됨.
|
||||
|
||||
## 🤖 LLM 활용 힌트
|
||||
- Title + screenshot 가 가장 큰 lever.
|
||||
- Localization = 큰 multiplier.
|
||||
- Apple Search Ads 가 keyword 검증.
|
||||
- Featured = iOS 새 feature 빨리.
|
||||
|
||||
## 🔗 관련 문서
|
||||
- [[Mobile_AB_Testing]]
|
||||
- [[iOS_StoreKit_2_Patterns]]
|
||||
- [[Mobile_App_Size_Optimization]]
|
||||
Reference in New Issue
Block a user