who_need_help/android/play-store/store-presence-runbook.md

157 lines
7.7 KiB
Markdown

# Google Play store presence runbook
This runbook records the exact local inputs and the observed Console gaps. It
does not authorize saving fields in Play Console or publishing a release.
## Observed Console state on 2026-08-13
- App type is **App**.
- App category was subsequently saved as **Social**.
- Tags are not selected.
- Store-listing contact email, phone, and website are empty.
- The default English listing has no saved short description, full
description, app icon, feature graphic, or phone screenshots.
- The Dashboard initially showed 9 of 11 setup tasks complete. Category was
saved afterward; public contact details and Store-listing completion still
require a current Console recheck.
- Closed testing was still locked pending those setup tasks and reported zero
opted-in testers.
- After this initial observation, the foreground-service declaration was saved
with **User-initiated location sharing** and the unlisted demonstration URL
`https://youtube.com/shorts/UZh_QBdlbBc`. Recheck the current Console state
before any later release; this runbook does not treat a saved form as Google
approval.
## Read-only recheck on 2026-08-14
- The Dashboard now reports **10 of 11 complete**.
- **Set up your store listing** is marked complete.
- **Select an app category and provide contact details** is the only remaining
setup task. The category remains **Social**, while public email, phone and
website are still empty.
- Closed testing remains locked and reports `0 testers currently opted-in`.
- The foreground-service form still contains **User-initiated location
sharing**, the final unlisted video URL, and the saved-change confirmation.
This was a read-only observation. No Console value, track, release, production
deployment, frozen test deployment, or public Git remote was changed.
## Read-only recheck on 2026-08-20
- The Dashboard still reports **10 of 11 complete**.
- **Select an app category and provide contact details** remains the only
incomplete setup task. The category is **Social**. Public email, phone, and
website remain empty in Store settings.
- Closed testing remains locked until app setup is complete and still reports
`0 testers currently opted-in`.
- The production-access section currently requires a published closed-testing
release, at least 12 opted-in testers, and a closed test lasting at least 14
days.
This recheck was read-only. No Console field, release, track, deployment,
frozen test environment, or public Git remote was changed.
## Read-only recheck on 2026-08-25
- Store settings showed app category **Social** and public contact email
`contact@whoneedhelp.com`; phone and website were empty.
- Internal testing was active with release `0.1.3 Reliable notifications`, one
version code, and status available to internal testers.
- The existing **Closed testing - Alpha** track was inactive with zero of four
setup tasks complete. Countries and testers were not selected, and the track
contained no release.
- A controlled message addressed to `contact@whoneedhelp.com` was observed once
in the operator Gmail Inbox with the `Projects/WhoNeedHelp` label. The
message was not opened or marked read. This verifies the tested inbound
forwarding route, not a standalone mailbox or reply-from identity.
This recheck was read-only. No Console field, release, track, deployment,
frozen test environment, or public Git remote was changed.
These are direct observations from the authenticated Play Console session on
that date. Recheck the Console before applying because its fields and policy
requirements can change.
## Prepared local inputs
- English listing: `android/play-store/store-listing-en-US.md`
- Ukrainian listing: `android/play-store/store-listing-uk-UA.md`
- Russian listing: `android/play-store/store-listing-ru-RU.md`
- Icon: `android/store-assets/icon-512.png`
- Feature graphic: `android/store-assets/feature-graphic-1024x500.png`
- Phone screenshots: `android/store-assets/screenshots/phone/`
- Screenshot alt text: `android/store-assets/README.md`
Run `./scripts/android-store-assets-validate.sh` immediately before upload.
The validator checks image dimensions/formats and listing-length constraints;
it does not prove Play policy approval or visual quality.
The validator passed again on 2026-08-10, and a fresh combined visual review
confirmed that the approved icon, feature graphic, and four phone screenshots
contain no visible email, private message, handover code, or real precise
location.
## Contact fields
- Public support email saved in Play Store settings: `contact@whoneedhelp.com`
- Website: `https://whoneedhelp.com/`
- Public phone: leave empty unless the operator deliberately chooses a number
that can be published and monitored.
Production sends through Brevo as `contact@whoneedhelp.com`. A controlled
inbound routing message sent to that address was observed once in the monitored
operator Gmail Inbox on 2026-08-25. This proves the tested forwarding path. It
does not prove a standalone mailbox, reply handling, or the ability to send
from that address through Gmail. Recheck inbound routing and operator access
before a public release, and separately test the chosen reply workflow.
## Category and child-safety gate
The prepared listing suggests **Social**, which accurately describes the
community and participant features. Google Play's current Child Safety
Standards policy applies to every app that declares itself as Social, including
adult-only apps. Before saving that category or self-certifying:
1. Deploy and open the globally accessible `/child-safety` standards.
2. Verify the in-app and public report paths for child-safety content.
3. Select a monitored child-safety point of contact who can access the urgent
restricted queue and act on reports.
4. Test inbound delivery to the selected contact.
5. Confirm the launch-jurisdiction escalation and authority-reporting process.
6. Record the evidence and only then complete Play's self-certification.
Do not choose a less accurate category merely to avoid a policy declaration.
Do not claim cross-jurisdiction legal compliance from the presence of a page,
queue, or automated test.
On 2026-08-10 a repeated public check observed HTTP `200` from
`https://whoneedhelp.com/child-safety` on production revision `dafcdb36`. The
frozen hackathon test was not changed and still returns `404`. This clears the
public-page deployment check only; it does not prove that the monitored
child-safety contact or jurisdiction-specific escalation process is ready.
## Suggested apply order after explicit permission
1. Recheck the current Console fields and policy warnings read-only.
2. Verify the production policy/support URLs and monitored email.
3. Host the verified foreground-location demonstration as an unlisted video,
then complete and save the mandatory foreground-service declaration. Reopen
**App content** and verify that the permission alert is cleared before
changing Store Presence. Google documents that an unresolved permissions
declaration for an active bundle can block publishing changes, including
store-listing changes.
4. Save category, tags, contact email, and website.
5. Create the default English (United States) listing with prepared text,
images, and alt text.
6. Add Ukrainian and Russian localizations from their prepared files.
7. Reopen the Dashboard and verify both setup tasks are marked complete.
8. Recheck App content; do not start Closed or Production rollout as part of
store-presence setup.
Official references rechecked on 2026-08-10:
- https://support.google.com/googleplay/android-developer/answer/9859454
- https://support.google.com/googleplay/android-developer/answer/14747720
- https://support.google.com/googleplay/android-developer/answer/9878809
- https://support.google.com/googleplay/android-developer/answer/9214102