@gravity-ai/api / @gravity-ai/react) and the Gravity pixel (gr-pix.js). Entries are publisher-facing — they describe behavior and integration changes, not internal refactors. Latest first.
Upgrading is always a drop-in replacement —
npm install @gravity-ai/api@latest and redeploy. We don’t ship breaking changes to the SDK surface on minor/patch bumps.July 19, 2026 · @gravity-ai/react
Banner variant no longer truncates. The Related docs: Show ads
banner variant now lays the ad out over two lines — brand row on top, wrapped adText below — instead of crushing the title and hard-truncating the copy mid-word. 1.1.8 (July 16) was the first pass at this: it ellipsized the title and stopped the label/CTA from overlapping in narrow containers.Nothing to change in your code — upgrade and the banner just renders correctly at narrow widths.July 6, 2026 · @gravity-ai/ui
Server-delivered ad rendering. New package: Optional:
@gravity-ai/ui renders a renderer_spec — a declarative layout the engine sends with the ad — through a thin client runtime. Layout changes then ship from Gravity’s side without you redeploying, which is what makes creative/format experiments possible on non-React and server-rendered surfaces.@gravity-ai/react’s GravityAd stays the simplest path if you’re on React. Full guide: Server-rendered ads.May 2026 · @gravity-ai/react + @gravity-ai/api
Capture leads inline. Advertisers can now run lead-form ad units — the user fills in a short form (email, phone, a question or two) right in your chat UI instead of clicking through. Display modes (Related docs: Lead-form ads · Show ads
GravityAd renders it automatically whenever the served ad carries a leadForm envelope; the engine stores the lead and fires a conversion so attribution and CPA billing just work.Two things to add to your render call so lead forms work: sessionId (must match the ad request) and apiKey. The same GravityAd keeps rendering normal click-through ads when there’s no form, so this is a one-time, backwards-compatible change.inline, modal-center, modal-bottom-right), identity pre-fill, and full styling hooks are covered in the new Lead-form ads guide. The lower-level GravityLeadFormAd component is also exported for direct use.May 1, 2026 · @gravity-ai/api
New placement types. Related docs: Placements
search_result, top_page, bottom_page, left_page, right_page, and center_page are now part of the Placement type, so TypeScript stops rejecting them when you request page-level or search surfaces. Same release added the lead-form ad unit types.April 22, 2026 · @gravity-ai/api
Pixel and SDK now auto-wire end to end. If both are loaded on the page, the SDK pulls four values off Related docs: Pixel · Request ads · Experiments
window.gravityPixel automatically on every gravityContext() call — no glue code.Caller-supplied values always win, so existing code that explicitly passes
sessionId keeps working unchanged.What to do: upgrade to 1.1.7, confirm the pixel is installed (install guide), optionally drop your own sessionId plumbing. If you’re not running experiments yet, this is a good checkpoint to start — see Experiments.March 10, 2026 · @gravity-ai/api + @gravity-ai/react
PII auto-hashing for attribution. The SDK now hashes emails/phone numbers client-side (SHA-256, normalized) before they reach the wire, and the pixel’s
gruid is surfaced safely through the SDK so dashboards can attribute conversions without publishers having to think about privacy plumbing.No integration changes required — this shipped as internal hardening. Advertiser-side match rates go up, you don’t have to do anything.February 22, 2026 · @gravity-ai/api + @gravity-ai/react
Ad composition experimentation framework. The SDK and engine now support A/B testing different ad compositions (which props the server sends, which layout the client renders) on a per-request basis, controlled from the Gravity dashboard.If you want to run UI variants without shipping code — try different CTA copy, card vs. pill layouts, inline vs. below-response placements — this is the unlock. Start at Experiments.
January 2026
Bucket of bug fixes and polish:
- Fixed hardcoded
status: 200ingravityAdssuccess path - Fixed
setAdhover cleanup and prop-spread order ingravityContext - Fixed Windows URL injection and a timeout
0falsy-check bug - Swallowed
execFileerrors inopenUrlto avoid crashing host apps - Deprecated the legacy
Client+AdParamsAPI in favor ofGravity+gravityContext
1.1.0+ you’ve got these already. If you’re still on 1.0.x, upgrade when convenient — none of these are security-critical but the DX is materially better.Pre-January 2026
Pre-
1.1.x history is available as version tarballs on npm: @gravity-ai/api versions · @gravity-ai/react versions. The short version: 0.0.x → 0.1.x → 1.0.0 covered the initial public API, ad card + impression logic, the publisher playground, and the first round of @gravity-ai/react templates. If you’re still pinned anywhere in this range, upgrade straight to latest — the API surface is stable across the 1.x line.How versions ship
@gravity-ai/apiand@gravity-ai/reactare versioned independently. Most publishers only need@gravity-ai/api;@gravity-ai/reactis a thin wrapper with pre-built components.lateston npm always reflects the newest stable release. We do not ship breaking changes to published APIs on1.xminor/patch bumps.- The pixel (
gr-pix.js) is served fromhttps://code.trygravity.ai/gr-pix.jsand updates in place — you don’t pin a version, you always get the current build. Changes are backwards-compatible.
Questions or issues?
- Integration help — see Integration guide or email support@trygravity.ai.
- Experiment setup — see Experiments.
- Going live checklist — see Going live.

