Daily, weekly, and monthly active users
Unique people who opened ComeThru that day (DAU), in the 7 days ending that day (WAU), and in the 30 days ending that day (MAU).
Phone auth, admin accounts only (ComeThru staff on the @comethrutour team see only Giveaways). Everything on this page is enforced by Firestore security rules (the admin claim) and server-checked callables — the page itself is just a window.
Enter a U.S. number — +1 is added automatically.
Loading snapshot…
Reported engagement is aggregated across the selected range. No user identities or individual timelines are exposed.
Unique people who opened ComeThru that day (DAU), in the 7 days ending that day (WAU), and in the 30 days ending that day (MAU).
Useful range totals normalized against active users.
Completed sign-ups, account deletions (requests minus cancellations), and store installs and uninstalls (Android + iPhone) each day. Peaks mark spikes worth matching to launches, posts, or campaigns.
Selected range totals. Account deletions are deletion requests that weren't cancelled, counted from October 6, 2026; the account is removed 30 days after the request.
Where new phones stop before they have an account. Fresh installs only (not members who signed out), each step counted once per phone. Bars are the share of phones that saw the welcome screen.
Platform and moderation totals from the latest completed snapshot. These cards are not affected by the date filter.
How daily activity moves from opening a Hang to responding, chatting, and sharing media.
Stacked event volume for the primary social actions.
Aggregate action totals and event conversion.
Create screen opens compared with published Hangs by day.
Interaction volume at each creation step; selections may repeat.
Successful referral attribution is server-owned. Share-sheet opens measure intent only.
Daily completed sign-ups, successful referral claims, and accepted friendships.
The range picks who signed up. As of today: came back on day 1, 7, or 30 after signing up, or any day after that. People who haven't reached that day yet are left out, not counted as gone.
Answers to the phone's own notification prompt in the selected range. Phones that never show the prompt (already decided, older Android) are not counted.
Activity signals are related, but not one attributable funnel.
Current aggregate network reach among participating referrers.
Average downstream reach after 30, 60, and 90 days.
Coach cards started, finished, or closed with the X. “Left mid-flow” is started minus finished minus closed — people who navigated away instead.
Each coaching loop: starts, finishes, X-closes, and people who left mid-flow.
Which card was showing when someone tapped the X. Card 1 of a flow means they skipped it.
Coach cards grouped by flow, in the order the app shows them. Bars compare each card with the busiest card of its section; the right-hand figure is the share who stopped since the card before (red at 25% or more).
Just for Now hides coaching for the session; Never Show Again turns it off for the account.
What people did on the welcome card. Video and tour can both happen for one person, so each rate is out of card views.
Demo-video plays on the sign-in screen, counted once the phone reaches an account. Plays that never sign in are not recorded.
Ranked distributions explain what is being created and how people use the surrounding features.
Multi-category Hangs can appear in more than one row.
Broad, privacy-safe venue classifications.
Morning, afternoon, evening, and night mix.
Selected-friend, best-friend, and all-friend audiences.
Photo and video upload distribution.
Every category-selection interaction in the create flow.
Audience selections made before publishing.
Messages present in the saved snapshot, with or without a GIF.
Gallery comments sent with or without a GIF.
Where people add reactions across the app.
Reported delivery and interaction metrics, separated from product engagement.
Aggregate impression, click, and click-through totals.
Share of reported impressions by provider.
Share of reported impressions by app surface.
Changing the date range automatically loads saved results. Refresh snapshot requests a background update. Feed Viewed and Hang Opened tracking are retired; Hang Viewed remains.
Collection estimates will appear with the saved report.
App opens remain a core activity and retention signal. Current tracking records one app open per signed-in app process, not every foreground session. Daily aggregate history is kept for 400 days; choose up to 366 days per report.
Automated checks only create review reports. Photos stay visible unless an admin removes them here.
User-submitted safety and content reports. Automated photo reviews live on the Photo moderation page. To remove content or suspend an account with a statement of reasons (EU Digital Services Act), use the DSA console; “Dismiss” and “Reviewed” tell the reporter we did not act.
| Reason | Target | Content | Description | Reporter | Status | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Device context and the latest captured logs from in-app reports.
| Report | User | Device | Status | Actions |
|---|---|---|---|---|
| Loading… | ||||
Review soonest-expiring authorizations first. Approval captures the card before atomically activating every configured promotion; rejection voids the hold.
Owner-requested reactivation. Use only after confirming the request with the former owner. Moderation suspensions and deleted businesses are rejected by the server. This restores the retained business identity and grants owner access to the specified account. Old Hangs, coupons, campaigns, rewards, and scheduled inventory stay closed.
| Business ID businessProfiles document id |
|
| Owner UID Firebase Auth uid that receives owner access |
|
| Support note How ownership was verified and why access is being restored (10–500 characters) |
Create campaigns, review entries, and manage payouts from one dedicated workspace.
Status flow: draft → upcoming → active. Flipping to active fires the one-time
launch notification to its audience. Every campaign is 18+: members must tap Join Competition and accept the current Official Rules before activity counts (local tour stops also check location). Campaigns are never ended by
hand — before the deadline, End now sets endDate to the current time and the engine waits for settlement before closing it properly (final ranks, winners archive, prize fulfillment). Ended campaigns can be
archived to tidy the Hall of Fame.
| Campaign | Type | Status | Window | Entries | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
Full standings with anti-gaming flags highlighted. Expand a row's qualifying events to investigate, then clear the flag or flag manually. Flagged or held entries never receive an automatic prize or a winner notification until released in the Payout Queue. Review stays open through settlement and closing. Scores are engine-written and read-only — rules block every score edit, admin or not. The Join column shows each entrant's accepted rules version and a current 18+ check; there is no admin override.
| # | User | Score | Join | Events | Flag | Actions |
|---|---|---|---|---|---|---|
| Pick a campaign. | ||||||
Cash/manual prizes land here as pending when a campaign closes (in-app prizes auto-fulfill). Spot-check at least the top 3 against their flags before paying — then mark paid. In-app rows that failed auto-fulfillment also appear here and can be retried by leaving them pending (or resolve manually and mark paid).
| Campaign | Rank | User | Score | Prize | Status | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Photo contest moderation. Entries go live automatically seconds after they are submitted, from a server-owned copy that voting, the Feed showcase, and results use. Live shows what members see now: Reject deletes that copy (after preserving evidence), removes the entry everywhere, and tells the member. Entries whose source photo has an automated flag or an open report are held for review instead: look at the photo, then "Approve anyway" or reject it. Reported live entries also appear on the Reports page. Curated contests: mark winners with a placement, then Mark judging complete — results wait for it. Community contests: results wait while any live entry has a vote flag; open its ballots, void bad ones, then clear it.
Campaigns save as draft — launch them from the Campaigns tab when ready. Choose Everyone or a Local tour stop. Each local competition has its own area, dates, leaderboard, and prizes. Competitive settings lock after draft; clone a campaign to create the next tour stop.
| Campaign ID lowercase, digits, hyphens |
|
| Title | |
| Description | |
| Who can compete? |
Choose a search result to set the center. People check in once within this radius while the competition is live. Activity counts after check-in; they keep their place after leaving town. Each tour stop has its own leaderboard and prizes. Area settings lock after draft. |
| Business scope required for staff follower contests |
|
| Type | |
| Window | → |
| Banner image paste a URL or upload an image |
Max 10 MB. Requires a campaign ID.
|
| Theme color | |
| Activity-tab teaser optional — defaults to title + "Live now · Win prizes · countdown" |
|
| Photo judging | Unchecked: admins choose winners. Locked after launch. |
| Leaderboard | size |
What earns points. Conditions are optional and only checked for hang events. Photo contests don't score events — leave this empty (submissions are judged, not scored).
| Event | Points | Min attendees | Needs gallery post | Categories (csv) |
|---|
Rank ("1", "3-5", "all") for placement prizes OR threshold for everyone-who-hits-N. Max winners (optional, threshold prizes only) caps it to the FIRST N to reach the threshold. In-app prize types auto-fulfill at close; cash types go to the payout queue.
| Rank | Threshold | Max winners | Type | Value | Label |
|---|
| Event | Minimum count |
|---|
ComeThru-sponsored free drawings on one Business Hang (docs/HANG_GIVEAWAYS.md). Entry: Coming Thru, Join, then an admin scans the entry pass at the Hang. Scanning and prize hand-over happen in the app console; create, publish, cancel, draw, and review results here. Real giveaways stay off until counsel approves the rules and config/app.giveawaysLiveEnabled is set; test giveaways are admin-only.
Sponsors: loading…
| Giveaway | Hang | Status | Drawing | Entries | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
Saves as a draft. Publish from Results. Business Hangs only, one giveaway per Hang. Each prize under $600; 1–3 prizes. The drawing time, claim windows, and sponsor lock once someone joins; prizes, age, and test mode lock at publish.
| Hang Hang ID or share link |
|
| Title | |
| Description optional, shown in the join sheet |
|
| Sponsor the ComeThru account running it |
The host is the Hang's business, shown as "Hosted by"; its team can't enter. On a sponsor's own Hang there is no separate host. |
| Prizes approximate value; ComeThru buys every prize |
|
| Minimum age | |
| Joining opens optional; defaults to publish time |
|
| Drawing time check-in closes; must be during the Hang |
|
| Claim windows minutes, in person |
Winner · each backup |
| Backups drawn in order after the winners |
|
| Test mode |
Real local events found on the watched sources, drafted as Hangs for the seed profiles. Nothing posts until you approve it. Times are Pacific.