Personally, I become immune to log events in the codebase, especially when the implementation is a simple function call such as log('this-event-clicked).

A custom or manually implemented logging solution also allows fine-grained insertion of logging events and (usually) the ability to attach useful information to these events.

So I think the real big selling point on a service such as Heap is saving on the labor of manual additions of libraries, function calls, imports, and so on. Supposedly you get a host of behaviors right out of the box, so to speak (so far the only ones I can really attest to at this moment are page views).

Being a somewhat adventurous developer I’m game to try something new, especially on a relatively small project with a low cost of implementation change. In other words a low traffic project. Or zero traffic project. Yea, right in my wheelhouse.

Despite the allure of being able to just add the library to the site and automatically capture all my desired events, I still had to add custom events for button clicks. This is something I would honestly expect as part of an “out of the box” implementation. Maybe it is because I am implementing Heap on a client which uses Vue, and that effects the ability to listen for clicks on the DOM. I don’t know for certain, but this seems like a reasonable guess.

Heap offers something called the Event Visualizer to address this issue, a pretty great tool which loads a URL, and allows the user to utilize the site as normal to identify the events worth capturing. The real trick is in finding it in the dashboard – that took me about fifteen minutes to discover through a combination of guess-clicking and document reading.

Side note: a list of all the known, automatic events would be really useful in determining whether a custom event had to be defined.

Once the events were defined I didn’t really have to spend a bunch of time waiting for them to populate. I could build funnels easily and trouble shoot by stimulating the event on the development site (yes, the event visualizer works with localhost). For a small project with small needs, I feel good about this solution.