Create a configurable setting for my singleton service

I want to create an asset for other developers to use. I have a singleton service (analytics) which I’m using in each scene and many game logic places and I don’t want to add this object to every scene and force other developers to do the same. This service has a few configurable properties which need to be set before it can accept requests like below:

MyCoolAnalytics.Instance.Track("something game event 1");

The issue is the service is not inherited from MonoBehavior so I cannot just drop a scriptable object asset and let a developer configure it. I also don’t want the developers to open the C# file to edit property values, that is a bad UX for an asset.

What is the best way to set my asset up so other developers can have an easy way to configure it after importing (define a few string settings) and the singleton service not inherited from MonoBehavior can read these settings and apply them in runtime?

as a solution, I have created a scriptable object and associated asset with it and loaded it with Resources.LoadAll and don’t forget to put your asset into the Resources folder, it can be a subfolder of your project (no need to be the root resources folder!)