All resources

· 22 min read

How to Track ChatGPT Ad Conversions: Pixel, API & Attribution (2026)

Set up the OpenAI Pixel and Conversions API, dedupe events, read view-through windows, and fix Event Quality Score. Lapis Wayfinder ties it to confirmed sales.

Lapis, the YC-backed #1 AI ad generator rated 4.9/5 on G2, uses AI agents to create, launch, and optimize ads on ChatGPT, Google, Meta, and LinkedIn.

How Does ChatGPT Ads Conversion Tracking Work?

ChatGPT Ads conversion tracking connects an action on your site or server to an eligible ad click or impression through a data source you create in Ads Manager. Three objects do the work: a data source (identified by a Pixel ID) that receives events, a conversion event setting that defines which event counts and over which click window, and the campaign that the setting is attached to.

According to OpenAI's Conversion Measurement guide, a conversion is reported when OpenAI receives the event from a connected data source, the event matches a conversion configured for the campaign, it falls inside the attribution window, and OpenAI can connect it to the ad using the click reference, advanced matching, or modeled measurement where available.

The click reference is the piece most teams miss. When someone clicks your ad, OpenAI appends oppref to the landing page URL. The Pixel reads it, stores it in a first-party __oppref cookie, and attaches it to later events, so a buyer who reads three pages and converts the next afternoon still connects to the click. Server events need you to pass that value yourself.

MethodRuns inBest forCaptures opprefDedupe field
OpenAI PixelBrowser (JavaScript)Page views, product views, carts, checkouts, leads, purchasesYes, automaticallyevent_id
Conversions APIYour serverConfirmed orders, qualified leads, phone and offline sales, app installsNo, you pass itid
Image tagBrowser, no JavaScriptPage-load conversions and a no-script fallbackNo, you pass itevent_id
Partner integrationsShopify, HubSpot, CDPs, attribution partnersTeams that already route conversions through those systemsSet by the integrationSet by the integration
GA4 data source (beta)Google Analytics 4Comparing attribution between Ads Manager and GA4Not applicableNot applicable

How Do You Install the OpenAI Pixel?

Create a Pixel ID in the Conversions tab of Ads Manager, paste OpenAI's snippet near the top of the <head> on every page you measure, and call oaiq("measure", ...) when a conversion happens. The snippet below matches OpenAI's Measurement Pixel documentation as of October 23, 2026.

Step 1: Create the data source

In Ads Manager, open Conversions, go to Data Sources, select Create, and copy the Pixel ID. API users create the same source with POST https://api.ads.openai.com/v1/conversions/pixels and client_type: "web", which returns a pixel_id for sending events and an id for building conversion event settings (Conversion Tracking docs). Reuse one data source per website so browser and server events share a Pixel ID.

Step 2: Paste the snippet

