Engage · Interaction events
See exactly how users interact with your guidance
Every tour step, help popup, FAQ view, consent choice and achievement emits a structured event. Pipe them into the analytics and product tools you already use.
macaw.on('tour.completed', (e) =>
analytics.track('Tour completed', { tour: e.trigger }));
macaw.on('consent.*', (e) => syncConsent(e));
// Google Tag Manager, no code changes
window.addEventListener('macaw:event', (e) =>
dataLayer.push({ event: 'macaw', ...e.detail }));
What you get
Three ways to listen
An onEvent callback, targeted on('tour.completed') subscriptions, or a macaw:event window event for tag managers.
Consistent envelope
Each event carries an id, type, category, space, user, trigger and timestamp.
Wildcards
Subscribe to one type, a whole category like consent.*, or everything with *.
Safe by design
A handler that throws is caught and logged. It never breaks the widget.
How teams use it
Tour funnels
Find the step where users drop out of onboarding.
Help effectiveness
Learn which popups get opened, and on which screens.
Consent reporting
Send consent changes to your own systems as they happen.
All in the same SDK
- Product tours: Onboarding tours that show users the way, then get out of it
- Contextual help: Answers exactly where users get stuck
- FAQs & content: An in-app FAQ your team can keep up to date
- Achievements & streaks: Reward the habits that keep users coming back
- Cookie consent: Cookie consent you can prove, not just collect
- Spaces & teams: Built for companies with more than one product