What changed in TJDA Pulse, the WooCommerce connector and the free plugin — and what it means for you. Everything keeps working without updating; releases marked with an action tell you what you unlock.
Pulse platform10 Sep 2026
Honest zeroes: channel cards show their working
What is new
The Google card now reconciles both worlds in three certainty layers that can never double-count: sent & deduplicated (exact, shared by both bookkeepings), Google adds (view-through, modelled, conversion-time window — constructed on top), and Pulse hint-only (conversions we saw but never sent; it overlaps Google’s modelling, so the larger of the two counts once, never the sum). The crown line compares what each side can individually prove — Pulse’s click-documented conversions against Google’s strict click-attributed count — and a green chip appears only when Pulse exceeds even Google’s fullest estimate. The chip strip has retired in favour of an expandable breakdown that now lives on the Google, Meta and LinkedIn cards alike — each drawing what its platform can honestly split (Google: click-proven / estimated / window; Meta: click and view claims; LinkedIn: a single reported figure) next to Pulse’s sent and hint-only layers, with the individually-proven line as the closing verdict. Closed by default, so the overview stays calm. Each panel now computes its own sent and hint-only figures from that channel’s signal, never borrowing from a neighbouring card. The Google breakdown now compares apples to apples: both layers — click-proven and estimated — sit on the conversion-time calendar, so the confusing window bucket has retired. Every conversion step in Settings can now carry its browser-mirror action, and the channel cards compare against exactly that pair — server action plus web mirror of the non-segment steps only. Segment steps never enter the channel claim, so one lead is never counted twice. Headline claims are status-free: every card reads the all-conversions column on that pair, never Google’s primary flag — the click-proven split appears only as grey context where Google actually exposes it. Channel performance now opens with the number that is Pulse: the uplift hero on each channel card shows how many more conversions the platform measures since Pulse delivers — part direct click recognition, part conversion modelling powered by our deliveries — with recovered conversions and revenue and a weekly trend of claim versus deliveries. A compact GA4 strip on top compares what Pulse measured against the browser property. Every channel card now leads with Proven by Pulse — the real number, split into counted by the action, delivered through our API door, and only in Pulse — while the reconciliation breakdown, the view-modelled context lines and the Server-vs-Web uplift box have retired: their one lasting insight lives on as a single line, the conversions that carried a channel signal but could never be counted for lack of consent. The uplift headline is now budget-fair: it reads conversions per euro, so spend growth can never masquerade as Pulse effect — raw volume and spend change ride along as context. The GA4 strip compares Pulse’s full measurement, unconsented included, against the browser property, and stays silent on percentages below five browser events. The measurement-start clamp now reaches every corner: the all-channels click total, and the campaign table’s truth side — one era, everywhere on the page. The uplift trend now shows on every channel card with enough history: below the volume threshold the line still breathes under an honest “insufficient data” label — no percentage pretends to be a verdict — and freshly delivering channels get a teaser: history plus the delivery-start marker, unlocking the full trend after two complete weeks. The uplift baseline now prefers the same ISO weeks of last year on per-client counterpart actions — seasonality cancels out — falling back to the pre-delivery baseline where last year is too thin, with the basis stated on the card — and a two-pill switcher lets you flip between last year and the pre-delivery baseline instantly, each side keeping its own volume honesty. Delivery start now respects the measurement start (test-week deliveries can no longer wake the trend early), and weeks without meaningful spend — account pauses or missing history — are excluded from every per-euro and spend comparison, on both sides and in the year-over-year basis alike. The measurement-start clamp on delivery start now applies only to a test run-up (a handful of pre-start deliveries); real delivery history keeps its true starting week. And both trend charts gained a dotted running-week tail, so today’s conversions are visible the moment they land — while every percentage keeps judging completed weeks only. The weekly report, Slack and mail digests and the MCP endpoint now read the very same lens: non-segment pairs only, server action plus web mirror, so every surface tells one story. Channel claims are clamped to the measurement start: whatever date range you pick, the claim never reaches back before Pulse was live, so claim and truth always describe the same era — on both sides of the card: the tracked-with-signal figures honour the very same clamp, keeping missed an honest like-for-like number. Below it, Missed compares one-to-one against the strict click-attributed count, and with fewer than ten ad-signal conversions in range the card says insufficient data rather than a confident zero.
What you get
A zero now means “covered” only when the numbers actually prove it.
No action needed — everything keeps working as-is.
Three remote kill switches (lead tracking, purchase tracking, script injection) let the platform pause a layer per client instantly while a real fix is prepared. When a strict consent banner deletes pre-consent cookies, the connector now re-reads the landing URL the moment consent is granted — tool-agnostic, with _gcl_aw as a universal Consent Mode beacon — so first-visit click IDs survive without ever storing an identifier before the yes. A new Pulse GA4 Measurement ID setting makes session stitching pick the Pulse property’s cookie when two GA4 properties run side by side. And an opt-in Automatic updates checkbox (default off) hands that choice to the site owner, exactly like WordPress core.
What you get
An emergency brake per client, sharper first-visit attribution, deterministic stitching, and unattended updates for those who want them.
Three remote kill switches (lead tracking, purchase tracking, script injection) let the platform pause a layer per client instantly while a real fix is prepared. When a strict consent banner deletes pre-consent cookies, the connector now re-reads the landing URL the moment consent is granted — tool-agnostic, with _gcl_aw as a universal Consent Mode beacon — so first-visit click IDs survive without ever storing an identifier before the yes. A new Pulse GA4 Measurement ID setting makes session stitching pick the Pulse property’s cookie when two GA4 properties run side by side. And an opt-in Automatic updates checkbox (default off) hands that choice to the site owner, exactly like WordPress core.
What you get
An emergency brake per client, sharper first-visit attribution, deterministic stitching, and unattended updates for those who want them.
Action: Array
Connector (WooCommerce)v1.3.29 Sep 2026
Update channel compatibility hardening
What is new
The Update URI header now carries the full https URL and the update response includes the id and new_version fields, matching what every WordPress version since 5.8 expects before it shows the update notice.
What you get
The one-click update bar appears reliably across WordPress versions.
No action needed — everything keeps working as-is.
Pulse platform9 Sep 2026
Pulse Remote: endpoint authentication aligned with hashed API keys
What is new
The update and calibration endpoints now authenticate through the same hash-aware helper as the event intake, and config signatures use the presented key as the shared secret. One credential, one behaviour, everywhere.
What you get
The API key from the plugin settings works identically for events, calibration and updates.
No action needed — everything keeps working as-is.
Connector (WooCommerce)v1.3.19 Sep 2026
Builder flags wired to remote calibration
What is new
The form-capture selector is now assembled per builder from the calibration config: Contact Form 7, WPForms and Elementor can each be switched off per client without a release. Defaults keep every builder on, so behaviour without config stays byte-identical; with every builder off, a harmless sentinel keeps the script inert.
What you get
A misbehaving builder integration can be silenced per client in minutes, straight from the platform.
No action needed — everything keeps working as-is.
Connector (WooCommerce)v1.3.09 Sep 2026
Pulse Remote foundation: update channel and signed calibration
What is new
The connector now checks the platform update channel (self-hosted, behind a deliberate publish lock) and fetches its calibration as a signed config: HMAC-verified, re-whitelisted client-side, persisted as last-known-good, with the built-in defaults ruling whenever no config is available. The Elementor form selector is the first calibrated value, and every event reports the active connector_config_version.
What you get
Calibration fixes reach sites as a config push; future versions install from wp-admin.
Action: Array
Pulse platform9 Sep 2026
Pulse Remote (phase R1): signed calibration config per client
What is new
The platform can now serve connector calibration — selectors, builder flags, segment-field hints, kill switches and feature flags — as a signed JSON document per client (global defaults with per-client overrides). Values are whitelisted server-side: only known sections with the right value types ever leave the endpoint, so the channel carries data, never code. The surface is inert for every current connector; the 1.3 line will fetch, verify and apply it.
What you get
Calibration fixes become a config push instead of a plugin release.
No action needed — everything keeps working as-is.
The platform now serves a connector update manifest and a key-gated package download. A deliberate publish lock (the downloads/RELEASE file) controls exactly which version the channel offers — build artefacts can sit ready without any site seeing them. The surface is inert for every current connector; only the upcoming 1.3 line will query it.
What you get
Future connector releases roll out to shops from wp-admin instead of by hand, one deliberate publish action at a time.
No action needed — everything keeps working as-is.
Pulse platform8 Sep 2026
Developer guide: dedup mapping, form fields and hard-won safety notes
What is new
The developer guide now documents the field-level deduplication handshake per browser tag (Google Ads Transaction ID, Meta eventID, Microsoft UET event_id), the form_id/form_segment payload fields that drive form- and segment-matched steps, a seconds-vs-milliseconds warning for fbc timestamps (with the intake safety net), guidance for sites running multiple GA4 properties, and a warning that strict consent banners delete unrecognised first-party cookies — the field-level details that decide whether server-side numbers match browser reality. A parity pass against the WordPress connector then added the purchase rule (the shared event ID is the order number, so browser tags keep pairing), the one-line consent rule (send the event, omit every identifier), and the fbp and timestamp payload fields.
What you get
Server-side implementers hit the pitfalls in the guide instead of in production.
No action needed — everything keeps working as-is.
Pulse platform8 Sep 2026
Client guide: Microsoft Ads and ChatGPT Ads sections, GA4 recipe and onboarding pre-flights
What is new
The implementation guide gained a Microsoft Ads section (custom-event goals match on the event-name condition, one goal receives browser and server through event-ID dedup), a ChatGPT Ads section (pixel + Conversions API setup, native oppref/obref click-vs-view attribution, the minor-units pitfall and a market-availability note), the three-part GA4 recipe (pageview duplicate for stitching, no lead duplicates, purchase duplicate with transaction ID), the literal AW- prefix warning with the Transaction ID and counting-type guidance for browser mirrors, and new onboarding checklist items: the ?gclid=TEST Consent Mode pre-flight, the auto-tagging check, the consent-banner cookie whitelist, and the test-on-test-pages-then-clean-up ritual.
What you get
Every onboarding walks past these pitfalls with a checklist instead of a debugger.
No action needed — everything keeps working as-is.
Pulse platform8 Sep 2026
Server and browser Google conversions deduplicate for leads
What is new
The server-side Google tag now sends the event ID as the transaction ID for lead conversions (purchases already used the order number). With the browser tag carrying the same s2s_event_id as Transaction ID, Google keeps exactly one conversion whether the browser hit, the server hit, or both arrive.
What you get
Mirror actions count one conversion per lead, never two.
Action: Array
Connector (WooCommerce)v1.2.237 Sep 2026
One push per lead, and correct Meta click timestamps
What is new
The lead dataLayer push is now idempotent: every event ID fires exactly one s2s_lead push, no matter how often third-party plugins re-trigger form events. Found live: a spam plugin re-broadcast Elementor’s success event, tripling the push and inflating browser mirror tags.
The Elementor selector matches real forms only (form.elementor-form) — the same spam plugin marks a hidden honeypot input with that class, which previously received its own event ID and push.
All three fbc builders now use millisecond click timestamps as Meta’s spec requires; second-based values from the id store are lifted automatically. The platform already normalises incoming events, so sites on older connector versions stay covered either way.
What you get
Browser mirror tags count one conversion per submission regardless of other plugins, and ad-blocked Meta clicks carry their true click time.
Action: Array
Pulse platform7 Sep 2026
New conversion actions appear before their first conversion
What is new
The Google depth sync now runs a catalogue pass over all enabled conversion actions: freshly created actions (like Pulse mirror actions during onboarding) show up in the action dropdowns immediately, instead of only after their first reported conversion. Existing metric rows are never touched by this pass.
What you get
Onboarding can map steps to brand-new actions right away. The step editor’s Google action dropdown now reads from this catalogue as well, so freshly created actions are selectable before their first conversion. The catalogue also stores each action’s gtag label, and the step forwarding falls back to it — steps mapped to brand-new actions fire their server-side Google tag from day one instead of silently skipping until the first campaign conversion.
No action needed — everything keeps working as-is.
Pulse platform7 Sep 2026
Meta click timestamps repaired at intake
What is new
The fbclid fallback in connector versions 1.2.18–1.2.22 builds the fbc value with a timestamp in seconds where Meta’s spec requires milliseconds, making those clicks look like 1970 to Meta — pushing real consented conversions out of the click window. The platform now normalises every incoming fbc (10-digit timestamps are lifted to milliseconds) before storing and forwarding, fixing all connector versions in the field at once. Real pixel cookies are untouched. Found on production events during the click-vs-view rollout.
What you get
Ad-blocked Meta click conversions land in Meta’s click column with their true click time — exactly the conversions Pulse exists to recover.
No action needed — everything keeps working as-is.
Pulse platform7 Sep 2026
Click vs view conversions: foundations
What is new
Platform claims now store click-attributed and view-attributed conversions separately where the ad platforms provide the split. Meta delivers 7-day-click and 1-day-view (the windows the sync has always requested; the keys were verified in live responses), LinkedIn delivers post-click and post-view counts (no value split exists on their side), and Google is stored as “split unavailable”: live probes show its attribution event type returns UNKNOWN for GA4-imported and API-uploaded conversion actions.
The Overview channel cards use the split where it exists (Meta, LinkedIn): missed conversions are computed click-vs-click, the claim line shows click and view attribution separately, and totals stack the view layer on top of the click truth without overlap. Channels without a split keep the previous lower-bound behaviour unchanged.
The campaign table now also shows Meta claims: campaigns are matched on the campaign ID or name carried in the UTM, compared against the click-window claim per campaign — Meta rows move from “no claim data” to a true click-vs-click gap.
Microsoft Ads and ChatGPT Ads get their own channel card, shown only when the pixel fields in Settings are filled (UET tag + CAPI token, or Pixel ID + API key): the claims side reads “claims sync pending (API access)” until their reporting APIs are connected, while the Pulse side already counts server-side conversions — for ChatGPT split natively into oppref clicks and obref views.
The Server-vs-Web section gains Microsoft Ads and ChatGPT Ads sub-cards behind the same pixel gate, using the Meta mechanic: server-attributed events (msclkid, or oppref/obref) compared against the browser beacon on the shared event ID — a pure own-data uplift that works before any reporting API. The Microsoft goal-level comparison (Pulse - Lead vs Browser - Lead) plugs in once Reporting API access lands. Both cards get an event selector (purchase, lead, or any custom event type the site sends) plus a Measure-from date, stored in the same uplift configuration as the other channels. The Meta card gets the same event selector, and its hint now states the click basis explicitly (fbc is only set after a click). The weekly digest headline follows the same rule: click claims where the split exists, with view-attributed conversions noted separately. The Meta and LinkedIn Server-vs-Web sub-cards now follow the same visibility rule as Microsoft and ChatGPT: no setup, no card.
What you get
Groundwork for click-pure missed-conversion numbers: Pulse clicks compared against click claims, with view-attributed conversions reported as their own line instead of hiding inside the totals.
No action needed — everything keeps working as-is.
Pulse platform7 Sep 2026
Review timeline layout fix
What is new
The reviews list keeps its narrow columns on one line: the week-milestone pills, channel, start date and action buttons no longer wrap when a long campaign name squeezes the table — the campaign column is the one that wraps instead.
What you get
The reviews overview stays readable for clients with long campaign names.
No action needed — everything keeps working as-is.
Pulse platform5 Sep 2026
Docs: form_segment in the API guide and client guide
What is new
The API developer guide (section 4) now documents form_segment — category data conversion steps can match on, with the same rules the WordPress connector applies — and the client guide explains per-service GTM triggers on the same field.
What you get
Server-to-server integrations can feed per-service conversions too, and GTM setups can mirror them browser-side.
No action needed — everything keeps working as-is.
Pulse platform4 Sep 2026
Conversion steps can match on form segment
What is new
Steps have a new optional Segment condition: combined with the connector’s form_segment capture (1.2.21+), one form can now feed different ad-platform actions per chosen service — “Roof” to the Roof action, “Facade” to the Facade action. An empty segment matches everything, so every existing step behaves exactly as before.
What you get
Per-service conversions from a single form, configured with one extra field on the step.
No action needed — everything keeps working as-is.
Connector (WooCommerce)v1.2.224 Sep 2026
Elementor leads: email, phone and segment now actually captured
What is new
The Elementor form handler read submissions through a method that does not exist in Elementor’s Record API (get_fields() instead of get("fields")), so the fields array was always empty: email and phone — and with them the full hash set — and the new form_segment were never populated on Elementor leads. The handler now uses the canonical API with the old call as fallback. Found by the 1.2.21 segment test on a production form.
What you get
Elementor leads finally match on Google, Meta, Microsoft Ads and ChatGPT Ads via hashed email/phone, and segment capture works end to end.
Action: Array
Connector (WooCommerce)v1.2.214 Sep 2026
Form segment capture and a CookieScript consent fix
What is new
New opt-in setting Form segment: with the checkbox on, the choice field with field ID type on Elementor forms travels as form_segment on the lead event and in the dataLayer push — so one form can feed per-service conversions (“Roof”, “Facade”) and per-service GTM triggers. Off by default; free-text values containing an @ are refused and values are capped at 120 characters.
CookieScript consent detection now lets the categories decide instead of the accept button: CookieScript writes action: "accept" even when a visitor unticks the targeting category, which the old shortcut treated as consent. Found by an empirical partial-consent test.
What you get
Per-service lead measurement without touching the form, and visitors who explicitly decline marketing are never treated as consented.
Action: Array
Pulse platform4 Sep 2026
Developer guide: form tokens and the __oppref fallback
What is new
The API guide now documents form_id/form_name on lead events (conversion steps match on the token) and the ChatGPT pixel’s __oppref cookie as a click-capture fallback — and the client guide explains per-form browser mirror tags in GTM.
What you get
API integrations get per-form reporting, and every capture fallback the connector uses is documented for server-to-server integrations too.
No action needed — everything keeps working as-is.
Connector (WooCommerce)v1.2.204 Sep 2026
Lead click capture: vendor-cookie fallbacks
What is new
Lead events now use the same vendor-cookie safety nets as orders: when a CDN strips the connector’s own cookies, the Microsoft UET cookie (_uetmsclkid) and the ChatGPT pixel cookie (__oppref) still deliver the click ID — caught by the 1.2.19 production test before any external install existed.
What you get
Lead-driven sites behind aggressive CDN caching keep their Microsoft Ads and ChatGPT Ads click attribution.
Action: Array
Connector (WooCommerce)v1.2.194 Sep 2026
Per-form browser events and ChatGPT view-through
What is new
The s2s_lead dataLayer push now carries a form_id token (elt-…, wpf-…, cf7-…) identical to the server event — for every supported form plugin — so GTM can fire a browser mirror tag per individual form.
ChatGPT view-through: the pixel’s __obref cookie now travels as obref on orders and leads (consent-gated, exactly like _fbp), and its __oppref cookie is a new click-capture fallback.
What you get
Per-form browser-vs-server comparison becomes possible, and ChatGPT Ads can attribute view-through conversions once the pixel runs via the GTM container.
Action: Array
Pulse platform3 Sep 2026
Lightspeed & Shopify: the full hash set
What is new
The Lightspeed and Shopify modules now send the same per-platform hash set as the WordPress connector — email_hash (Google, with the Gmail dot rule), email_hash_ms (Microsoft), email_hash_oai (ChatGPT), phone_hash (E.164 with plus) and phone_hash_oai — built with one shared normalisation library, verified against the ad platforms’ official test vectors.
What you get
Lightspeed and Shopify shops match on Microsoft Ads and ChatGPT Ads with the same quality as WordPress shops — and Google matching improves through proper Gmail and E.164 normalisation.
No action needed — everything keeps working as-is.
Pulse platform3 Sep 2026
Developer guide: full hash set and ChatGPT click reference
What is new
The API developer guide (sections 4, 5, 7 and 8) now documents the complete per-platform hash set — email_hash, email_hash_ms, email_hash_oai, phone_hash, phone_hash_oai — with each platform’s exact normalisation, plus the ChatGPT Ads click reference oppref throughout: capture, pulse_ids, channel_hints and the consent rules.
What you get
Server-to-server integrations reach the same match quality on Microsoft Ads and ChatGPT Ads as the WordPress connector.
Action: Array
Pulse platform3 Sep 2026
New platform type: WordPress
What is new
Clients can now be registered as plain WordPress sites (forms and leads, no shop) — the connector already supported them, the platform label now says so too.
What you get
Lead-driven WordPress sites are labelled correctly instead of as WooCommerce.
No action needed — everything keeps working as-is.
Pulse platform3 Sep 2026
Agency accounts
What is new
Clients can now be grouped under an agency. Agency users automatically see every client of their agency — including clients added later — and switch between them with the client picker in the top bar, without separate logins.
What you get
One login for the whole portfolio: an agency manages all its clients from a single account, and new clients appear automatically.
No action needed — everything keeps working as-is.
Pulse platform3 Sep 2026
GTM container v2: Microsoft Ads and ChatGPT Ads browser tags
What is new
The Pulse GTM container now ships six extra tags on the familiar base-plus-conversion pattern: a Microsoft UET base tag with purchase and lead events, and the ChatGPT pixel with order and lead events — all deduplicated against the server through the shared s2s_event_id, with ChatGPT amounts converted to minor units automatically.
Two new container variables — Microsoft UET Tag ID and ChatGPT Pixel ID — switch the channels on; unused variables are harmless. The guide (section 1) covers the import, a new double-counting check and an optional All Pages setting for maximum view-through.
What you get
Browser and server side by side on Microsoft Ads and ChatGPT Ads as well — view-through attribution runs via the browser tags, and both sides deduplicate through the shared event ID.
Action: Array
Pulse platform3 Sep 2026
Forwarding pre-flight for Microsoft Ads and ChatGPT Ads
What is new
New onboarding check: Pulse sends one synthetic event through the real forwarding code per configured channel — validate-only for ChatGPT Ads (nothing is stored) and a goal-neutral pulse_preflight event for Microsoft Ads that matches no conversion goal — proving the token, tag/pixel ID and every field format end to end before a conversion step goes live.
The verdict appears on the Audits page as Forwarding pre-flight per channel, including field warnings such as InvalidSha256, so “does it work?” is a green line instead of a hope.
What you get
Every new channel is proven working at onboarding — wrong tokens, wrong IDs or malformed fields surface before the first real conversion, not weeks later.
No action needed — everything keeps working as-is.
Connector (WooCommerce)v1.2.183 Sep 2026
Match-rate hash set, ChatGPT Ads click capture & campaigns that stick to the click
What is new
Hashing now follows each ad platform’s own normalisation: the connector sends a full hash set (Google, Microsoft and ChatGPT variants for email; E.164 and digits-only variants for phone), verified against the platforms’ official test vectors at build time. Empty values no longer produce a hash.
The oppref click reference from ChatGPT Ads is captured on landing and stored for 400 days alongside the other click IDs (consent-gated), so ChatGPT conversions can be matched server-side. Lead events now also carry msclkid and oppref.
The click touch in pulse_ids now stores its campaign: when a later plain visit wipes the last-touch UTM layer, the campaign is restored from the click itself — no more attributable orders without a campaign.
What you get
Higher match rates on every channel, ChatGPT Ads ready on the site side, and campaign attribution that survives return visits.
Action: Array
Pulse platform3 Sep 2026
New forwarding channels: Microsoft Ads and ChatGPT Ads
What is new
Conversion steps can now forward to Microsoft Ads (Conversions API, matched on msclkid plus hashed email/phone) and ChatGPT Ads (OpenAI Conversions API, matched on the oppref click reference plus hashed email/phone). Configure the UET tag/token and Pixel ID/key on the Settings page, then enable the channel per conversion step. Only consented events are sent, deduplicated against any browser tag through the shared event ID.
What you get
Two more ad platforms receive your server-side conversions — same consent gating, same step model, no extra site changes.
Action: Array
Pulse platform1 Sep 2026
New client type: B2C
What is new
Clients can now be set up as B2C (lead-driven consumer businesses such as contractors and installers). B2C accounts get the same lead-centric reporting, reviews and step templates as B2B; the type is shown separately so benchmarks can diverge later.
What you get
Lead-driven B2C businesses are reported the way they work: forms and quote requests first, no revenue placeholders.
No action needed — everything keeps working as-is.
Pulse platform31 Aug 2026
Google click validation in the Audit
What is new
The Audit now includes Google click validation: every day Pulse asks Google, per order, whether the stored click of each consented conversion is recognised and within the attribution window. Nothing is uploaded — it is a validate-only request — and the result reads like “36 of 36 clicks confirmed (100%)”. Pulse creates a small helper conversion action named Pulse click check in your Google Ads account for this; it never receives conversions.
New Audit check Forwarding configuration: it flags accounts without active conversion steps, since steps drive claim data per action, campaign reporting and the weekly S2S-vs-browser check.
The Missed ad conversions by campaign card now lists only conversions with a stored ad click (Google, Meta, LinkedIn, Microsoft or a paid medium); organic, business-profile, referral and newsletter traffic is excluded, and campaigns whose channel has no per-campaign claim are labelled as such.
What you get
Order-level proof from Google itself that your clicks are captured correctly — and a campaign table that only counts what advertising actually drove.
No action needed — everything keeps working as-is.
Pulse platform29 Aug 2026
Claimed vs Real ROAS — and missed conversions on one time axis
What is new
Channel cards now tell the full story in one row: claimed conversions and revenue (your mapped S2S action, reported by conversion date), Claimed ROAS, missed conversions and revenue (Pulse’s click-based count minus the claim — a lower bound, with the no-consent share shown inside), totals, Real ROAS and the ROAS adjustment: how much higher your true return is than what the platform reports, so you can set bidding targets accordingly.
The by-campaign card uses the same truth-minus-claim definition on the same conversion-date axis.
Channel cards are now split in two rows — Claimed by the platform on top, What Pulse adds below — and missed conversions are broken down into missed purchases and missed leads.
What you get
One consistent framework from cost to real return — directly usable for reporting and for setting platform ROAS targets.
No action needed — everything keeps working as-is.
Pulse platform28 Aug 2026
Missed conversions are now net of platform modeling
What is new
“Missed” now means exactly that: the conversions Pulse counted without marketing consent, minus the share the platform already covers through modeled conversions on your mapped S2S action. The by-campaign card shows claimed vs missed per campaign (with a “covered by modeling” mark where the platform’s estimates already account for everything), and the channel cards’ totals are claimed + missed — overlap-free by construction.
What you get
The gap you see is the gap that is real — no double counting between your recovered conversions and the platform’s own estimates.
No action needed — everything keeps working as-is.
Pulse platform28 Aug 2026
Google Ads: consent signal on server-side conversions
What is new
Server-side Google Ads conversion pings now carry the Consent Mode granted signal (gcs). Server conversions are consent-gated by design, so the signal states what was already true — and keeps the conversion action fully eligible for Google’s conversion modeling alongside your browser tags.
What you get
Consistent consent signalling across browser and server pings protects modeled-conversion coverage on server-enhanced actions.
No action needed — everything keeps working as-is.
Pulse platform28 Aug 2026
Shopify app: one-click install with full tracking parity
What is new
The Shopify integration now installs like an app should: one click, and the web pixel activates automatically. It captures the same signal set as the WordPress connector — channel and campaign category before any consent choice, and click IDs plus the multi-touch store only with marketing consent.
Shopify stores now feed the missed-conversions cards and the cookie-extender drill-down, just like WordPress shops.
What you get
Shopify merchants get the complete Pulse picture — consented, missed and long-window — without any theme or code changes.
No action needed — everything keeps working as-is.
Pulse platform25 Aug 2026
Cookie extender drill-down
What is new
The click-age buckets on the Overview are now clickable: each opens a breakdown of its conversions per ad channel and campaign, with conversion counts and revenue — so you can see exactly which campaigns the extended attribution window recovers.
What you get
The > 90-day bucket is no longer just a number: it names the campaigns no ad platform can still credit.
No action needed — everything keeps working as-is.
Pulse platform25 Aug 2026
Technical SEO tab (Ahrefs Site Audit)
What is new
New Technical SEO tab on the SEO page, next to Focus pages: your site’s Ahrefs Site Audit health score with trend, plus the full error, warning and notice lists — every issue with a plain-language explanation and its week-over-week change.
Error and warning issues are clickable: each expands to show the affected URLs (top 100 by organic traffic, with HTTP status), refreshed weekly.
What you get
Technical SEO regressions surface right next to your organic performance — without leaving Pulse.
No action needed — everything keeps working as-is.
Pulse platform24 Aug 2026
Forms keep your scroll position
What is new
Saving a setting no longer jumps the page back to the top: every form on the platform now restores your scroll position after saving — change five settings in a row without scrolling back down once.
No action needed — everything keeps working as-is.
Pulse platform24 Aug 2026
Developer guide expanded (custom integrations)
What is new
The webhook developer guide now documents pulse_ids (the first/last-touch store that powers multi-touch and long-window attribution — with an effectively unlimited window for server-side integrations), phone_hash for better match quality, the rate limit (120 events/min with safe retries), and an explicit warning to capture channel and campaign fields before any consent flow.
What you get
Custom and SaaS integrations built from the guide now get the full Pulse feature set from day one.
No action needed — everything keeps working as-is.
Pulse platform20 Aug 2026
Health Score: consent-capture guard, connector version check & SEO checks
What is new
New audit check Consent-capture parity: the channel-signal rate of consent-declining conversions is compared against consenting ones. A large gap means the cookie banner or CDN is silently blocking pre-consent capture — exactly what the 1.2.16/1.2.17 connector releases fix.
The audit now flags shops running an outdated connector, using the version telemetry every event carries.
New SEO category: Search Console sync freshness, keyword→conversion matcher output and the GA4 organic landing data it depends on — all volume-aware, so low-traffic sites are marked "not applicable" instead of failing.
What you get
Tracking gaps and stale SEO data surface in the Health Score before they quietly distort a week of reporting.
No action needed — everything keeps working as-is.
Connector (WooCommerce)v1.2.1720 Aug 2026
Landing capture, part two: survives consent tools that delete cookies
What is new
Some consent banners actively delete unrecognised cookies after a visitor declines. The landing-capture data (channel category and UTM campaign fields, never identifiers) now also travels through browser storage and is handed over at submit time — with the order at checkout and with every lead form.
What you get
Channel and campaign attribution for consent-declining visitors now works on every shop, including the strictest cookie banners.
Action: Update the connector to 1.2.17 in wp-admin.
Connector (WooCommerce)v1.2.1620 Aug 2026
Landing capture: campaign data survives consent walls, ad blockers and CDN caching
What is new
A tiny first-party snippet records the ad channel (category only) and the UTM campaign fields at landing — before any consent tool, ad blocker or CDN cache can get in the way. No identifiers are ever stored without consent.
Leads now carry the same channel and campaign signal as orders, and all marketing identifiers on leads are gated on consent (parity with the order path).
What you get
Missed conversions keep their channel and campaign, so your dashboards show the true size of what standard tracking loses — on every shop, whatever cookie banner it runs.
Action: Update the connector to 1.2.16 in wp-admin.
Campaign reviews: standardised check-ins for new or changed campaigns at week 2, 4, 6 and 8 — the last two weeks, the total so far and the change versus the two weeks before, judged against benchmarks with a one-line verdict and a creative-by-creative comparison. New campaigns are picked up automatically; add any campaign manually (e.g. after a budget or creative change).
Focus pages (SEO → Focus pages): your best Google Ads search terms compared with their organic presence. Terms you pay for but do not rank for become your focus-page list, with a potential score, the currently ranking page and an editable label (generic / competitor / brand).
Video retention and carousel depth on the Weekly: quartile retention and completion per video (Meta and LinkedIn), swipe depth and card CTR for LinkedIn carousels, auto-play depth for Meta carousels — each against a benchmark for its own channel and format.
Awareness benchmarks: awareness campaigns are now judged against awareness benchmarks (lower CTR expectations than performance), adjustable per client. Hover any complex column header for its definition.
SEO page reorganised into Overview, Keywords → conversions and Focus pages.
What you get
Know within two weeks whether a new campaign works, see which creative carries it, and turn your paid search data into an SEO roadmap.
No action needed — everything keeps working as-is.
Pulse platform19 Aug 2026
Faster, and built to stay fast
What is new
Search Console data is pre-aggregated daily, so the SEO and Weekly pages stay instant even with millions of rows of history.
Heavy background work (historical backfills, keyword matching) now runs through a single low-priority queue, one job at a time, so it never competes with the dashboards.
Automatic guarding: slow queries are reported daily and long-running requests are cut off so one heavy page can never block others.
What you get
More data, more clients, same speed — by design rather than by luck.
No action needed — everything keeps working as-is.
Pulse platform18 Aug 2026
SEO in Pulse: Search Console + keyword→conversion attribution
What is new
New SEO page: organic clicks, impressions, CTR and average position from Google Search Console — trend chart, top queries, top landing pages, device and country splits, with a period picker and up to 16 months of history.
The Keyword Matcher now lives inside Pulse: Search Console keywords are matched to your GA4 organic conversions per landing page (date + page + device + country, with fallbacks) and conversions are attributed by position-weighted click share — so you see which keywords actually convert, not just which ones get clicks.
Conversions follow your conversion-step mapping (purchases for shops, registrations and trials for SaaS), the same definition used everywhere else in Pulse. A match-quality panel shows how solid the attribution is.
The Weekly gets an SEO section: organic KPIs week-over-week, keyword risers and fallers, and attributed organic conversions.
What you get
Search Console tells you what people search; GA4 tells you what converts. Pulse now connects the two — per keyword, per landing page, daily, with history.
Action: Add pulse-ga4-reader@tjda-s2s-conversions.iam.gserviceaccount.com as a (restricted) user on your Search Console property and enter the property under Settings → Google Analytics 4 → Search Console. Data appears the next morning.
Connector (WooCommerce)v1.2.1517 Aug 2026
UTM capture restored + version telemetry
What is new
Restores the UTM campaign capture (source/medium/campaign/content/term) that was unintentionally missing from 1.2.14 — the 400-day first-party UTM cookie and its Order Attribution fallback are back in every event.
The connector now reports its version with each event, so Pulse can show which version each shop runs.
What you get
Campaign attribution for missed conversions works again as it did in 1.2.13; the platform can flag outdated connectors automatically.
Action: Update to 1.2.15 if you installed 1.2.14 — UTM data is not captured on 1.2.14.
Pulse platform14 Aug 2026
Creative formats & per-format CTR benchmarks
What is new
The Meta and LinkedIn syncs now store the real ad format per creative (Carousel, Video, Image, Single image, Document …).
The Awareness creatives table on the Weekly judges each creative against a benchmark for its own channel and format, and every table column is click-to-sort.
What you get
A carousel is no longer measured against a video benchmark — above or below the line finally means something per format.
No action needed — everything keeps working as-is.
Pulse platform13 Aug 2026
Funnel buckets on the Weekly
What is new
The campaign table now splits into Performance, Branded and Awareness — grouped automatically by campaign naming, each with its own subtotal.
The Awareness section reports reach metrics: impressions and CTR against a per-platform benchmark (adjustable per client), with a clear above/below indicator.
What you get
Judge every funnel layer on the metrics that fit it — conversions for performance, visibility for awareness.
No action needed — everything keeps working as-is.
S2S Conversions (free)v1.0.2713 Aug 2026
WordPress 7.1 ready
What is new
Compatibility verified and tested up to WordPress 7.1 (release August 19).
What you get
Update WordPress on day one without waiting for the plugin.
No action needed — everything keeps working as-is.
Connector (WooCommerce)v1.2.1412 Aug 2026
Subdomain cookie support & housekeeping
What is new
New optional Cookie domain setting: set it to .example.com to share Pulse cookies across subdomains. Empty keeps the current host-only behaviour.
Fresh installs now default to the pulse.tj-da.com endpoint.
What you get
Shops with a separate app or checkout subdomain keep full attribution across hosts.
No action needed — everything keeps working as-is.
Pulse platform12 Aug 2026
Weekly report in Slack
What is new
Every Monday morning Pulse can post a weekly report to your Slack: spend, clicks and claimed conversions per channel, the conversion funnel, campaign highlights (top spend, risers, drops, new and stopped campaigns) and concrete action points.
Google campaign lines show primary and secondary conversions separately.
What you get
Your week in one glance, in the channel where your team already works — no login needed.
Action: Optional — want this in your Slack? Ask us to connect a channel.
Pulse platform12 Aug 2026
All conversions in the Weekly campaign table
What is new
The campaign table on the Weekly page has an extra All conv. column: Google campaigns show conversions including secondary actions, next to the primary number.
What you get
The same primary-versus-all split you know from the Google Ads interface, now in Pulse.
No action needed — everything keeps working as-is.
Pulse platform11 Aug 2026
Offline conversions
What is new
New API route: send event_type: "offline_conversion" for phone orders, CRM deals or in-store sales.
No click ID at hand? Pulse recovers the Google click from the customer’s history via email_hash (up to 90 days back).
Supports conversion_time so the conversion lands on the day it actually happened.
What you get
Sales that never touched your website finally count in Google Ads — attributed to the ad click that caused them.
Action: Optional — map a conversion step matching event type offline_conversion and pick a dedicated Google Ads action. See the developer guide for the payload.
Pulse platform11 Aug 2026
Per-step Google forwarding with auto-synced labels
What is new
Conversion steps now drive Google Ads forwarding directly: the action you pick per step is the action that gets the conversion, via the gtag route with automatically synced labels.
Account-level settings remain as fallback for unmapped events.
What you get
Every mapped step reports to its own Google Ads conversion action — deduplication with your website tag stays intact.
No action needed — everything keeps working as-is.
Pulse platform10 Aug 2026
Claim vs truth per conversion
What is new
Per-action conversion data is now synced for Google Ads, LinkedIn and Meta.
The Weekly page compares, per conversion step and per platform, what the ad platform claims against what Pulse measured server-side — including the fair channel-signal denominator.
Two new analysis endpoints on the Pulse MCP connector expose the same data to AI assistants.
What you get
See exactly where platforms over-claim — per conversion, per channel, with the same definition on both sides.
No action needed — everything keeps working as-is.
Pulse platform10 Aug 2026
Weekly analysis page
What is new
New Weekly page: ISO-week view with week-over-week KPIs for spend, clicks, claimed and server-side conversions.
Channel table, conversion funnel and a campaign table with deltas per campaign.
What you get
One page that answers “how was last week” — the same definitions the Slack report uses.
No action needed — everything keeps working as-is.
Pulse platform6 Aug 2026
Data Processing Agreement v3.1
What is new
Updated DPA: channel hints and UTM parameters documented as always-processed measurement data (legitimate interest, no personal identifiers); click IDs and Pulse IDs remain strictly consent-based.
Signing in now lands on the Overview instead of Settings.
What you get
The legal paperwork matches exactly what the software does — ready for your privacy officer.
Action: Review and accept the updated DPA on your next sign-in.
Connector (WooCommerce)v1.2.135 Aug 2026
Channel hints & UTM capture
What is new
Every event now carries privacy-friendly channel hints (which ad platform touched this visitor) and UTM campaign parameters — also without marketing consent, since no personal identifiers are involved.
What you get
Conversions without consent become measurable and attributable per campaign instead of disappearing entirely.
No action needed — everything keeps working as-is.
Attribution cookies are now set through three layers (server cookie, vendor JavaScript, fallback) so aggressive CDN caching — such as Cloudflare cache-everything — can no longer strip them.
Cookie lifetime extended to 400 days (the browser maximum).
What you get
Attribution survives CDN setups and returns customers up to 13 months later still get credited to the original ad click.
No action needed — everything keeps working as-is.
Pulse platform21 Jul 2026
Clean server-side truth
What is new
Browser-fired uplift events are registered separately from server events; every KPI, funnel and list strictly counts server-side data.
What you get
Dashboards can never be inflated by browser tags — the server-versus-web uplift becomes measurable instead.
No action needed — everything keeps working as-is.
Pulse platform20 Jul 2026
Developer webhook guide
What is new
Per-client implementation guide, generated from your configured conversion steps: authentication, payload reference, click-ID persistence and a full example per event.
What you get
Your developers integrate in hours, not days — with a guide that always matches your setup.
No action needed — everything keeps working as-is.
S2S Conversions (free)v1.0.2716 Jun 2026
Pulse alignment
What is new
Upgrade references now point to TJDA Pulse (pulse.tj-da.com); legacy Pro-plugin notice removed.
What you get
One clear upgrade path from the free plugin to the full platform.
No action needed — everything keeps working as-is.
S2S Conversions (free)v1.0.1715 Jun 2026
Forms, sessions & consent tools
What is new
Form tracking for Contact Form 7, WPForms, Gravity Forms and Elementor Pro Forms.
Session ID tracking for correct channel attribution in GA4 — conversions land on Google Ads, Meta or Organic instead of Unassigned.
Support for all 10 major cookie consent tools, a debug log viewer, and richer purchase payloads (items, shipping, tax).
What you get
Lead tracking on any form stack, with attribution that survives payment redirects.
No action needed — everything keeps working as-is.
Pulse platform13 Jun 2026
GA4 sync & Overview dashboard
What is new
Daily GA4 sync (sessions, events, channels, countries, devices) next to the ad-platform data.
Overview dashboard with conversion funnel and KPIs; health dashboard for monitoring.
What you get
Analytics and ads side by side, verified against what your server actually measured.
No action needed — everything keeps working as-is.
S2S Conversions (free)v1.0.012 Jun 2026
Initial release on WordPress.org
What is new
First public release: GA4 server-side purchase tracking via the Measurement Protocol.
What you get
Server-side measurement for every WooCommerce shop — free, from the official plugin directory.
No action needed — everything keeps working as-is.
Pulse platform11 Jun 2026
TJDA Pulse launch
What is new
Server-side event pipeline: webhook in, forwarding out to GA4, Google Ads, Meta and LinkedIn.
Daily ad-platform sync (spend, clicks, conversions, search terms) as the claim layer.
WooCommerce connector, consent-aware by design.
What you get
The foundation: conversions measured where they cannot be blocked — on the server.
No action needed — everything keeps working as-is.
Pulse platform5 Jun 2026
S2S era: licensing platform & first clients
What is new
License portal live for the paid S2S plugin; client onboarding begins — the first shops connect in the same weeks.
The multi-shop connector line (1.2.x) starts rolling out.
What you get
From a single custom build to a product multiple shops run in production.
No action needed — everything keeps working as-is.
Pulse platform15 Jul 2025
The origin: custom S2S plugin
What is new
First server-side conversion measured with the custom-built predecessor plugin — direct per-shop forwarding to Google and GA4, the approach that became TJDA Pulse.
What you get
Every feature above stands on this idea: measure conversions where they cannot be blocked.
No action needed — everything keeps working as-is.
Questions about a release? Reach out via your usual TJDA contact. · pulse.tj-da.com