<script>
  (function (w, d, s, u) {
    if (w.oaiq) return;
    var q = function () {
      q.q.push(arguments);
    };
    q.q = [];
    w.oaiq = q;
    var js = d.createElement(s);
    js.async = true;
    js.src = u;
    var f = d.getElementsByTagName(s)[0];
    f.parentNode.insertBefore(js, f);
  })(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js");

  oaiq("init", {
    pixelId: "<YOUR-PIXEL-ID>",
  });
</script>

The snippet defines a queue before the SDK file arrives, so measure calls that fire early are held and sent once the SDK loads. Add debug: true to the init object while testing to log SDK activity in the browser console, then remove it.

Step 3: Handle consent and security policy

  • Consent: call oaiq("consent", false) before init where consent is required, then oaiq("consent", true) once the visitor agrees. Events blocked while consent was off are not replayed.
  • Content Security Policy: add https://bzrcdn.openai.com to script-src, https://bzr.openai.com and https://bzrcdn.openai.com to connect-src, and https://bzr.openai.com to img-src.
  • Google Tag Manager: OpenAI's Measure Results guide confirms GTM deployment works as long as the tag loads on the right pages and does not block or reorder the init and event calls.

Platform notes

Shopify: install the official ChatGPT Ads for Shopify app instead of hand-editing theme code. Per OpenAI's Shopify setup guide, you connect your Ads Manager account, select or create the OpenAI Pixel for Shopify, and eligible commerce events flow to Ads Manager while your catalog syncs into a product feed. Keep a second pixel app from firing the same events with different IDs. Our Shopify playbook for ChatGPT ads covers the campaign side.

Next.js: load the snippet once from the root layout.tsx with next/script, then fire window.oaiq calls from client components on confirmation screens.

WordPress and form builders: inject the snippet sitewide through your header settings, then fire events on thank-you pages or inside the form plugin's success callback so a failed submission never records a lead.

Which Conversion Events Should You Send?

Send OpenAI's standard events wherever one fits, because only a standard event can become the optimization goal of a Conversions campaign. Each event carries a data object whose type matches the event, as listed in Supported Events.

EventData typeFire when
page_viewedcontentsA visitor lands on an important page
contents_viewedcontentsA visitor views a product, listing, or article
items_addedcontentsItems go into a cart, bundle, or selection
checkout_startedcontentsCheckout begins
order_createdcontentsA purchase completes (feeds Order Created Sales and ROAS)
lead_createdcustomer_actionA lead form submits or a visitor requests contact
registration_completedcustomer_actionAn account or event registration finishes
appointment_scheduledcustomer_actionA demo, meeting, or consultation is booked
trial_startedplan_enrollmentA free trial starts
subscription_createdplan_enrollmentA paid subscription starts
app_installed, app_openedcustomer_actionApp lifecycle events, Conversions API only
customcustomAn action no standard event describes

A purchase with a deduplication ID looks like this. Amounts are integers in the currency's minor unit, so 2599 means $25.99:

oaiq(
  "measure",
  "order_created",
  {
    type: "contents",
    amount: 2599,
    currency: "USD",
  },
  {
    event_id: "order_12345",
  }
);
  • Currency: required whenever amount is present, as a three-letter ISO 4217 code.
  • Item prices: contents[].amount is the price of one unit, and the event-level amount is the value of the whole event.
  • Custom events: pass custom_event_name (1 to 64 letters, numbers, underscores, or dashes, never a standard name). Custom events report fine but cannot be a Conversions campaign goal.
  • Funnel coverage: Event Quality Score checks for browsing, intermediate, and completed-outcome events, so send contents_viewed and checkout_started or lead_created alongside the final conversion.

How Do You Set Up the Conversions API?

Post events from your server to https://bzr.openai.com/v1/events?pid=<PIXEL-ID> with a Conversions API key as the bearer token. OpenAI calls the Conversions API "a more reliable tracking source than the pixel alone" in its Conversions API reference, which makes it the backbone for confirmed orders, qualified leads, and offline sales.

Provision the key in the Conversions tab of Ads Manager, or with POST /v1/conversions/api_keys using your Advertiser API key. The Conversions API key only authenticates event requests to bzr.openai.com; keep it on your server and out of page code.

curl -X POST "https://bzr.openai.com/v1/events?pid=${PIXEL_ID}" \
  -H "Authorization: Bearer ${OPENAI_CONVERSIONS_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      {
        "id": "order_12345",
        "type": "order_created",
        "timestamp_ms": 1773892800000,
        "oppref": "<OPPREF-FROM-LANDING-URL>",
        "action_source": "web",
        "source_url": "https://shop.example.com/checkout/confirmation",
        "data": {
          "type": "contents",
          "amount": 8900,
          "currency": "USD"
        }
      }
    ]
  }'

The rules that matter

  • Batches: up to 1,000 events per request. If one event fails validation, the whole batch fails.
  • Timestamps: timestamp_ms is the time the action happened, in Unix milliseconds, within the last 7 days and no more than 10 minutes in the future.
  • Action source: web, mobile_app, offline, physical_store, phone_call, email, or other. Web events require source_url; app events require mobile_app.
  • Click reference: the API does not capture oppref. Read it from the landing URL or the __oppref cookie and pass the original string unchanged.
  • User data: add a user object per event with SHA-256 hashes of normalized emails, phone numbers, external IDs, and names, raw city, region, postal code, and country, plus the real client IP address and user agent. For hybrid setups, forward the Pixel's __obref cookie as user.obref.
  • Testing: set "validate_only": true at the top level to validate without saving.
  • Speed: Event Quality Score flags server events that arrive more than one hour after the action, so stream confirmed conversions instead of uploading nightly.

How Do You Deduplicate Pixel and Conversions API Events?

