Use this guide to install the pixel code generated by an Advarde conversion setup in a GTM web container. You will create one base tag, three data-layer variables and one event tag, then test a confirmed business action. You need an eligible advertiser account, an Advarde setup and permission to edit the website and GTM container.
This workflow uses Advarde’s generated helper. It is not a standalone native OpenAI GTM template. The booking example below uses synthetic values; replace them with your application’s confirmed action ID and the event selected in your setup.
Jump to a step in this guide
When Preview looks green but Test events stay empty
GTM Preview can look green while Ads Manager or Advarde Test events stay empty. A fired GTM tag is not an accepted conversion. Follow the diagnostic order below so a missing website push is not mistaken for a reporting delay.
- Confirmed business action and dataLayer push on the website
- Tag Assistant shows buro_conversion with the three current variables
- Helper consent granted (no automatic replay of earlier blocked events)
- Browser measurement call observed with Pixel Helper
- Receipt appears in Advarde Test events
- Attribution checked separately from the receipt
Prepare the setup
In Advarde, open Conversion tracking → Set up conversions for the intended advertiser and website. Select the events you actually measure and the primary conversion, then review and create the setup. Reuse the website’s existing tracking source where appropriate.
Open Installation → Google Tag Manager and download the instructions. Keep base-pixel.html, gtm-event-tag.html and data-layer-example.js together. The base file supplies the pixel ID and allowed events. Do not mix files from different setups. Keep destination campaign tags consistent when you test landing URLs — build them with the UTM URL Generator so analytics can separate paid ChatGPT Ads arrivals from other traffic.

Install one base tag
In GTM, choose Tags → New → Custom HTML. Name the tag “Advarde — base pixel” and paste the complete base-pixel.html snippet. Choose a page-load trigger limited to the pages for this funnel. Check the site for a direct installation first: install the helper once.
Under Advanced Settings → Tag firing options, select Once per page. The event tag will also use this tag as its setup tag. Re-running the base code would reset its local consent state, so do not configure it to run before every event without this limit.
The helper initially denies measurement. Your consent-manager integration must call window.buroConversions.setConsent with the actual grant or withdrawal after the helper exists. If your container also uses GTM consent requirements, configure those with your existing consent manager and GTM’s consent APIs; a helper call does not configure GTM Consent Mode.
Create the three data-layer variables
In Variables → User-Defined Variables → New, choose Data Layer Variable. Create the following three variables with the exact GTM variable names shown. Use Data Layer Version 2. Keep conversion_data as an object, not a JSON string.
The generated event tag references these names directly. Renaming a GTM variable requires the same change in the tag. Clear conversion_data before each event push, then supply all three current values together. An empty object alone does not clear fields previously merged by a Version 2 variable.
| GTM variable name | Data Layer Variable Name | Value for a confirmed booking |
|---|---|---|
| conversion_name | conversion_name | appointment_scheduled (string) |
| conversion_id | conversion_id | The confirmed booking ID (string) |
| conversion_data | conversion_data | An object, such as {} when no optional fields apply |
Connect the event tag and trigger
Create a Custom Event trigger named “Advarde — confirmed conversion” with event name buro_conversion. Leave regular-expression matching off. Choose All Custom Events for this exact event name, or add the website/funnel conditions your setup needs.
Create a second Custom HTML tag named “Advarde — conversion event” using gtm-event-tag.html, then attach that trigger. In Advanced Settings → Tag Sequencing, select the base pixel as the setup tag and prevent the event tag from firing if the setup tag fails. Keep the base tag’s Once per page setting.
Use Once per event for the conversion tag so later, distinct bookings can be measured. This tag dispatches the event; it does not determine whether a booking succeeded or prevent repeated business callbacks.
<script>
window.buroConversions.track({{conversion_name}}, {{conversion_id}}, {{conversion_data}});
</script>Push only a confirmed business action
Call dataLayer.push after your application receives a successful booking response. Replace the example ID with that response’s stable ID. A click, form submission attempt or thank-you URL alone is insufficient when it can also occur after failure.
Prevent repeated dispatch in the application. Preserve the same ID for a retry of the same action; a new ID would describe a different action. The helper does not deduplicate repeated track calls. If browser and server both send an action, follow the platform’s shared-ID rules separately.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ conversion_data: null }); // Clear earlier optional fields.
window.dataLayer.push({
event: "buro_conversion",
conversion_name: "appointment_scheduled",
conversion_id: "booking_example_1042", // Replace with the confirmed booking ID.
conversion_data: {}
});Test consent, success and failure
Use GTM Preview and connect Tag Assistant to the intended website. Select buro_conversion in the event timeline: the Variables tab should show the three current values and the Tags tab should show the conversion tag. A fired GTM tag does not establish a sent or accepted conversion.
Perform the cases below using a permitted test setup. Advarde’s test label does not create an OpenAI sandbox. The public booking demo uses a synthetic SDK and sends no events to OpenAI; it exercises helper behavior, not a real GTM container.
| Case | Expected observation |
|---|---|
| Consent denied; booking succeeds | No appointment measurement call. Granting consent later does not replay it. |
| Consent granted; new booking succeeds | One appointment_scheduled call with the correct pixel and action identity. |
| Booking rejected | No completed-appointment event from the application. |
| The same success callback repeats | Application dispatch guard suppresses the repeat; the helper is not a deduplicator. |
| A different booking succeeds | One new call, with a different stable booking ID. |
| Consent withdrawn; later booking succeeds | No later appointment measurement call. |
Verify with Pixel Helper
After the consent matrix in Preview, inspect the browser call with ChatGPT Pixel Helper. Start inspection before the action, then check that the observed pixel ID and consent state match the setup you are testing. An observed call still needs a receipt check.
When Test events stay empty after a visible call, follow the missing-conversions checklist.
Troubleshoot the first failed check
Start with the earliest failed stage. This keeps a missing website trigger from being confused with delayed reporting.
| Observation | Next check |
|---|---|
| No buro_conversion in Tag Assistant | Confirm the business action succeeded and the application pushed to window.dataLayer. |
| Variables are undefined or belong to an earlier action | Match case-sensitive keys and send every field in the same event push. |
| window.buroConversions is undefined | Check base-tag firing, sequencing, the selected container and script errors. |
| Tag fires, but no measure call appears | Check the helper’s current consent state, base-tag repetition and event-name validation. |
| Pixel Helper shows an unknown pixel or consent | Start inspection before the action; earlier initialization calls may already have been consumed. |
| A call appears, but no receipt is visible | Check pixel identity, browser request errors, CSP and the receipt sample’s time range. |
Publish the reviewed container and verify receipts
After the cases pass in Preview, review the intended GTM container version and publish it. Repeat a permitted action on the published website. Open Advarde → Conversion tracking → Test events and compare the selected source with recent browser receipts.
Record the container version, pixel, event, test time and outcome. The installation checkbox is an operator confirmation. An observed browser call, a received event and an attributed campaign conversion remain separate checks.
Sources and verification
Editorial refresh September 29, 2026: failure-mode diagnostic order, Pixel Helper verification path, and CAPI cross-link. Installation steps still match Advarde’s generated helper and the linked documentation last reviewed September 18, 2026. The linked demo uses a synthetic SDK; it does not verify a live GTM container, OpenAI receipt or attribution. Your account may expose a different set of features. Examples are illustrative unless a dataset is explicitly supplied.



