Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/app-discovery-qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
- index.html
- support/brain-burst/index.html
- support/snaplingo/index.html
- support/twotaku/index.html
- tests/dotchi-support-growth.test.mjs
- support/face-reaction-battle/index.html
- robots.txt
- apps_data.json
Expand All @@ -27,6 +29,8 @@ on:
- index.html
- support/brain-burst/index.html
- support/snaplingo/index.html
- support/twotaku/index.html
- tests/dotchi-support-growth.test.mjs
- support/face-reaction-battle/index.html
- robots.txt
- apps_data.json
Expand Down Expand Up @@ -59,4 +63,4 @@ jobs:
- name: Verify non-destructive release scripts have valid shell syntax
run: bash -n scripts/publish_app_discovery.sh scripts/check_app_discovery_live.sh
- name: Verify search, referral links and guide listings
run: node --test tests/catalog-growth.test.mjs tests/search-landing-growth.test.mjs
run: node --test tests/catalog-growth.test.mjs tests/search-landing-growth.test.mjs tests/dotchi-support-growth.test.mjs
12 changes: 9 additions & 3 deletions docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ From a **fresh main** checkout of this site repository, after checking working t
```bash
git pull --ff-only
bash scripts/publish_app_discovery.sh --dry-run
# Review the eleven specified destination paths. Never pass --delete.
# Review the twelve specified destination paths. Never pass --delete.
bash scripts/publish_app_discovery.sh --apply
bash scripts/check_app_discovery_live.sh
```

Only these files transfer: `index.html`, `apps.html`, `sitemap.xml`, `robots.txt`, `guides/quick-games/index.html`, `guides/daily-habits/index.html`, `guides/decision-helpers/index.html`, `guides/ai-tools/index.html`, `support/brain-burst/index.html`, `support/snaplingo/index.html`, `support/face-reaction-battle/index.html`. The homepage links are tracked with `discovery_nav_click` and let visitors reach the search or guides without scrolling 92 cards. Every other VPS file, including privacy, support, policy, payment and ads assets, stays untouched. To override environment use `APP_SITE_DEPLOY_HOST` and `APP_SITE_DEPLOY_ROOT` with a known-safe absolute path. The script refuses unknown flags/invalid targets.
Only these files transfer: `index.html`, `apps.html`, `sitemap.xml`, `robots.txt`, `guides/quick-games/index.html`, `guides/daily-habits/index.html`, `guides/decision-helpers/index.html`, `guides/ai-tools/index.html`, `support/brain-burst/index.html`, `support/snaplingo/index.html`, `support/face-reaction-battle/index.html`, `support/twotaku/index.html`. The homepage links are tracked with `discovery_nav_click` and let visitors reach the search or guides without scrolling 92 cards. Every other VPS file, including privacy, support, policy, payment and ads assets, stays untouched. To override environment use `APP_SITE_DEPLOY_HOST` and `APP_SITE_DEPLOY_ROOT` with a known-safe absolute path. The script refuses unknown flags/invalid targets.

**Publish gate:** a dry-run is not publication. Only mark live once `check_app_discovery_live.sh` reports HTTP 200 and matches the homepage `discovery-links`, `id="find-app"`, both guide canonical URLs, guide click event and sitemap entries. After manual publication consider Google Search Console URL inspection and sitemap submission if the `appdevelopsk.com` property is available.

Expand Down Expand Up @@ -63,7 +63,7 @@ A **restricted 3-day finalized GSC window (Oct 22–24)** was available, so do n
- Preserve Google Play Install Referrer on each CTA. `download_click` adds `app` and `placement` so support hero CTA and page-details CTA can be compared; avoid raw visitor search content.
- New `tests/search-landing-growth.test.mjs` and GitHub CI prevent catalog/product mismatches, fabricated ratings, missing store links, and missing live-check assertions.

After shipping the updated **eleven** files from a fresh main checkout, run `bash scripts/check_app_discovery_live.sh`. Record the deploy timestamp, then compare **landing impressions/CTR**, **support CTA clicks by placement**, **Play visitors/install**, and **first completed app action** after enough data accumulates. The early data is directional only.
After shipping the updated **twelve** files from a fresh main checkout, run `bash scripts/check_app_discovery_live.sh`. Record the deploy timestamp, then compare **landing impressions/CTR**, **support CTA clicks by placement**, **Play visitors/install**, and **first completed app action** after enough data accumulates. The early data is directional only.

## Additional organic discovery paths — 2026-10-27

