Montefiore Einstein Paid Search Performance
Prototype
Website data through
10 Sep 2026
Paid launch
Not yet set
Date range to
Channel
Visitors
Domain

Performance overview

Website figures are live from GA4 and respond to every filter above. The paid half stays empty until the new program launches, which is the agreed behaviour rather than a data fault.

Paid spend
None
Not launched
Why paid is empty
The prior SEM program ended 2 March 2026 and is excluded from every view by design. The new program has no launch date yet, so there is no paid spend to report. Once the date is set it becomes the default start of every range on this dashboard.
Site sessions by month
Filtered by domain, channel and visitor type.
Verified conversions by month
Phone clicks and form submits only. The other three conversion columns are mislabeled upstream and excluded.

Paid search

Prior SEM program, June 2025 to March 2026, responding to the date filter only. In production this tab renders nothing before the launch date.

Structural sample
Real Montefiore Einstein numbers from a programme that has ended. Present to prove the layout and chart shapes. Campaign, geo and platform filters arrive with the real data, since the prior taxonomy will not match the new one.
Spend by month
Read at grain='ad'. Summing grains would double search spend exactly.
Impressions and clicks, indexed
Indexed to the first month in range = 100, so both fit one scale. No dual axis anywhere.
CTR by month
Clicks over impressions.
CPC by month
Cost over clicks, USD.

Keywords

A separate query at grain='keyword' that never contributes to a headline total. Keyword totals are period-wide and do not respond to the date filter in this skeleton.

Top keywords by spend
Prior program. USD.
Keyword detail
Sortable and filterable in the final build.
KeywordImprClicksCTRCostCPC

Website behavior

All figures respond to every filter. Scoped to an allowlist of the ten genuine ME domains, because the hostname field carries tens of thousands of referrer-spam hosts that would otherwise inflate every total. See Open Gaps.

Sessions by domain
www. stripped and merged.
Sessions by channel
Built by hand from session_source_medium, since GA4's native channel grouping is 100% NULL here.
New and returning sessions by month
ME's GA4 export has no Total Users field, so these count sessions by visitor type rather than people.

Conversions and CTAs

Scoped to what survives the mapping audit. Two verified conversions plus the CTA intent layer standing in for the appointment funnel.

Funnel missing
appointment_form, appointment_success, appointment_failure and appointment_change are confirmed in the Funnel export but are not carried into temp_me, which pivots only five events. Until that pivot changes there is no booked-appointment number, and the CTA clicks below are the closest available signal.
Domain filter is coarser here
The GA4 conversions table carries no hostname column, only brand. Selecting a domain filters conversions to that domain's brand, so montefioreeinstein.org, doctors.montefioreeinstein.org and montefiorehealthsystem.org cannot be separated from one another. The sessions charts are not affected.
Verified conversions by month
Phone clicks and form submits kept as separate lines. Channel filter below applies to this panel only.
Booking intent CTA clicks
Period-wide totals, Jun to Aug 2026. Counted, never rated: click_text covers 7.6% of rows.
What is driving conversions and CTA clicks
Conversions and CTA clicks attributed to the UTM campaign that brought the session, June to August 2026.
Keyword level is not possible
The GA4 conversions table carries session_campaign but no search term, and it joins to paid spend at platform grain only, never campaign or keyword. So conversions can be attributed to a campaign, but no keyword-level conversion or CPA can be produced from temp_me at all. Getting it needs a term column added to the conversions pivot upstream, the same change that would land the appointment funnel.
Nearly all unattributed
Of the campaigns below, only na_gre_43b (Google Ads, 8 phone clicks) and two Meta boost campaigns carry a paid platform. Everything else is unattributed, which is expected while paid search is dark. These panels are the structure that will fill once the new program launches.
Conversions by campaign
Phone clicks and form submits, stacked. Platform shown in the tooltip.
CTA clicks by campaign
Appointment, doctor and MyChart CTA clicks by the campaign that brought the session.

Open gaps

Everything here needs resolving before the dashboard goes to the client. Each is currently handled by showing nothing rather than a wrong number.

Blocker

Appointment funnel absent from temp_me

The four appointment events are in Funnel but not in the five-event curated pivot. This is the outcome layer the client is asking for.

Blocker

Three conversion columns measure the wrong thing

appointments_scheduled maps to navigation_open and counts nav menu opens. consultation_requests maps to search_result_conversion and is not MyChart. find_a_doctor maps to a renamed event and has returned 0 since May 2026.

Blocker

The hostname field is contaminated with referrer spam

Verified 11 Sep 2026. August alone carries 59,029 distinct hostnames. The ten real ME domains account for 1,041,554 sessions; a further 375,362 sit beyond rank 50 on hosts Montefiore does not own. A sample of ranks 60 to 80: wallpapers.com, mubasher.info, mail.hotpepper.jp, istockphoto.com, islamicfinder.org, etrailer.com.

Any site-wide session total from this table is inflated by roughly 25%. August reads 1,491,069 but real ME traffic is nearer 1.08M. This dashboard uses an allowlist of the ten genuine properties, which is why its totals are lower than a naive query.

Blocker

engaged_sessions is unusable

Exceeds sessions on 24,146 rows in August alone, maximum 45,142 engaged against maximum 3,542 sessions at the same grain. Engagement rate cannot be computed.

Verify

Average session duration looks too high

August computes to 9 minutes 48 seconds per session. total_session_duration_sec is likely scoped differently, same as engaged_sessions.

Verify

Conversions cannot be filtered by domain

The conversions table has brand but no hostname. Splitting the three montefiore-brand domains apart needs a hostname column upstream.

Verify

Paid launch date not set

Built against a placeholder constant. Setting it changes the default range and the start of every paid view.

Verify

Careers domain still included

montefiore.wd12.myworkdayjobs.com is job seekers, not patients. Filterable here, but it should probably be excluded at the query level.

Prototype built 11 Sep 2026. Theme, type and chart styling ported from the ENTA performance dashboard. Website figures VERIFIED by direct query against temp_me, scoped to an allowlist of the 10 genuine ME domains. Paid figures are prior-program data used as structural sample, clearly marked, and excluded from the production build. No raw dataset queried. No inferred figures.