Why are you sending states of counters instead of number of buttons pressed ?
Skiply provides industrial solutions. Therefore, we can not afford to loose any customer data. LPWAN networks like Sigfox and LoRaWan are great. But, like any radio communication system, a frame can be corrupted or not transmitted. If you do not take this into consideration in your design, and send only "pulses", if it happens, you will loose data.
This is why we decided to provide a system that is robust enough to support bad or missing radio frames. Each time that a user presses a button, the corresponding index is incremented. Thus, depending of the parameters that you set on your device, the system will send the data at periodic interval, or a few seconds after an action. The application server will receive this state, and calculate the increment since last transmission. Even if a frame has been lost, the total number of buttons pressed will always be found.
Thanks to this method, we can also send thousands of votes each day, for instance for the satisfaction use case, despite the 140 messages limitation / day of the LPWANs.
From an intergration point of view, it seems to be more complex. This means that you have to store the last index values in a database (or persistent variable). If you do not feel confortable with that, we can provide an api that will make this job for you.
A pulse mode is available, but we do not recommand to use this mode in production.