Qualaroo Destination not Receiving Identify payload

We have set up Qualaroo as a destination, and the tag is running fine.  However we have identified a problem.  We’re calling identify() from the server side which means the Qualaroo tag does not receive the traits and id payload via Segment’s _kiq.push() call, precisely because we are firing identify from the server-side.

As a workaround to this issue we were considering adding a custom source function in order to trigger the identify call on the client side.  We would use the page event to trigger the identify call. Something like this:

async function onPage(event, settings) {

   let eventBody = request.json();


   userId: eventBody.userId




Question: is this possible?  If so, are there any issues or risks with this approach?


Best answer by Andrew Rawson 6 June 2024, 21:28

View original

2 replies

Userlevel 2

Hi @Jeffrey Campbell

Out of curiosity, is there a reason you’re preferring to fire Identify from the server side rather than client side at the moment? 

I’m not considered a technical resource so I can’t verify that the code you provided is correct. From my understanding looking at the documentation for Qualaroo it appears it’s a device-mode connection which may mean the client-side tracking is necessary via Analytics.js (Step 5 of the “Getting Started” docs show analytics.js as how Segment operates for Qualaroo). 

With that being said, I’ll have to verify with a more technical counterpart whether server-side tracking like this for Qualaroo is possible and/or if the code you provided is correct. It may be worth reaching out to as well to see if they may be able to help. 

More generally though, client-side tracking tends to paint a more robust picture of customer interactions with your web properties but can be affected by ad-blockers or browser extensions. Whereas server-side we recommend for mission-critical events like conversions. 

Let me know if this helps! 

Hey @Andrew Rawson - that’s a fair question.  We chose server side because the implementation was more straightforward and required less plumbing.  We could certainly move the identify call to client side, or add it, but just exploring if there are any other options.

Really appreciate your feedback!