All changes

Tracking & Tags: your ad and analytics tags, managed from the console

Add GA4, Google Tag Manager, Google Ads, Meta and a dozen other tags in the console, attach them to an app, and the SDK installs them and reports sign-ups, checkouts and purchases for you - plus the funnel in between. It ships in @buildbase/sdk 0.0.68.

Added
7
  • TrackingTracking & Tags, under Settings. Add a tag once - GA4, Google Tag Manager, Google Ads, Meta, TikTok, LinkedIn, X, Reddit, Bing, Clarity, Hotjar, PostHog, Plausible and more - and attach it to the apps that should load it. Your marketing site and your product can carry different tags without either of them naming an id in code.
  • TrackingA Connect your app panel on the same screen. Pick an app and it shows the exact code to add - the install line, the provider or the standalone tracker for a marketing site, and the consent call - with your organization and client ids already filled in, which tags will load there, and how to report sales from your servers.
  • TrackingConversions are reported for you. Pass `tracking={{}}` to the SDK provider and sign-ups, logins, checkouts and purchases reach every attached tag, with the ad click the visitor arrived on carried all the way through Stripe. A purchase reports what was actually charged, after any promotion code, with no success page to build.
  • TrackingThe funnel between sign-up and payment. The plan picker, the settings screens, feature and quota limits and the cancel flow now report each step - who opened the plan picker and closed it, who chose a plan and backed out of Stripe, who keeps hitting a limit - and every event says which workspace and plan it belongs to. These go to your analytics tools, never to an ad network unless you ask.
  • TrackingConsent is respected by default. Nothing but consent-aware Google tags loads until your cookie banner answers, and that answer carries over to the hosted sign-in pages. If you already have a lawful basis to measure, you can say so and everything loads immediately.
  • TrackingSales the browser never saw are reported from our servers. A buyer who closes the tab before the return page loads reaches GA4 and Meta directly, matched to the browser event so nothing counts twice. Refunds go to GA4, and renewals are sent once you switch them on. Every send, and every deliberate skip, is listed in the console.
  • BillingCheck Stripe setup, on the payment credentials screen. One click reads your own Stripe account and tells you, line by line, what is right and what is not: whether your keys work and which mode they are in, whether the webhook endpoint exists, is on, and sends every event we need, whether a second endpoint is sending everything twice, and whether the events Stripe sent actually reached us. Where it can, it fixes the endpoint for you - creating it with the signing secret saved, adding missing events, or replacing duplicates - after showing exactly what will change.
Fixed
8
  • TrackingA visitor who clicked two different ads was remembered as a mix of both: the first ad's click id with the second ad's campaign, so Google Ads and Google Analytics credited different clicks. Each visit is now remembered whole, and a newer ad click replaces an older one. Fixed in @buildbase/sdk 0.0.68.
  • TrackingWhen a free trial turned into a paying subscription, the first charge was treated like a renewal, so Google Analytics and Meta were never told about the sale unless renewals were switched on. It is now reported as the purchase it is, and the payment.succeeded webhook marks it with trialConverted.
  • WebhooksEach payment sent the payment.succeeded webhook twice, because Stripe reports a paid invoice as two events. It is now sent once per invoice, so a backend reporting its own conversions no longer counts every sale twice.
  • TrackingOn Safari, the step where a visitor leaves for the sign-in pages or for Stripe checkout was recorded but never reached Google Analytics, so those funnels looked like everyone dropped out there. Fixed in @buildbase/sdk 0.0.67.
  • BillingWhen two organizations were connected to the same Stripe account, a payment event could be processed for only one of them, so the other never saw the new subscription. Each organization now processes its own copy.
  • SDKChoosing a plan on a pricing page while signed in did nothing; it now opens the plan picker. Pages with a pricing table no longer briefly show "no plans", and paying customers no longer see free-plan content flash before their subscription loads.
  • BillingThe payment setup page listed 8 Stripe events to subscribe to, and checkout.session.completed was not one of them. An endpoint set up from that list recorded subscriptions but never completed a checkout on our side: no credit-pack credits, no subscription.created webhook, no server-side conversion. The page now lists all 14 events we act on, with what stops working without each one.
  • WorkspacesNew users get their first workspace again in organizations set to create it for them. With workspaces set to be created on sign-up and users not allowed to make their own, a new user was asked the question meant for them and got an empty workspace list instead of the workspace the setting promised.

Use what shipped this week

Everything in this release is already in the console and the SDK.

7-day free trialNo credit card requiredCancel anytime