Send the same Pixel ID, the same event name, and the same ID through both channels: the Pixel's event_id must equal the Conversions API id. OpenAI keeps the first event it receives for that key and ignores later copies, and for custom events the custom_event_name must match as well.

The cleanest pattern generates the ID on your server from the order or lead record, renders it into the confirmation page for the Pixel call, and sends the identical value in the server event. Retries reuse the same ID. Distinct actions get distinct IDs, because OpenAI's quality checks flag repeated callbacks and conversions piled onto one ad interaction.

1,000 events

maximum per Conversions API request, timestamped within the last 7 days

Source: OpenAI Conversions API reference, October 2026
ActionSend throughWhy
Page and product viewsPixelHigh volume, browser-native, carries oppref automatically
Add to cart, checkout startedPixel plus Conversions APIIntent signals worth protecting from blocked scripts
PurchasePixel plus Conversions API, shared IDRevenue event that feeds ROAS and oCPC or oCPM optimization
Lead or demo requestPixel plus Conversions API, shared IDPrimary goal for B2B campaigns, confirmed by the server
Subscription renewal or billing eventConversions APILives in payment webhooks, not the browser
Phone, in-store, or offline saleConversions API with the matching action_sourceNo browser session exists
App install or openConversions API with mobile_appThe Pixel does not support app lifecycle events, so they go server-side

When Should You Use the Image Tag or Multiple Pixel IDs?

Use the image tag for page-load conversions on pages that cannot run JavaScript, and use multiple Pixel IDs when one website measures conversions for more than one advertiser, brand, or partner. Both are documented options in OpenAI's developer docs and both share the Pixel's deduplication rules.

The image tag

The image tag is a hidden 1 by 1 image that sends one event each time the page loads. Wrap it in <noscript> to use it as a fallback for the JavaScript Pixel:

<noscript>
  <img
    src="https://bzr.openai.com/v1/sdk/events?pid=<PIXEL-ID>&event=page_viewed&data[type]=contents"
    width="1"
    height="1"
    style="display:none"
    alt=""
  />
</noscript>

Know its limits before you rely on it. It measures page loads only, sends one event per request with no batching, supports no user object, and does not capture oppref. OpenAI tells you to keep personal data, session IDs, customer identifiers, and order identifiers out of its query string, so use a random event_id when you pair it with a server event.

Multiple Pixel IDs

Load the SDK once, initialize each Pixel ID, and choose where each event goes. measure sends to every pixel initialized at the time of the call; measureSingle sends to one (Multiple Pixel IDs docs):

oaiq("init", { pixelId: "<PIXEL-ID-A>" });
oaiq("init", { pixelId: "<PIXEL-ID-B>" });

// Sent to both pixels
oaiq("measure", "page_viewed", { type: "contents" });

// Sent only to pixel A
oaiq("measureSingle", "<PIXEL-ID-A>", "order_created", {
  type: "contents",
  amount: 2599,
  currency: "USD",
});

A pixel initialized later does not receive earlier events, and on multi-pixel pages you always include the intended pixelId when updating user data.

How Do Attribution Windows and View-Through Conversions Work?

Ads Manager credits conversions on a 7, 14, or 30 day click-through window plus either no view-through window (0 Day) or a 1 day view-through window, using last-touch logic where a qualifying click always beats an impression. With 1 Day selected, eligible view-through conversions are included in the Conversions total, and you can split them out with the Click-through conversions and View-through conversions columns.

Per OpenAI's Measure Results guide, changing these windows affects reporting only. It does not change campaign optimization, bidding, or billing. Optimization follows the campaign you built: Conversions campaigns billed per impression (oCPM) optimize toward a broader set of conversions driven by views and clicks, while click-billed campaigns (oCPC) optimize toward conversions that follow a click, as described in Conversion-optimized Campaigns. Our ChatGPT Ads bidding guide explains when each billing option wins.

52.7%

of eligible one-day view-through conversions happened within an hour of the matched ad impression, in an early analysis of global campaigns optimized for deeper-funnel outcomes

Source: OpenAI Ads, More ways to measure ChatGPT Ads, October 5, 2026
SettingOptionsWhat it controls
Click-through window7, 14, or 30 daysWhich clicks earn credit in reports
View-through window0 Day (off) or 1 DayWhether impression-only conversions join the Conversions total
Time basisAd event time (default) or conversion timeWhich date a conversion lands on
Attribution modelLast touchClick beats impression; no multi-touch splitting
__oppref cookie30 days, reset on each new captureHow long the browser keeps the click reference

