Support
Everything about running SiteGlance: how to reach a human, the questions that come up most, what to try when the widgets go quiet, and how to report a bug that can actually be fixed.
Email support
One person builds and supports SiteGlance, and that person answers the email. Expect a reply within two business days.
[email protected]Report a bug
Same address, subject line "SiteGlance Bug". What to include is at the bottom of this page — the checklist genuinely decides whether a bug is fixable.
Bug report checklistSupport covers the SiteGlance app itself. Questions about Google Analytics — how a metric is defined, why your site's traffic changed — are Google's territory, and Google Analytics Help is the better place for them.
Frequently asked questions
Getting started
Where do I find my GA4 property ID?
In Google Analytics, open Admin → Property details. The property ID is the numeric value shown there, usually nine digits, like 123456789. It is not the measurement ID that starts with G-, and not the tracking ID that starts with UA-. SiteGlance asks for it on first run.
Which Google account should I sign in with?
One that has at least Viewer access on the property you want to watch. If you can open the property in the Analytics web interface with that account, SiteGlance can read it. If you manage several properties, sign in with the account that can see the one you care about — SiteGlance shows one property at a time.
Does SiteGlance cost anything?
No. It is free, has no in-app purchases, no subscription, and no ads.
What do I need to run it?
An iPhone on iOS 17 or later. The Watch app and its complications need watchOS 10 or later on a paired Apple Watch. There is no iPad or Mac version.
Signing in
Why am I asked to sign in again every week or so?
SiteGlance’s Google OAuth consent screen is in Google’s Testing status. Google expires sign-ins for unpublished apps after about seven days, for every app in that state — nothing has gone wrong with your account or with the app.
When it happens, background updates stop and the app shows the sign-in screen with a short note explaining why. Tap Sign in with Google and everything resumes, including the widgets, on the next refresh. Your property ID is remembered, so it is one tap.
Sign-in finished but the app says Analytics access was not granted.
On Google’s consent screen there is a checkbox for the Analytics permission, separate from choosing your account. If it is left unticked, sign-in completes but SiteGlance has nothing it can read, and it says so rather than showing an empty dashboard. Sign in again and make sure the Analytics permission is ticked before continuing.
Google warns the app is not verified. Is that a problem?
That warning appears for any app whose consent screen has not been through Google’s verification review. It is about the app’s status with Google, not about what the app does with your data. SiteGlance requests one read-only Analytics permission and stores everything on your device — the privacy policy sets out exactly what is accessed.
Numbers and ranges
Why do SiteGlance's numbers not match the Google Analytics website?
Usually one of four reasons, all of them expected:
- Today is partial. Today’s figure changes all day and Google revises recent data as it finishes processing.
- Time zone. Days are counted in your GA4 property’s configured time zone, not your phone’s.
- The metric. SiteGlance shows page views (screenPageViews). A report showing sessions, users, or active users counts something different.
- Freshness. A widget shows the last successful refresh, which may be some minutes or hours old. Open the app and pull down to fetch now.
Which date ranges can I see?
The channel breakdown covers today or the last 7 days. The trend chart covers the last 7, 14, or 30 days. The switches work directly on the Home Screen widget without opening the app: the app has already fetched 30 days plus both channel breakdowns, so switching re-slices data that is already on your device rather than fetching anything.
The channel list shows "Unassigned" or a channel I do not recognise.
Those names come straight from GA4’s default channel grouping and vary per property. SiteGlance renders whatever Google returns rather than mapping it to a fixed list. "Unassigned" means Google could not attribute those sessions to a channel — typically missing or stripped campaign parameters. The top four channels get a bar each; the rest are listed by name underneath.
Can I watch more than one property, or see other metrics?
Not today. SiteGlance shows page views for one property, which is what fits a glanceable widget. If multiple properties or another metric would be useful to you, say so by email — it is a short list and real requests move it.
Widgets and the Watch
My widget has not updated in hours.
iOS decides when a widget may refresh, and it budgets that tightly to save battery — a handful of updates a day is normal, and iOS gives fewer when battery is low, Low Power Mode is on, or you rarely look at that widget. SiteGlance cannot override this; no app can.
To force fresh data now, open the app and pull down to refresh. The widgets update from the same fetch. If widgets are stale for more than a day, see the troubleshooting steps below.
Do the widgets use data or drain battery in the background?
The widgets never touch the network at all — they only read a cache the main app wrote. The app fetches in the background at most about every 30 minutes, and only when iOS grants the request; each fetch is three small API calls. Tapping a range switch on a widget makes no network request whatsoever.
The Apple Watch shows no data, or old data.
The Watch never signs in and never fetches anything itself: it receives a copy from the iPhone after each successful refresh. So if the Watch is empty, start on the phone.
- Open SiteGlance on the iPhone and pull down to refresh. That pushes a fresh copy across.
- Check the Watch is paired, in range or on the same Wi-Fi, and unlocked.
- Open the SiteGlance app on the Watch once, so watchOS has run it at least once.
Privacy and data
How do I delete my data?
Open SiteGlance, tap the gear icon at the top right, then Sign Out & Delete Data. That removes the Google sign-in tokens, every cached figure on the iPhone and the paired Watch, and your saved property ID. Deleting the app removes what is left.
To revoke the app’s access to your Google account entirely, go to Google Account Permissions, find SiteGlance, and choose Remove Access. Full instructions are in the privacy policy.
Can SiteGlance change anything in my Analytics account?
No. It holds one read-only permission and there is no code in it that writes anything to Google. It cannot alter, delete, or create data in your Analytics property, and it cannot see any property other than the one whose ID you entered.
Does SiteGlance send my data anywhere?
No. It talks to Google’s sign-in and Analytics endpoints and to nothing else. There is no SiteGlance server, no account, no analytics SDK, and no crash reporter. Your figures are cached on your own device and nowhere else.
Troubleshooting
Widgets are stale or blank
- Open the SiteGlance app and pull down on the dashboard to refresh. If the numbers appear there, the fetch works and iOS simply has not run the widget yet.
- Check the top of the dashboard for a red error line — that is where a failed fetch explains itself.
- If the app shows the sign-in screen instead, your Google session expired. Sign in again; widgets recover on the next refresh.
- Turn off Low Power Mode and put the phone on a charger for a while. iOS grants background refreshes far more freely then.
- Check Settings → General → Background App Refresh is on, both globally and for SiteGlance.
- Still nothing after a day: remove the widget, then add it again from the widget gallery. That resets its timeline.
"Sign in again" keeps coming back
- Once a week is expected while the consent screen is in Testing status — see the FAQ above.
- Several times a day is not. First check that SiteGlance still appears at Google Account Permissions; if the grant was removed, sign in and grant it again.
- Confirm the account you are signing in with still has Viewer access to that property. Losing access looks a lot like an expired session.
- If it persists, email the details — that is a bug worth chasing.
Every figure is zero
- Confirm the property ID. A valid ID for a property with no traffic returns zeros rather than an error, and a typo in the ID is the most common cause.
- Open the same property in the Analytics web interface for the same range. If it is zero there too, the app is right.
- Check the property is actually collecting data — a newly created GA4 property with no tag installed reports nothing.
An error message about permission or access
- Verify the signed-in account has at least Viewer access on that exact property.
- Verify the property ID belongs to a GA4 property. Universal Analytics IDs will not work — the app uses the GA4 Data API only.
- Sign out from the gear menu and sign in again, ticking the Analytics permission on Google's consent screen.
Reporting a bug
Email [email protected] with the subject "SiteGlance Bug". The more of this you include, the better the odds it gets fixed rather than guessed at:
- What happened, and what you expected instead. One sentence each is plenty.
- Where. In the app, a Home Screen widget (small, medium, or large), a Lock Screen widget, or the Watch.
- Steps to reproduce, if you can trigger it deliberately.
- Any error text shown, copied exactly — the dashboard prints fetch errors in red at the top.
- Device and OS version (Settings → General → About), plus the Watch model if it is a Watch problem.
- SiteGlance version, from the App Store listing.
- A screenshot, if it is a display problem. Crop out any traffic figures you would rather not share; they are not needed to diagnose a layout bug.
Never send a screenshot of a Google sign-in screen mid-flow, and never send tokens, passwords, or verification codes. Nobody supporting this app will ever ask you for them.
Feature requests are welcome at the same address. There is no public issue tracker; the list is short and email reaches the person who writes the code.