Social accounts (Channels)
See the views of your YouTube, Instagram and Threads accounts beside your sites: what is read, what is kept, and how to create the app keys.
Channels, on the All sites page, shows how many views your own YouTube channel, Instagram account and Threads profile got, next to your sites. Each platform has its own card, with its views over the period you pick, a small trend and how many accounts are watched.
The platforms count differently (a play, a view and an impression are not the same thing), so the numbers are never added together. Each card is that platform's own count.
What is read and kept
- Read-only. trckable asks each platform for the one analytics permission it needs and nothing it could change.
- One number a day. For each account, the views of each day. Nothing else about your posts or audience is stored.
- Tokens are sealed with your instance key (
TRCKABLE_SECRET), never logged and never sent to the browser. - Disconnecting deletes. The account's access and every number stored for it go at once, and the platform is told where it can be.
- Stale data is deleted. YouTube requires data to be refreshed at least every 30 days. Each day its whole kept window (90 days) is read again and anything older is deleted; if an account cannot be read for 28 days, all its numbers are deleted and the card asks you to connect it again.
- Who. Everyone who sees the team sees the numbers. An owner or an admin connects accounts; only an owner disconnects one, because that deletes its numbers.
Every TRCKABLE_CHANNELS_EVERY (default 24h, 0 turns reading off) the server reads each account once.
Turn a platform on
Each platform needs an app of your own, and the server needs its keys. Without them, the platform's Connect is disabled. TRCKABLE_BASE_URL must be your public https address: the platforms send people back to it.
| Platform | Variables | Redirect address to register |
|---|---|---|
| YouTube | TRCKABLE_YOUTUBE_CLIENT_ID, TRCKABLE_YOUTUBE_CLIENT_SECRET | <base url>/api/v1/channels/youtube/callback |
TRCKABLE_INSTAGRAM_APP_ID, TRCKABLE_INSTAGRAM_APP_SECRET | <base url>/api/v1/channels/instagram/callback | |
| Threads | TRCKABLE_THREADS_APP_ID, TRCKABLE_THREADS_APP_SECRET | <base url>/api/v1/channels/threads/callback |
Each secret can also come from a file: TRCKABLE_YOUTUBE_CLIENT_SECRET_FILE=/run/secrets/youtube.
YouTube
- In Google Cloud Console, create a project and enable YouTube Analytics API and YouTube Data API v3.
- Under OAuth consent screen, choose External, add the scopes
.../auth/yt-analytics.readonlyand.../auth/youtube.readonly, and add yourself as a test user. An app only you use can stay in Testing; the sign-in then lasts a week and you reconnect weekly. To avoid that, publish the app and go through Google's verification. - Under Credentials, create an OAuth client ID of type Web application with the redirect address above.
Instagram and Threads
Both are Meta apps. Instagram needs a Business or Creator account (a personal one has no API).
- In Meta for Developers, create an app and add Instagram API with Instagram Login and Threads API.
- Put the Instagram app id and secret and the Threads app id and secret in the variables above, and register the redirect addresses.
- While the app is in development mode, only the accounts you add as testers can connect. For anyone else, submit the app for Meta's review.
- Set the app's deauthorize and data deletion callbacks to
<base url>/api/v1/channels/instagram/deauthand<base url>/api/v1/channels/threads/deauth, so removing the app from Instagram or Threads deletes the data here too.
Instagram's numbers are read a day at a time, and Meta can take up to two days to settle a day, so the newest days may rise a little.
Answers
What ChatGPT, Perplexity and Claude say about your site, and what it was worth: what is asked, what leaves your server, what it costs, how to turn it off.
Revenue attribution
Revenue attribution for Stripe, Paddle, Lemon Squeezy, Polar and Dodo: paste one key and every sale, renewals included, is credited to the visit that earned it.