Conversions take 24 to 48 hours to appear, and totals keep moving as recent events process. For programmatic reporting, POST /v1/conversions/insights in the Insights API returns click-through and view-through goal conversions separately (its view window defaults to 1 day), plus optional attributed events that do not need to be campaign goals. Order Created Sales and Order Created ROAS come only from attributed order_created events.

How Do You Improve Event Quality Score and Match Rates?

Event Quality Score grades each Pixel or data source daily across seven complete calendar days; clear its warnings and your measurement and optimization run on cleaner signal. OpenAI's event quality guide describes the score as a health check on your setup, separate from campaign performance, and every warning maps to a fix you control.

WarningFix
Limited email or customer ID informationSend a hashed email or stable customer ID on every eligible conversion
Ad click information is missing or cannot be connectedPreserve oppref through redirects and pass it into server events
Conversions API events are delayedSend within one hour of the action and keep the original timestamp on retries
Conversion matches need reviewStop repeated callbacks and reuse one event ID per action
Many conversions linked to the same ad interactionCheck refresh and retry loops; give distinct actions distinct IDs
Limited additional matching informationAdd phone, name plus postal code and country, and the real client IP and user agent
Limited event types observedCover browsing, intermediate, and outcome events with standard event names
Limited Pixel and Conversions API activityConfirm both channels send accepted events to the intended data source
Limited activity for a configured conversion goalMatch the goal's event name to the event you actually send

Turn on automatic advanced matching

Automatic advanced matching lets the Pixel detect supported customer information from forms on your site, normalize it, and hash it with SHA-256 in the browser before it travels with conversion events. Raw customer information never goes to OpenAI through this feature, and it needs no code change. OpenAI recommends enabling it for conversion-optimized campaigns because it connects conversions to ads when a click identifier is missing.

Normalize manual matching fields

If you pass identifiers yourself, normalize before hashing: trim and lowercase emails; keep the country calling code on phone numbers and strip spaces, parentheses, periods, hyphens, the leading plus sign, and leading zeroes; lowercase names and remove whitespace and ASCII punctuation. Send geographic fields raw. OpenAI is explicit that you use real customer information and real business actions, never invented identifiers or shifted timestamps to lift a score.

How Should You Tag ChatGPT Ads for GA4 and Analytics?

Add UTM parameters built from OpenAI's dynamic URL macros, keep oppref intact, and give ChatGPT its own row in a GA4 custom channel group. Ads Manager supports {campaign_id}, {ad_group_id}, {ad_id}, and {ad_account_id} and fills them automatically at delivery time.

Set them under Landing page query parameters in Edit campaign, Edit ad group, or Edit ad. The most specific setting wins in this order: Ad URL, then Ad, then Ad Group, then Campaign, and a parameter already set at the Ad URL level is never overwritten. A clean template:

utm_source=chatgpt
&utm_medium=cpc
&utm_campaign={campaign_id}
&utm_term={ad_group_id}
&utm_content={ad_id}

Use utm_medium=cpm for Views and oCPM campaigns so billing type stays visible in analytics. IDs keep reporting stable when someone renames a campaign, and they join cleanly to Ads Manager CSV exports and the Insights API. Test every redirect, link shortener, consent wall, and geo router to confirm both your UTMs and oppref survive to the final page.

Build the GA4 channel

In GA4, go to Admin > Data display > Channel groups, create a group from a copy of the default, and add a channel named "ChatGPT Ads" where Source exactly matches chatgpt and Medium matches the regex cpc|cpm. Traffic lands in the first channel it matches, so reorder ChatGPT Ads above Paid Other and Referral. Per Google's custom channel group documentation, standard properties get two custom groups of up to 50 channels, groups apply retroactively, and Campaign ID is a supported field, which pairs perfectly with the {campaign_id} macro.

Connect GA4 as a data source

OpenAI now lets you connect GA4 directly in Ads Manager under Conversions > Data Sources > Create > Google Analytics 4 to share GA4 data for optimization where eligible and to compare attribution between the two systems. Per OpenAI's GA4 guide, the feature is in beta through your account manager, supports one property per advertiser account with read-only access, and covers connection setup today; reporting requires mapping GA4 events to OpenAI events. The imported totals are property-wide across all traffic, so treat them as a sync check, not campaign conversions.

