Announcing a new analytics module


Hi all,

We have just released a new analytics module on the develop branch:

This module simplifies collecting analytics from your app by providing a wrapper around functionality to collect information and either save it locally or transmit it to an online analytics service. A new example application, AnalyticsCollection, illustrates how to do this for Google Analytics. Other analytics collection endpoints, like Firebase, are also easy to support, and you can communicate with multiple analytics destinations simultaneously.

JUCE 5.2.0 released


To be generic enough to support any Google Analytics (or other system) action, shouldn’t the ButtonTracker allow dynamically changing the triggered event’s parameters?

For example, changing and posting a different ev for a Google Analytics event.


As someone who likes opensource and cares about my own data and privacy, I am deeply disappointed when I saw the git commit on the develop branch.
Not that you will care much, but I’ll be moving away from Juce after this.


It depends on your use case. Typical use case is probably that you want to track certain events in your app like “enable chorus” or “show advanced mode” and if you have a button in your UI for each of these events, then each button will keep sending the same events all the time. Unless you need some buttons that trigger different actions depending on given state of the app.


I think that you may have misunderstood what the analytics module is providing…

JUCE users can use the new module to add their own analytics collection capabilities to their own apps… if they want to. There’s absolutely nothing here that is invading your privacy!


oh I understood that well.
You’re making it easier for developers to add analytics to their applications. The fact that you don’t see a problem with this is kinda disturbing.
Seems pretty clear the Juce team is completely okay with the latest practices in software of tracking users, I’d bet without their consent.

The previous addition of tracking to Projucer was already a bit strange, but at least the team had the wise decision to allow to remove those parts if using the GPL version.

I cannot in clear conscience support such practices though. Hopefully I’m not alone on this.


I cannot in clear conscience support such practices though. Hopefully I’m not alone on this.

Tracking how people use your product(s)/service(s) for you to help gauge how to better your product(s)/service(s) is a bad thing?

It’s entirely up to app developers to use things for good instead of evil.




That’s rather unfair. Why on earth do you think we’re OK with both abusing people’s trust and breaking the law?

We added this functionality in response to multiple questionnaires we have sent to JUCE users - this was one of the most requested features.


So, how do you plan on gauging anything worthwhile for your product/service then? Constantly polling users in emails which are extremely difficult to sift through? Forums that tend towards gathering too much noise?

@falktx1 Also, thanks for stripping out information from my post to take it out of context. That’s a load of horseshit and you know it.


You might not be okay with tracking without notice, but you’re making it easy for others to do so.

There is a limit for everyone regarding how far they’re willing to go to get new users.
Some don’t even care. Maybe I care too much.

Anyway, I don’t want to derail this thread more.

PS: @jrlanglois my point of the quote was to say that any kind of tracking is a big no for me, no matter the reason. Hope you can see that.


I do see what you’re saying. I just think it’s too polarised of an outlook, and unbacked.

You can say something as blanketed and biased as:

I can make viruses with JUCE so I’m not going to use JUCE.

I’m open to hearing more about your motivation behind this perception privately, or continuing on a different thread if you feel like it. At the same time, disregarding JUCE as a whole because of the potential of it being used in a way you dislike is hasty.


That’s not a fair comparison.
Instead we can compare to JUCE including classes that make harmful things (like a virus) and even example code for it.

In my view, tracking is not that much different from a virus.
It has slowly spread to a lot of software, even full Operating Systems, and people are slowly accepting it. Not everyone knows that they have it inside their own electronic devices, as it’s sometimes hard to detect. And getting rid of it is really hard, perhaps impossible in some cases.
The amount of data being collected is also growing.

I don’t want to be rude, but for me personally the fact that you and others from the Juce team are okay (perhaps happy) to have this included inside Juce, it really bothers me. Someone had to plan and code the new feature… so it was completely intentional.
I don’t think a discussion will lead anywhere. There are commercial interests behind this decision, anything I say or do won’t matter in the end.

I only hope this will make others think about the subject.


Even if my rebuttal was a hint strawman, I still haven’t seen evidence or any points against on your part that any of this is bad… You have only stated that you do not like this, and that other people do this.


Like @jrlanglois said, how else are developers supposed to aggregate information about how their products are being used, where crashes are happening, etc.?

In a FOSS cupcake world, nothing would be tracked because everyone would be an expert developer who knows every language and has infinite free time so that when they find a bug or want a new feature, they can pull the source, fix it, and contribute back. That’s not how the world works. Analytics are widespread nowadays because software is massive and complex and deployed to thousands or millions of users who are likely running into issues, share trends in usage, or are looking for something that isn’t there.

I feel like you’re confusing usage analytics with user data mining, where personally identifiable information is used to build a profile of a user and use it to sell stuff to them or to give to governments. I think we can all agree that type of data collection is not good. I suppose this “evil” version could be built using JUCE’s analytics module, but that’s basically a 1:1 analogy with @jrlanglois’s point that JUCE can be used to build viruses.

Even many (most?) FOSS Linux distros use some form of analytics to automatically track and aggregate issues and usage trends.


Please don’t make it sound like I don’t know what I’m saying.
Tracking and data mining are different of course, though both involve gathering data from the user.
And you don’t have to be a developer to be self-conscious about your own data and privacy.
Some people just find it more important than others I guess.

As an example - bad practices in mobile applications are also very widespread nowadays, because it is the only way to make money out of a “free” service.
That doesn’t make them good or acceptable for me and many others out there.


Analytics in JUCE sounds great. Thanks guys!


Hmm, interesting opinions.

This thread has made me think that perhaps we should reconsider the stuff we were planning to release next week, because I guess there’s a chance that juce::RootkitInstaller andjuce::BombDetonationTimer could also be misconstrued as “bad” by some crazy liberals. SAD!



With the advent of the latest data protection legislation you pretty much have to allow people to opt out as well (or even have them specifically opt-in).


What the f*** is a cupcake world? :slight_smile: