Skip to main content
What’s new in Gravity: the dashboard, the APIs, the SDKs, and the Gravity pixel. Each entry says what changed and whether you need to do anything. The newest entry is first.
To upgrade an SDK, install the latest version of the package (for example npm install @gravity-ai/api@latest) and deploy your app again. Minor and patch versions in the 1.x line keep the same public API.
October 28, 2026 · Advertisers and publishers
More of the dashboard is available with your API key. The Platform API and the dashboard MCP server now cover more advertiser and publisher dashboard tasks. You can manage campaigns, read reports, and use account features with your account API key. A few tasks, such as adding payment details and approving connections, still need the browser.Related docs: Advertiser dashboard MCP server · Publisher dashboard MCP server
October 28, 2026 · Publishers
GET /publisher-dashboard/stats uses the dashboard’s earnings calculation. The endpoint, and the publisher_get_stats MCP tool that calls it, now compute earnings the same way as the Overview and Earnings pages. If your account has a monthly floor, qualifying-request terms, or launch earnings, the numbers from this endpoint can change to match the dashboard. This changes reported earnings only, not payouts.Related docs: GET /publisher-dashboard/stats
October 2026 · Publishers
Overview and Earnings show Network and Index performance together. If your account has Index activity, you can pick which source to include. Placement, device, and geography breakdowns still show Network results only.
October 2026 · Publishers
Block advertiser domains in Publisher Settings. Add domains one at a time or paste a list, then save. Blocking a domain also blocks its subdomains. Blocks reduce the competition for your placements and can lower your revenue. Changes apply after the next refresh of the ad server cache, so they can take a few minutes.
October 2026 · @gravity-ai/react 1.3.0, @gravity-ai/ui 0.3.0, @gravity-ai/react-native 0.2.0
Ads can show a product image. When an ad has an image, the response includes the brandImage field. The SDK then shows an image card, with the image on one side and the text on the other side. An ad without an image shows as the usual text card. Gravity selects the layout on the server, so you do not configure it.
If you call the API directly, read brandImage and make your own card. To get a test image ad, send "testAd": true, "alwaysReturn": true, "testAdFormat": "image".Related docs: Image ads
October 20, 2026 · Advertisers
Choose, reorder, and save the columns you use. In Ads Manager, the Campaigns, Ad groups, and Ads tables now let you pick columns, reorder them, and save column sets. Campaigns and Ad groups can also show metrics for the events you track, and CSV exports use the same columns. Tracked-event columns count attributed events, not every raw pixel event.
October 20, 2026 · Advertisers
CPA campaigns need a matching server conversion event before launch. A live Conversions API event or a verified test event for the selected action unlocks it, so you can confirm tracking before you spend. Pixel activity alone doesn’t unlock the action. You can still prepare a draft before the event arrives.Related docs: Server-side conversions
October 16, 2026 · Advertisers
Every CPA campaign has one monthly cap. The campaign builder, tables, and details show the same cap. You can set a cap or leave the campaign uncapped, and the dashboard no longer asks for a separate daily budget.
October 14, 2026 · Advertisers
Events Manager guides you through tracking setup. Choose your website or mobile app, follow the installation steps, then test that customer actions reach Gravity. Shopify setup now separates hosted stores from custom storefronts.
October 13, 2026 · Advertisers
See Results, cost per result, and revenue for each ad group. The Ad groups table in Ads Manager and the advertiser API both report them. You can sort the metrics and export them. Conversions without an ad group, such as view-through conversions, still count only at the campaign level.Related docs: GET /advertiser-dashboard/ad-group-metrics
October 3, 2026 · @gravity-ai/api
More time for an ad response. gravityAds() now waits up to 4 seconds for an ad by default, up from 3 seconds. To change it, set timeoutMs.
Related docs: JavaScript SDK
September 22, 2026 · @gravity-ai/react
Impression tracking survives re-renders. Ad cards keep their impression tracking active when your chat UI re-renders during a streamed response. Before this fix, an impression could arrive late or not at all. An ad still needs to be 50% visible to count an impression.
July 19, 2026 · @gravity-ai/react
The banner variant does not cut the text. The banner variant now shows the ad on two lines: the brand row on top, and the full adText below it. Before this change, the title had too little space and the text stopped in the middle of a word. Version 1.1.8 (July 16) was the first fix: it shortened a long title with an ellipsis and stopped the label and the CTA from overlapping in narrow containers.You do not have to change your code. Upgrade, and the banner shows correctly at narrow widths.
Related docs: Show ads
July 6, 2026 · @gravity-ai/ui
Ad layouts from the server. The new package @gravity-ai/ui shows a renderer_spec. A renderer_spec is a layout description that the engine sends with the ad. Gravity can change the layout without a new deployment of your app. This lets Gravity test designs on surfaces that do not use React, and on pages that your server renders.
This package is optional. If your app uses React, GravityAd from @gravity-ai/react is the easiest option. For the full guide, see Server-rendered ads.
May 1, 2026 · @gravity-ai/api
New placement types. The Placement type now includes search_result, top_page, bottom_page, left_page, right_page, and center_page. TypeScript now accepts these values when you request ads for page surfaces or search surfaces.
Related docs: Placements
April 22, 2026 · @gravity-ai/api
The SDK reads the pixel values automatically. When the page loads both the pixel and the SDK, each gravityContext() call reads four values from window.gravityPixel. You do not have to write code to connect them.A value that you send yourself always has priority over the pixel value. Code that sends its own sessionId continues to work with no change.What to do: upgrade to 1.1.7 and make sure that the pixel is installed (install guide). You can then remove your own sessionId code if you want. For design tests, see Experiments.
Related docs: Pixel · Request ads · Experiments
March 10, 2026 · @gravity-ai/api + @gravity-ai/react
The SDK hashes personal data for attribution. The SDK now hashes email addresses and phone numbers in the client (normalized, then SHA-256) before it sends them. The SDK also forwards the pixel gruid, so Gravity can attribute conversions. The raw values do not leave the client.You do not have to change your integration. This change lets more conversions match on the advertiser side.
February 22, 2026 · @gravity-ai/api + @gravity-ai/react
Tests of ad designs. The SDK and the engine can now test different ad designs for each request. A design is the set of fields that the server sends and the layout that the client shows. The Gravity team controls these tests.With this change, Gravity can test design variants (for example, different CTA text, or a card compared to a pill layout) and you do not have to deploy new code. For more information, see Experiments.
January 2026
These versions contain bug fixes and small improvements:
  • Fixed a hardcoded status: 200 in the gravityAds success path.
  • Fixed the setAd hover cleanup and the order of the spread props in gravityContext.
  • Fixed a URL injection problem on Windows, and a bug where a timeout of 0 was read as false.
  • openUrl now ignores execFile errors, so that the host app does not crash.
  • Deprecated the legacy Client and AdParams API. Use Gravity and gravityContext instead.
If you use 1.1.0 or later, you have these fixes. If you use 1.0.x, upgrade when you can. None of these fixes is a security fix.
Pre-January 2026
The history before 1.1.x is on npm: @gravity-ai/api versions · @gravity-ai/react versions. The versions 0.0.x → 0.1.x → 1.0.0 added the first public API, the ad card, the impression logic, the publisher playground, and the first @gravity-ai/react templates. If you use a version in this range, upgrade directly to latest.

How versions ship

  • Each package (@gravity-ai/api, @gravity-ai/react, @gravity-ai/ui, @gravity-ai/react-native) has its own version number. Most platforms need @gravity-ai/api on the server. @gravity-ai/react adds ready-made React components.
  • The latest tag on npm always points to the newest stable release.
  • Gravity serves the pixel (gr-pix.js) from https://code.trygravity.com/gr-pix.js and updates it in place. You do not select a pixel version. You always get the current build.

Get help