How to accurately track resubs?

So it really isn’t clear on how to track resubs, and nowhere in the docs does it explain how to accurately do this?

I have looked at How to know when a user resubscribes? - API - Twitch Developer Forums and the answer then was you can only track resubs if they share the message, which is useless as not everybody does, but also this isn’t the right way to do it.

And the mainstream apps like Streamlabs can do it accurately without that message. So, if that’s the case, how do they do this with the mixture of the below eventsub events:

  • channel.subscribe
  • channel.subscription.message
  • channel.subscription.end
  • channel.chat.notification

And if its to do with monitoring for not receiving the .end event for a subscriber, how do we manage this for users that are already subscribe because we won’t know the date they first subbed?

It just seems crazy, that the main feature of twitch is subscribing/resubscribing to a channel and its so difficult to accurately track or get any historical data on, which is clearly available in the backend as you are able to send cumulative_total fine if they send a message in chat. Why can’t it just be as simple as channel.subscribe for new subs and channel.subscription.resub every time they resub whether they send a message or not, or even just channel.subscribe for both with a type field of sub or resub and cumulative_total in so its easy to track.

The way it is currently, if your app is offline for even a few minutes or you develop the bot after you have already been streaming for a while, it is impossible to accurately track subscriptions correctly.

Something like this would go a long way to tracking this accurately and easily:
Revise the channel.subscription topics – Twitch UserVoice yet nothing happens.

One logical reason is to stop overlay providers “announcing a resub in error” that the user didn’t share, and or the user isn’t actively on Twitch but are keeping their subscription going and don’t want that information shared outside of Twitch for any privacy issue.

Another is a privacy reason around payment success/fail tracking being possible like this.

There is a uservoice along these lines here https://twitch.uservoice.com/forums/310213-developers/suggestions/42008110-please-provide-an-event-sub-that-emits-resub-paym

Well webhooks will retry so you should get the missing data when the webhook retries.

For initial setup you could request the subscriber CSV from the broadcaster manually and ask them to provide to seed your system

See also this uservoice about tenure data in general https://twitch.uservoice.com/forums/310213-developers/suggestions/37659133-subs-tenure-in-helix

Most of thus uservoice has been completed via the introduction of channel.chat.notification which fulfills mine and soaryn’s usecase(s).

To answer:

I pull the subscriber list in full daily and track in my own custom system and revise numberswhen/if a channel.chat.notification

I use channel.subscribe and channel.subscription.end as well to write to the table in question. Logically if you don’t have an end then the number of months is, approximately, the number of months since you recieved a .subscribe.

The problem of preseeding exists, but the broadcaster CSV solves that one

They do what I outlined above.

They math based on the start event to current time revising the user if a notification/revisment is recieved.

Given they were running of the predecessor to channel.chat.notification which is Chat itself (IRC) and/or deprecated PubSub. As PubSub is replaced by eventsub.

So in summary:

  • we poll the API daily and caluclate it ourseleves
  • we consume EventSub (or Chat/IRC as we didn’t move to EventSub yet) data to revise self caclulations

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.