diff --git a/.github/workflows/app-discovery-qa.yml b/.github/workflows/app-discovery-qa.yml index 7a3d117c..cd5085fd 100644 --- a/.github/workflows/app-discovery-qa.yml +++ b/.github/workflows/app-discovery-qa.yml @@ -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 @@ -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 @@ -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 diff --git a/docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md b/docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md index 516e148c..c5642687 100644 --- a/docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md +++ b/docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md @@ -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. @@ -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 @@ -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. diff --git a/scripts/check_app_discovery_live.sh b/scripts/check_app_discovery_live.sh index 2c930682..69cecd6d 100644 --- a/scripts/check_app_discovery_live.sh +++ b/scripts/check_app_discovery_live.sh @@ -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 '

Dotchi: This or That Polls

' "$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)' diff --git a/scripts/publish_app_discovery.sh b/scripts/publish_app_discovery.sh index 5b8b6a3f..a1089047 100644 --- a/scripts/publish_app_discovery.sh +++ b/scripts/publish_app_discovery.sh @@ -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 diff --git a/sitemap.xml b/sitemap.xml index 11c2c3c9..7d796e0f 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -126,7 +126,7 @@ https://appdevelopsk.com/support/truth-roulette/2026-08-18monthly0.8 https://appdevelopsk.com/support/try-this/2026-08-18monthly0.8 https://appdevelopsk.com/support/two-truths/2026-08-18monthly0.8 - https://appdevelopsk.com/support/twotaku/2026-08-18monthly0.8 + https://appdevelopsk.com/support/twotaku/2026-10-27monthly0.8 https://appdevelopsk.com/support/voice-memo/2026-08-18monthly0.8 https://appdevelopsk.com/support/wait-time/2026-08-18monthly0.8 https://appdevelopsk.com/support/warranty-keeper/2026-08-18monthly0.8 diff --git a/support/twotaku/index.html b/support/twotaku/index.html index e0f5cde4..91663aa7 100644 --- a/support/twotaku/index.html +++ b/support/twotaku/index.html @@ -4,8 +4,15 @@ - Dotchi – Anime Debates, Versus Battles & Polls | SK APPS - + Dotchi: A or B Polls, Vote and Compare | SK Apps + + + + + + + +