Expect Ads Manager and GA4 to disagree. OpenAI lists different attribution methods and windows, time zones, consent and browser storage, deduplication, and modeled conversions as normal causes. Our ChatGPT Ads reporting dashboard guide shows how to reconcile them in one view.

Which Measurement Partners Integrate With ChatGPT Ads?

OpenAI named its first measurement partners on October 5, 2026, covering data integrations, attribution, full-funnel measurement, incrementality, and brand lift, and it counted more than 50 technology and measurement partners in its August 31 milestone post. If your conversions already flow through one of these systems, start there.

JobPartnersUse when
Send conversion data from existing systemsHightouch, Tealium, LiveRampYour warehouse or CDP already holds confirmed conversions
Attribution, Conversions API, click attributionAppsFlyer, Triple Whale, Adjust, DV Rockerbox, Northbeam, Branch, Singular, Kochava, Airbridge, TenjinYou run web or app attribution through a partner today
Full-funnel and advanced measurementFospha, Measured, INCRMNTALYou budget across channels with modeled or full-funnel views
Incrementality geo experimentsHaus, Measured, WorkMagicYou need causal lift, not attributed credit
Brand lift (early-stage testing)Kantar, CintYou measure awareness and resonance for new placements
Commerce and CRMShopify (ChatGPT Ads app), HubSpotYou want catalog, Pixel, and lead follow-up inside tools you already use

The early partner results are strong. According to OpenAI's October 5 announcement, DV Rockerbox measured WeightWatchers' attributed CPA on ChatGPT Ads at 15.3% below its blended paid-search benchmark; WorkMagic reported statistically significant lift for Dose, with 67% of incremental purchases coming from net-new customers; and Triple Whale found that 93% of Portland Leather's ChatGPT Ads visitors were new. The OpenAI Ads blog adds that WorkMagic's geo-lift study estimated 2.3x more incremental orders for Dose than last-click attribution captured. Each figure is a single-advertiser result, and together they show why click-only reporting undercounts this channel.

15.3% lower CPA

WeightWatchers' attributed CPA on ChatGPT Ads versus its blended paid-search benchmark, measured by DV Rockerbox

Source: OpenAI, October 5, 2026

HubSpot is OpenAI's first CRM partner: businesses connect a ChatGPT Ads account, create ads, track performance, and follow up on leads inside HubSpot, per OpenAI's September 16 announcement. Partners that send events on an advertiser's behalf identify themselves with a stable integration_source on every Conversions API request.

How Do You Prove ChatGPT Ads Drive Incremental Revenue Across Channels?

Run a geo experiment to prove causality and keep a confirmed-outcome ledger to settle credit across channels; Lapis Wayfinder is that ledger. Attribution answers which ad touched a buyer. Incrementality answers whether the sale would have happened anyway. Finance needs both.

Run a geo holdout

Standard ChatGPT Ads campaigns target countries plus supported states, regions, cities, markets, and postal codes, so you can split comparable regions into test and holdout groups (product-feed campaigns stay at country level, per Create Campaigns). Hold spend steady elsewhere, run long enough to clear your sales cycle, and compare confirmed revenue per region. Haus, Measured, and WorkMagic now run these geo designs with OpenAI.

Count each conversion once

Every platform claims its own credit. One order can show up as a ChatGPT Ads conversion, a Google conversion, and a Meta conversion on the same day. Wayfinder connects campaign activity to confirmed sales and leads from your CRM, store, or billing system, records one conversion per business event, and assigns channel credit under one set of attribution rules across ChatGPT, Google, Meta, and LinkedIn. It carries attribution through signup and login, flags sales with no traceable ad source, and sends confirmed sales and qualified leads back to ad platforms so their bidding learns from real outcomes.

Worked example: a skincare brand's platforms report 61 ChatGPT Ads purchases, 140 Meta purchases, and 112 Google purchases in one week, a total of 313, while Shopify records 236 orders. Wayfinder matches browser and server reports to the 236 real order IDs, assigns each order to one channel under the brand's rules, and marks the orders it cannot trace as unattributed. The growth lead now moves budget on 236 confirmed sales instead of 313 claims.

Add a one-question post-purchase survey ("How did you first hear about us?" with "ChatGPT or another AI assistant" as an option) to capture influence that never produced a tracked click. Our ChatGPT Ads ROI guide turns these inputs into scale or cut decisions.

