Ninox 4 performance — paid media, funnel and customers, live from BigQuery & HubSpot.
connecting…
FromTo
connecting…
demo
01
Paid → revenue funnel
width = log-scaled stage volume
02
Paid media trend
pick up to 3 metrics
tap any day to pin a note a pulsing gem marks a hidden insight
BM
Paid CTR vs industry benchmarks
per platform — a blended CTR would be meaningless
GEO
Where it happens — signups by country
03
Notes & context
Δ
01
Acquisition funnel
width = log-scaled stage volume
02
KPIs by funnel phase
03
Evidence tables
Delivery by stage
S1 awareness · S2 consideration · S3 action — parsed live from campaign names.
Top ad sets by spend
Highest-spend LinkedIn ad sets in the selected range.
04
Best performing ads
Ranked live by the selected date range & metric. To show the creative inside the card, drop its export into public/creatives/<creative-id>.png (or .jpg/.mp4) — picked up automatically, no restart. The Marketing API is not wired and the Fivetran post sync carries no content for current ads (post_history ends 2024-06), so cards without a local file show format + live metrics; hierarchy_level_3 supplies copy where the naming carries it.
TR
Trend over time
pick up to 3 metrics
GEO
LinkedIn-paid signups by country
SPLIT
Company-size split — LinkedIn-attributed signups
05
Notes & context
Campaign
01
Google Search funnel
width = log-scaled stage volume
02
Trend over time
pick up to 3 metrics
tap any day to pin a note a pulsing gem marks a hidden insight
CONV
What a "conversion" actually is — action split
Campaigns · selected action
Weekly trend · selected action
03
Google Ads source tables
Ad groups
Live from hierarchy_level_2, funnel stages included.
Keywords, search terms & AI Max
04
Best performing ads
Ranked live by the selected date range & metric, ad grain (ad_id). Real RSA copy is now live from the google_ads raw transfer — cards show actual headlines & descriptions, Google's Ad Strength, and link to the real landing page. Image assets are not included in the transfer; a screenshot dropped into public/creatives/<ad-id>.png still shows inside the card automatically.
GEO
Google-paid signups by country
SPLIT
Company-size split — Google-attributed signups
05
Notes & context
BI contacts model · rpt_marketing_contacts
Stage
01
People
Click a row for the full profile: attribution, revenue split and the GA4 web journey. The journey links via the product user-id and covers roughly a third of contacts — anonymous pre-signup visits stay unlinkable until the attribution identity map exists. Emails are internal business-contact data; treat them accordingly.
Identity map + GA4 sessions
01
The LinkedIn reality — spend vs evidence per stage
click a stage for campaigns · click assisted for the people
02
Where paid clicks die — click → session survival
03
Journey explorer
what touched whom, in what order — click a path for the people
Days from first touch → signup
Touches per signup
04
Model lab — pick a model, see who gains credit
BI cohorts × GA4 activity
?
What this page answers: do the people we sign up actually come back and use Ninox — or do they vanish?
Each row is a cohort: everyone who signed up in that week. Reading left→right, W1 = the share who returned the week after signup, W4 = still active a month later.
Signups are easy to buy; this shows which weeks (and, via the cohort click-through, which channels/campaigns) brought people who stay. A paid push whose cohort dies by W2 is buying dead weight, whatever its CPA says.
Cohorts byclick a cohort for the people
01
Do they come back? — cohort heatmap
02
Average retention curve
measurable base, weighted
Population
Where these came from — by source multi-touch · HubSpot acquisition channel · total then attributed split
01
Final revenue funnel layer
BM
Funnel vs industry benchmarks
every figure carries its published source
Directional, not gospel: every study defines “activated” and “PQL” differently. Our figures come from the BI contacts model for the selected window and follow the date filter.
02
Attribution quality
By attribution method
How each contact was tied to a source.
By acquisition channel
Paid and organic, contact-level counts.
03
Paying organizations · live CRM
loading…
04
Metric contract
GEO
Where signups happen — by country
⊞
Growth over time
Segmentselecting a segment re-values the KPI tiles above
⊞
Stage-to-stage conversion rate
From→To
loading growth trends…
SPLIT
Company-size split — full funnel cohort
05
Notes & context
01
What changed
loading…
02
Paying organizations
loading…
How to read: sorted by Latest activity — the most recent commercial event (first purchase, free→paid conversion, or renewal), so anything that just happened is on top. In CRM since = when the org record first synced (for a converted free user this is earlier than the first payment; ≈ marks the initial backfill window). Signup cohort = the earliest linked user's Ninox signup. Current period = the running plan window — for monthly plans the start moves forward at every renewal, so it is not a win date. Click any row for its linked users.
03
By plan
MIX
Commercial mix & momentum
Paying orgs by plan
Licences by plan MRR needs the UMS table (asked BI)
New wons per week selected range · won date
SPLIT
Company-size split — paying organizations
04
Notes & context
Global notes show here and across tabs for the covered dates.
GA4 · analytics export
01
Key conversions
the KPIs the site is measured on · GA4 · selected range, daily trend
02
Signups & engagement
GA4 · selected range
Signup completion
Starts vs completions — one clean read, no micro-steps.
Engagement
Sessions, engagement and page depth.
03
Pages & content
PropertyLanguageView
04
Where visitors come from
first-touch source / medium + property mix · GA4
Channels
First-touch source / medium.
Traffic by property
One GA4 property tracks the whole estate — this is the mix behind the headline numbers.
05
Website trend — sessions, funnel events, rates
GEO
Where visitors & signups come from
SPLIT
Company-size split — all web signups (GA4 ↔ contacts join)
06
Notes & context
Global notes show here and across tabs for the covered dates.
GA4 + Search Console · blog pages only
01
Post performance
LanguageShow
Views · all vs Landed first — the distinction that matters:Views · all counts every view of the page, wherever it sat in the visit (a reader may have arrived on the homepage and clicked through to it). Landed first counts only the visits where this page was the entry point — the reader arrived here directly from Google, social or a link, so the page earned the visit. High views but a low “landed first” share = people read it once they are already on the site; a high share = the post pulls new readers in. Both are additive across rows. Also: click any row for that post's top search terms (Search Console) and CTA breakdown (GA4). Time / view = summed engaged time ÷ views. Read ≥75% = blog_article_read_75 ÷ article reads. Signups · in session = a signup completed in the same visit that read the post (“landed” = that visit also started here) — session-based, so these overlap across rows and must never be summed.
02
Which CTAs actually get clicked
click_text × cta_location × cta_action · GA4 · blog pages
One row = one distinct CTA (its wording × where it sits × what it does). location tells navigation apart from real conversion CTAs (e.g. blog_bottom_cta vs header).
03
Search demand — what Google sends the blog
Search Console · queries landing on blog URLs
04
Trend — blog reach vs organic clicks
GEO
Blog readership by country
05
Notes & context
Global notes show here and across tabs for the covered dates.
HubSpot Campaigns · email assets
CH
Engagement by email
click a chip to re-rank
Sends by email type
01
Performance overview
Sends → opens → clicks
Selected-range N4 engagement progression; widths use the real share of sends.
Performance read
The clearest current signals, volume-aware.
02
Attributed conversions & signups
Per-campaign contribution ▾
03
What drives performance
Email type efficiency
Click rate by content/lifecycle type; bars start at zero and volumes are shown.
Language performance
Weighted rates from summed sends, opens and clicks.
04
N4 activity performance
openclick
05
Asset detail & methodology
All N4 email assets ▾
Coverage & metric definitions source and formulas▾
GEO
Email-driven signups by country
SPLIT
Company-size split — Email-attributed signups
06
Notes & context
Global notes show here and across tabs for the covered dates.
Google Search Console
Segment
01
Branded vs non-branded
brand = query contains "ninox"
02
Clicks & impressions trend
sc-domain:ninox.com · web
03
Top queries & pages
Top queries
By organic clicks; CTR & avg position recomputed from summed clicks/impressions.
Top landing pages
Pages that received the organic clicks.
GEO
Organic demand by country
04
Notes & context
Global notes show here and across tabs for the covered dates.
LinkedIn company page
01
Post performance
Show
02
Audience growth
03
Who follows Ninox
follower demographics · current snapshot
Break down by
04
Company page visits
which tabs of the page people open
05
What kind of post works
Engagement rate = (clicks + reactions + comments + shares) ÷ impressions, recomputed per format from the raw counts — never the export's own engagement column, which is already a rate. Avg / post is reach per post, so a format with few posts stays comparable.
Impressions by format
06
Does the page drive the website?
Organic vs paid reach share of voice
Against industry benchmarks
GEO
Followers by country
05
Notes & context
Global notes show here and across tabs for the covered dates.
Data connections
Every source feeding this dashboard, and which datasets are live vs pending.
BQ
BigQuery settings
Project
Dataset
Paid media table
Service-account key file (server path, optional)
Notes & context
Add context tied to a date so the team sees what happened in this period.