@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.October 2026 · @gravity-ai/react 1.3.0, @gravity-ai/ui 0.3.0, @gravity-ai/react-native 0.2.0
Ads can now include product images. When an ad has an image, the response includes Using the API directly? Read
brandImage and the SDK shows an image card: the photo on one side, the copy on the other. Ads without an image stay as the normal text card. Gravity picks the layout server-side, so there’s nothing to configure.brandImage and design your own card. To get a test image ad on demand, send "testAd": true, "alwaysReturn": true, "testAdFormat": "image".Related docs: Image adsJuly 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 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.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.