What Are the Most Common ChatGPT Ads Tracking Mistakes?

The costliest mistakes break the click reference, double count conversions, or send values OpenAI rejects. Each one takes minutes to fix once you know where to look.

  1. Copying an outdated snippet. The current loader is https://bzrcdn.openai.com/sdk/oaiq.min.js and init takes an object with pixelId. Copy the code from Ads Manager or the developer docs.
  2. Stripping oppref in redirects. Link shorteners, consent walls, and country routers drop query strings. Ad click information warnings in Event Quality Score are the tell.
  3. Mismatched IDs across Pixel and server. Different values for event_id and id count one purchase twice and inflate ROAS.
  4. Sending dollars instead of minor units. 149.00 is invalid; send 14900 with currency: "USD".
  5. Attaching the wrong goal. A firing event shows 0 conversions if it does not match the configured event, and corrected settings do not backfill history. Custom events can never be a Conversions campaign goal.
  6. Batching server events overnight. Events older than 7 days are rejected, and anything later than an hour weakens your score.
  7. Judging too early or on mismatched settings. Allow 24 to 48 hours for conversions, then compare Ads Manager, analytics, and CRM on the same dates, time zone, and windows.

Before launch, run through our ChatGPT Ads Manager setup guide and confirm landing pages pass review in our ChatGPT Ads landing page guide.

Why Is Lapis the Best Way to Measure and Scale ChatGPT Ads?

Lapis is the best way to measure and scale ChatGPT ads because it connects every ChatGPT conversion to confirmed revenue and then uses that truth to run the next campaign. Lapis is the #1 AI ad generator and the operating system for paid growth. OpenAI gives every advertiser a Pixel, an API, and a fast first ad for one channel. Lapis runs the whole program: brand-trained creative with a distinct visual per angle, experiment design and next-run generation, a matched landing page for every ad, campaigns across Meta, Google, LinkedIn, and Reddit, one conversion count across every channel, and a dedicated strategist.

  • Wayfinder for measurement. Shared conversion measurement for OmniSense and ChatSense that ties campaign results to confirmed sales and leads from your CRM, store, or billing system, counts each conversion once, and compares every channel on the same attribution rules. Custom pricing.
  • ChatSense for ChatGPT ads. Lapis agents and a dedicated strategist on the Managed ChatGPT + LLM Ads plan build creative tuned to how people ask ChatGPT, structure campaigns, launch, report daily, and optimize, including 1,000+ ChatGPT ads and buyer-intent experiments.
  • RapidDomain for landing pages. A dedicated, prompt-matched page for every ad and audience, optimized on real conversions.
  • OmniSense for every other channel. On-brand, correctly sized campaigns, audience versions, and variations for Meta, Google, and LinkedIn, plus Reddit on managed plans, with directional forecasts and experiments that learn from results.

Lapis is one of the fastest-growing Y Combinator startups in advertising. Its Y Combinator profile lists Lapis as a Fall 2025 company used by 1,500+ marketing teams and 30+ enterprises, and Lapis is rated 4.9 out of 5 on G2 with eight Summer 2026 badges, including High Performer and Best Results. Samsung, Domino's, Dr Pepper, Mattel, Tata, Tupperware, Amway, and Bata use Lapis, alongside high-growth startups such as Unusual Whales, Duradry, and Lightpage.

Book a demo to see Wayfinder and ChatSense run your ChatGPT measurement, from Pixel and Conversions API setup to confirmed revenue by channel.

Sources and Methodology

Facts and pricing checked as of October 23, 2026. Every code sample, endpoint, field name, and limit in this guide was checked against OpenAI's developer documentation and help center, and every partner result links to OpenAI's own announcement.

Built by Lapis

The #1 AI ad generator, built into the operating system for paid growth.

Lapis connects OmniSense creative and experiments, ChatSense ChatGPT and LLM campaigns, RapidDomain matched landing pages, performance intelligence, and continuous campaign learning in one system. Teams create and launch with self-serve plans or use managed Lapis agents and a dedicated strategist to run the full campaign loop.

Lapis is rated 4.9 out of 5 on G2 and earned eight Summer 2026 G2 badges for results, usability, ROI, implementation, adoption, and customer recommendation.

Continue exploring

Frequently Asked Questions