Intelligence·Engagement·Defense
A few small habits in your markup make Dijji’s reports sharp instead of noisy — real CTAs instead of stray sentences, real conversions instead of guesses. Five minutes of labelling pays off on every chart.
Dijji’s “Top CTAs” reads the visible text of whatever was clicked. An icon-only button has no text, so it lands in your reports as (blank). Add an aria-label — it’s good for accessibility and analytics.
<button>🔍</button> <button class="close">×</button>
<button aria-label="Search">🔍</button> <button aria-label="Close dialog">×</button>
Where it bites: hamburger menus, close (×) buttons, carousel arrows, icon toolbars — anything with no words.
Dijji records clicks on real interactive elements — <a>, <button>, or anything with role="button". A <div onclick> is invisible to assistive tech and harder to attribute. And if you wrap a whole card in one link, give the action a clear inner label so the report doesn’t capture the entire card’s text.
<a href="/p/9"> <h3>Acme</h3> <p>Long description…</p> </a>
<div class="card"> <h3>Acme</h3> <a href="/p/9">View pitch</a> </div>
Dijji is smart about this now — it prefers a button’s own label or the heading — but a real CTA always reports cleanest.
Dijji never reads what people type (privacy — see below). The one exception is on-site search, which marketers genuinely want. Tell Dijji which box is search and it captures the query only on submit, into a dedicated “Searches” report.
<input type="search" name="q"> <form role="search"> … </form> <input data-dijji-search>
Password, email, tel and number fields are always excluded, even with these attributes.
Pageviews and clicks are automatic. For the events that define success — signup, purchase, demo booked, plan upgraded — send a named event with a little context. Then build goals and funnels on top of it, no redeploy needed.
dijji.track('signup', { plan: 'pro', source: 'pricing' }) dijji.track('purchase', { value: 99, currency: 'INR' })
Keep keys low-cardinality (plan, tier, source) — not order IDs or emails. High-cardinality values bloat reports and risk leaking PII.
Dijji reads standard UTM parameters and ties them through to conversions — so you see which source actually drove signups, not just clicks. For YouTube and Instagram, put the video/post id in utm_content and Dijji links the view back to the post.
https://yoursite.com/pricing?utm_source=linkedin &utm_medium=social&utm_campaign=launch &utm_content=postId_1842
Build links fast with the UTM builder inside Engage → UTM in your dashboard.
Every report groups by page path. Readable, stable paths (/pricing, /blog/analytics) make your charts legible; opaque ones (/p?id=3&v=2) scatter the same page across rows. And never put personal data — emails, tokens, names — in the URL; it ends up in analytics.
So you can instrument freely — and usually skip the cookie banner for Dijji:
Dijji already ignores thumb-scroll noise, so a swipe won’t register as a click or a rage click. Help your users (and your rage-click signal) further by keeping tap targets at least 44×44px with comfortable spacing — cramped buttons are what generate genuine rage in the first place.