| 开发者 | netrobit |
|---|---|
| 更新时间 | 2026年10月4日 22:15 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
G-…), a Tag Manager container (GTM-…) and a Google Ads conversion ID (AW-…) — or the whole snippet Google gives you; the IDs are read out of it. The same actions are then reported to Google:
page_view, generate_lead, contact (with the method: phone, WhatsApp, email…) and, with WooCommerce, purchase with value, currency and transaction ID.transaction_id.dataLayer events you can trigger your own tags on: netroads_contact, netroads_lead, netroads_purchase.lead_created by default), and with WooCommerce contents_viewed, items_added, checkout_started and order_created. OpenAI's own rules are applied, which differ from Meta's: names are normalised without spaces before hashing, amounts are sent as integers in the currency's minor unit (three decimals for KWD, none for JPY), and the oppref click identifier is carried from the landing page to later server events.
What it measures without any setup per page
data-netroads-conversion="lead" (or "contact") to a button or form.fbclid is captured on the landing page and carried through the session, so events from inner pages still carry the click ID.fbp, fbc, IP and user agent are never hashed; email and phone are hashed on the server and passed in plain text to the pixel, which hashes them itself.navigator.sendBeacon and survive the unload.wp-config.php instead of the database.No. Nothing is added to your theme, and no code is copied from the Meta or Google panels — paste the IDs (or the whole snippet) into this screen instead.
Yes, and it is built for it: no per-visitor value is ever printed into the HTML, so cached pages stay correct. Measured with a full page cache serving byte-identical HTML to two visitors: the event IDs differ.
Yes, and it is on by default: a new install starts in "strict" mode, where no measurement script loads until the visitor agrees. Complianz, CookieYes, Borlabs Cookie and Real Cookie Banner are detected and their decision is used; otherwise a simple built-in banner asks. Google Consent Mode v2 defaults are set before any Google tag loads. Meta has no cookieless mode, so the pixel is never loaded before marketing consent. You can switch the gate off if your audience is outside the EU/UK, but that is a deliberate choice, not the default.
Yes. The OpenAI tab takes the Pixel ID and the Conversions API key from ChatGPT Ads Manager (Tools → Conversions). Contact clicks and form submissions are sent as lead_created by default — OpenAI has no separate contact event, and its documentation defines lead_created as a lead form or a contact request. You can report contact clicks as a custom contact event instead. Whatever you pick, create the same event in Ads Manager and attach it to your campaign.
Check the conversion label. Google issues a label of about 20 characters (like 6kJ2CM_q1rEaEMDAyucD) next to the conversion ID in the event snippet, and a name typed by hand — "form", "phone" — is not one. Google drops a conversion with an unknown label without any error, so the screen looks correct while nothing is recorded. Since 1.1.4 the plugin checks the label as you type it and the status list names every channel it affects. Paste the whole event snippet and the label is pulled out of it.
In its own option, never in the settings array and never in front-end output. For a stricter setup, define NETROADS_CAPI_TOKEN in wp-config.php and the field is ignored.
Open the status list. The usual causes are a missing access token, a test event code left in place, a Google Ads conversion label left empty, an event name Meta restricts on your pixel, or a REST API blocked by a security plugin — each one is reported there by name.
AW-XXXXXXXX/form. Google ignores an unknown label without any
error, so those conversions were never recorded while the screen looked
correctly set up. The label is now checked where you type it, the status
list names every channel it affects, and an ID pasted into a label box is
refused.transaction_id so Google
de-duplicates them, and are never sent under a form or contact label. The
status list says when the label is missing.woocommerce_thankyou hook, which WooCommerce fires only after its own
order-key, account and email checks. The plugin no longer reads the order ID
from the request and never prints the order key.measureSingle).
With measure, every event also reached any other OpenAI pixel already on
the page — for example one pasted into the theme by hand.oppref carried from the landing page.