Networks · Google Ads
Google Ads conversion tags: parameters
Updated 2026-09-27
Google Ads measures conversions and remarketing through the Google tag (gtag.js or Google Tag Manager). A single action can leave the browser as several requests in different formats: the conversion request, a view-through request and a CCM request. Universal Pixel Debugger decodes each one and shows every field with the exact key it came from.
Where the events go
| Endpoint | Method | What it carries |
|---|---|---|
/pagead/conversion/<id>/, /pagead/1p-conversion/<id>/ | GET or POST | Conversion request: en, label, value, currency_code, order and item fields. The account ID is in the path. |
/pagead/viewthroughconversion/<id>/ | GET or POST | View-through request, shown with the format "view-through" |
/ccm/collect, www.googleadservices.com/ccm/conversion/<id>/ | GET or POST | CCM request with en and tid (AW-…), shown with the format "CCM". A DC- destination belongs to Floodlight. |
/measurement/conversion | GET or POST | A Google Ads conversion sent by a GA4 tag: tid is the G- tag ID, not an Ads account |
<site>/<path>/gs/…, /as/d/…, /g/d/…, /d/… | GET or POST | Google tag gateway (first-party mode): the same hits sent through the site's own domain. They must carry tid or gtm. |
The Google paths are recognized on www.googleadservices.com, www.google.com and other google.com hosts, *.doubleclick.net and pagead2.googlesyndication.com. /measurement/conversion is also recognized on the Google Analytics hosts.
Event names as sent
A conversion is identified by its conversion label, sent in label: an opaque code set up in the Ads account. The label does not say what kind of action it is, so the extension never guesses one from it. The event name comes from en, or from event inside the semicolon-encoded data parameter when en is absent. When neither is sent, the row reads Event name not sent and is marked as having no sent name. The label is shown separately and is searchable.
| Sent name | Notes |
|---|---|
page_view | Page loads, often on CCM |
view_item, add_to_cart, view_cart, begin_checkout | Seen on live stores, on cart and checkout actions |
conversion | Kept as conversion; on live stores it was sent with value 0 after a cart action, so it is not treated as a purchase |
form_submit | Seen both as en and as data=event=form_submit |
gtag.config | Seen on view-through requests |
Value, currency, order ID and products
Fields can be sent at the root, inside data, or with an ep./epn. prefix. When the same field appears more than once, the root key wins.
| Field | Key(s) | Notes |
|---|---|---|
| Conversion value | value, then epn.value, ep.value, value inside data | Shown only when sent |
| Currency | currency_code, then currency, ep.currency, cu, currency inside data | Kept exactly as sent |
| Order ID | oid, transaction_id, order_id, orderId | An oid of the form GG_<number>.<time> is generated by the Google tag itself; it is kept as sent but not used as the order ID |
| Products | contents or items arrays; otherwise the packed item parameter; otherwise pr1, pr2, … | Packed item tuples give item ID, price, quantity and optional start and end dates. Amounts are not recomputed. |
| Remarketing fields | ecomm_prodid, ecomm_pagetype, ecomm_totalvalue, dynx_itemid | ecomm_prodid is used as the product ID list when content_ids is absent |
| Other order fields | shf (shipping), dscnt (discount), vdnc (new customer), mid (merchant ID) | Listed in the parameter checklist |
Common problems
- Value without currency on some formats. On a live store, one add to cart sent
valuewithcurrency_codeon the conversion requests, but the value without any currency on the view-through and CCM requests. Another store sent values with no currency at all. - Several requests for one action. The Google tag can send one hit per account as both CCM and view-through. The list groups them into one row ("CCM + view-through"), but each stays a separate observation; this is not proof of double counting.
- CCM without a destination. On most of the live stores we checked, a CCM
page_viewcarried notidorsend_to. It is labeled Destination not observed and never borrows another request's account. - A generated order ID on page views.
oid=GG_…appears even on page views and searches. It is not a real order ID. - A GA4 tag as destination.
/measurement/conversionnames only the GA4 tag; which Ads account receives it is set in Google, not in the request.
How to check it with Universal Pixel Debugger
- Open the side panel with the toolbar icon on the site, click Clear, then do the action you want to test.
- Find the Google Ads lane on the signal board. Rows show the request format (CCM or view-through) and the destination.
- Click an event. Value and currency show the key each came from, for example from value and from currency_code, or Not observed. The conversion label is listed next to the order ID and destination.
- Read the Google Ads parameters checklist ("N of M known fields sent"), the Not sent list and Other sent fields.
- Check the issues: a value, currency or product mismatch with another network for the same order ID, or a field that differs between destinations of the same format.
A loaded script, a captured request and a decoded event are separate evidence. An HTTP success response does not prove that Google Ads accepted or counted the conversion.