Expand All @@ -78,3 +78,9 @@ After shipping the updated **eleven** files from a fresh main checkout, run `bas
The workflow `.github/workflows/live-acquisition-smoke.yml` checks actual HTTPS output every day around **09:40 JST** (GitHub Actions scheduling can be delayed). It reuses `scripts/check_app_discovery_live.sh` and **fails intentionally** if the VPS still serves a stale catalog, stale Play CTA, missing guide or stale sitemap. It only reads the public URLs; it does not deploy, mutate Store metadata, write marketing content or buy ads.

Its failure step explains how to run the existing manual, non-deleting VPS deployment and verify success. GitHub email notifications depend on repo/account settings; a failed workflow alone does not guarantee push or email alerts. Workflow is also manually dispatchable for an operator who wants to verify a completed release.

## Dotchi 17-language support-page promise repair (2026-10-27)

Dotchi's current **main** backend seed data contains two-choice polls about food, travel, lifestyle, sports and technology. The site's old `/support/twotaku/` still had an anime-only SEO title, watch/read lists and anime/manga database claims, which do not match this app. Correct the default HTML, OG metadata and each of the 17 translated `APP_T` and `FEAT_T` entries **from the current localized Fastlane copy**, preserving the established language switcher. Include an above-the-fold Google Play CTA with the existing install-referrer campaign and GA4 `download_click` placement field. No invented vote counts, popularity, features or screenshots.

A new `tests/dotchi-support-growth.test.mjs` checks the 17-locale dictionaries and two correct store CTAs. The release and production checker now include `support/twotaku/index.html` (twelve files total); **the live VPS still needs the operator's deployment**. In parallel, app-infra PR #97 prepares updated English and Japanese short Play copy, which also needs **separate Play Console publishing**. Do not equate this source alignment with a real conversion-rate increase.
4 changes: 4 additions & 0 deletions scripts/check_app_discovery_live.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ done
fetch '/support/face-reaction-battle/' 'face-battle.html'
grep -Fq 'data-alternative="instant-judge"' "$tmp/face-battle.html" || { echo 'FAIL unavailable game alternative CTA missing' >&2; exit 1; }
grep -Fq 'data-alternative="blur"' "$tmp/face-battle.html" || { echo 'FAIL second unavailable game alternative CTA missing' >&2; exit 1; }
fetch '/support/twotaku/' 'dotchi.html'
grep -Fq '<h1>Dotchi: This or That Polls</h1>' "$tmp/dotchi.html" || { echo 'FAIL Dotchi anime-only support content still live' >&2; exit 1; }
grep -Fq 'data-position="hero"' "$tmp/dotchi.html" || { echo 'FAIL Dotchi store call-to-action absent' >&2; exit 1; }
grep -Fq 'const FEAT_T={en:{0:"Choose A or B on a question."' "$tmp/dotchi.html" || { echo 'FAIL Dotchi translated feature claims still stale' >&2; exit 1; }
fetch '/robots.txt' 'robots.txt'
grep -Fq 'Allow: /icons/apps/' "$tmp/robots.txt" || { echo 'FAIL Google image crawl allow not live' >&2; exit 1; }
echo 'PASS: catalog, guides, priority search landings, store CTAs, icon crawl policy and sitemap current (HTTP 200)'
2 changes: 1 addition & 1 deletion scripts/publish_app_discovery.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ root="${APP_SITE_DEPLOY_ROOT:-/var/www/html}"
if [[ ! "$host" =~ ^[a-zA-Z0-9_.@-]+$ || ! "$root" =~ ^/var/www/[a-zA-Z0-9_./-]+$ ]]; then
echo 'Invalid APP_SITE_DEPLOY_HOST or APP_SITE_DEPLOY_ROOT' >&2; exit 2
fi
files=(index.html apps.html sitemap.xml robots.txt guides/quick-games/index.html guides/daily-habits/index.html guides/decision-helpers/index.html guides/ai-tools/index.html support/brain-burst/index.html support/snaplingo/index.html support/face-reaction-battle/index.html)
files=(index.html apps.html sitemap.xml robots.txt guides/quick-games/index.html guides/daily-habits/index.html guides/decision-helpers/index.html guides/ai-tools/index.html support/brain-burst/index.html support/snaplingo/index.html support/face-reaction-battle/index.html support/twotaku/index.html)
for file in "${files[@]}"; do
[[ -s "$file" ]] || { echo "Missing source file: $file" >&2; exit 2; }
done
Expand Down
2 changes: 1 addition & 1 deletion sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
<url><loc>https://appdevelopsk.com/support/truth-roulette/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/try-this/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/two-truths/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/twotaku/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/twotaku/</loc><lastmod>2026-10-27</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/voice-memo/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/wait-time/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/warranty-keeper/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
Expand Down
Loading
Loading