172 lines
8.5 KiB
Markdown
172 lines
8.5 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, 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,
|
|
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,
|
|
Test environment, or public Git remote was changed.
|
|
|
|
## Read-only recheck on 2026-08-28
|
|
|
|
- Internal testing remained active with release `0.1.3 Reliable
|
|
notifications`. Production remained inactive and the app remained a draft.
|
|
- The Dashboard showed zero of five Closed testing tasks complete: select
|
|
countries and regions, select testers, create a release, preview and confirm
|
|
it, and send it to Google for review.
|
|
- The current opted-in tester count was zero. Production access required at
|
|
least 12 opted-in testers for at least 14 days.
|
|
- The Child safety declaration was empty. Its public standards URL and contact
|
|
were not selected, both attestations were unchecked, and Save was disabled.
|
|
|
|
This recheck was read-only. No Console field, release, track, billing setting,
|
|
Firebase setting, deployment, or public Git remote 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
|