diff --git a/.github/workflows/app-discovery-qa.yml b/.github/workflows/app-discovery-qa.yml index 66f2f91c..cea32234 100644 --- a/.github/workflows/app-discovery-qa.yml +++ b/.github/workflows/app-discovery-qa.yml @@ -5,12 +5,17 @@ on: paths: - apps.html - index.html + - support/brain-burst/index.html + - support/snaplingo/index.html + - support/face-reaction-battle/index.html + - robots.txt - apps_data.json - guides/** - sitemap.xml - scripts/build_catalog.py - site_counts.json - tests/catalog-growth.test.mjs + - tests/search-landing-growth.test.mjs - scripts/publish_app_discovery.sh - scripts/check_app_discovery_live.sh - .github/workflows/app-discovery-qa.yml @@ -19,12 +24,17 @@ on: paths: - apps.html - index.html + - support/brain-burst/index.html + - support/snaplingo/index.html + - support/face-reaction-battle/index.html + - robots.txt - apps_data.json - guides/** - sitemap.xml - scripts/build_catalog.py - site_counts.json - tests/catalog-growth.test.mjs + - tests/search-landing-growth.test.mjs - scripts/publish_app_discovery.sh - scripts/check_app_discovery_live.sh - .github/workflows/app-discovery-qa.yml @@ -47,4 +57,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 + run: node --test tests/catalog-growth.test.mjs tests/search-landing-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 6228163c..b5a452e9 100644 --- a/docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md +++ b/docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md @@ -18,7 +18,7 @@ bash scripts/publish_app_discovery.sh --apply bash scripts/check_app_discovery_live.sh ``` -Only these files transfer: `index.html`, `apps.html`, `sitemap.xml`, `guides/quick-games/index.html`, `guides/daily-habits/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`, `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. **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. @@ -51,3 +51,16 @@ Do not sum the 117 apps' 7-day active-user counts as unique people. Do not inter - [ ] Sitemap submitted/indexing checked in Search Console - [ ] GA4 DebugView events observed without search query payload - [ ] Google Play listing traffic / acquisition comparison recorded after meaningful sample + +## GSC-backed snippet and conversion repair (2026-10-27) + +A **restricted 3-day finalized GSC window (Oct 22–24)** was available, so do not treat the following as significant performance trends: BrainBurst support 14 impressions / 0 clicks / average position ~9.1; SnapLingo support 10 impressions / 0 clicks / position ~7.4; `face battle` query on Face Reaction Battle page 13 impressions / 1 click / position ~5.9. No prior-period comparison available. + +- BrainBurst: correct the stale generic memory/math training synopsis to the Play-aligned daily AI trivia / 1v1 quiz proposition, improve search/snippet and open-graph fields; show Google Play CTA above the fold. +- SnapLingo: concrete photo vocabulary search snippet and high-visibility store handoff, with app structured data but **no manufactured review stars/rating scores**. +- Face Reaction Battle is **not downloadable**, so retain unavailability notice. Offer only clearly **different**, verifiably published Instant Judge and Blur games; do not imply they provide face-expression recognition. +- `robots.txt` now explicitly allows public `/icons/apps/` while continuing to disallow remaining icons. Note indexing is a search engine decision, not guaranteed. +- 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 **nine** 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. diff --git a/robots.txt b/robots.txt index 36792838..e14ad01b 100644 --- a/robots.txt +++ b/robots.txt @@ -1,6 +1,8 @@ # SK APPS — apex robots.txt User-agent: * Allow: / +# Published catalog app icons must be crawlable for image discovery. +Allow: /icons/apps/ Disallow: /icons/ # Explicit allow for ad crawlers diff --git a/scripts/check_app_discovery_live.sh b/scripts/check_app_discovery_live.sh index 9ae3bce8..1609a852 100644 --- a/scripts/check_app_discovery_live.sh +++ b/scripts/check_app_discovery_live.sh @@ -28,4 +28,15 @@ fetch '/sitemap.xml' 'sitemap.xml' for slug in quick-games daily-habits; do grep -Fq "https://appdevelopsk.com/guides/$slug/" "$tmp/sitemap.xml" || { echo "FAIL sitemap missing $slug" >&2; exit 1; } done -echo 'PASS: VPS catalog, two guides, click-tracking markers and sitemap all current (HTTP 200)' +for slug in brain-burst snaplingo; do + fetch "/support/$slug/" "$slug.html" + grep -Fq 'data-position="hero"' "$tmp/$slug.html" || { echo "FAIL $slug first-screen Play CTA not yet live" >&2; exit 1; } + grep -Fq 'application/ld+json' "$tmp/$slug.html" || { echo "FAIL $slug SEO metadata missing" >&2; exit 1; } + grep -Fq 'placement:' "$tmp/$slug.html" || { echo "FAIL $slug placement attribution missing" >&2; exit 1; } +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 '/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 bb6abf90..aac41e81 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 guides/quick-games/index.html guides/daily-habits/index.html) +files=(index.html apps.html sitemap.xml robots.txt guides/quick-games/index.html guides/daily-habits/index.html support/brain-burst/index.html support/snaplingo/index.html support/face-reaction-battle/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 bbc387e2..442eab10 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -17,7 +17,7 @@ https://appdevelopsk.com/support/billendar/2026-08-18monthly0.8 https://appdevelopsk.com/support/bird-encyclopedia/2026-08-18monthly0.8 https://appdevelopsk.com/support/blur/2026-08-18monthly0.8 - https://appdevelopsk.com/support/brain-burst/2026-08-18monthly0.8 + https://appdevelopsk.com/support/brain-burst/2026-10-27monthly0.8 https://appdevelopsk.com/support/candid/2026-08-18monthly0.8 https://appdevelopsk.com/support/chaos/2026-08-18monthly0.8 https://appdevelopsk.com/support/chore-roulette/2026-08-18monthly0.8 @@ -38,7 +38,7 @@ https://appdevelopsk.com/support/earsense/2026-08-18monthly0.8 https://appdevelopsk.com/support/excel-formula/2026-08-18monthly0.8 https://appdevelopsk.com/support/eye-break/2026-08-18monthly0.8 - https://appdevelopsk.com/support/face-reaction-battle/2026-08-18monthly0.8 + https://appdevelopsk.com/support/face-reaction-battle/2026-10-27monthly0.8 https://appdevelopsk.com/support/face-symmetry/2026-08-18monthly0.8 https://appdevelopsk.com/support/face-vibe/2026-08-18monthly0.8 https://appdevelopsk.com/support/fileforce/2026-08-18monthly0.8 @@ -107,7 +107,7 @@ https://appdevelopsk.com/support/smalock/2026-08-18monthly0.8 https://appdevelopsk.com/support/smile-score/2026-08-18monthly0.8 https://appdevelopsk.com/support/snap-judge/2026-08-18monthly0.8 - https://appdevelopsk.com/support/snaplingo/2026-08-18monthly0.8 + https://appdevelopsk.com/support/snaplingo/2026-10-27monthly0.8 https://appdevelopsk.com/support/solace/2026-08-18monthly0.8 https://appdevelopsk.com/support/spot-diff/2026-08-18monthly0.8 https://appdevelopsk.com/support/spotit/2026-08-18monthly0.8 diff --git a/support/brain-burst/index.html b/support/brain-burst/index.html index 46519eb7..52020765 100644 --- a/support/brain-burst/index.html +++ b/support/brain-burst/index.html @@ -4,8 +4,16 @@ - BrainBurst – Daily Trivia Quiz App for Android | SK APPS - + BrainBurst: Daily Trivia Quiz & 1v1 Battles | Android + + + + + + + + +