pixellint

Consent · engineers · PMs

Aggregate reports are not a pixel HAR

If you are used to opening Network and seeing the conversion, ARA will feel like a black box. That is the point. Debug with the reporting endpoints the docs name, not with Pixellint on a missing /tr request.

Registration

The source is registered on the impression or click, often from the ad or the landing response headers. The trigger is registered when the conversion happens on your site. The browser joins them under privacy limits and sends a report to the ad tech origin. Misconfigured headers mean no report, not a 400 on a pixel.

You do not send gclid on a thank-you image to make this work. You register the source when the click is real. You cannot validate Attribution Reporting by pasting a URL into Pixellint. There may be no conversion URL. The Network tab may show a report to a well-known path much later, not a 1x1.

Delay and noise

Event-level reports are coarse and delayed. Aggregate reports are the useful ones for value, and they are noised. There is no per-user row that looks like a CAPI Purchase. Finance-style day-0 ROAS will not come from ARA alone. Keep enhanced conversions and gclid. Keep a first-party order log if you need a join on order id.

A 200 on your old conversion tag does not prove the API registered a trigger. Google Ads conversions can still use the tag plus enhanced conversions plus modeled conversions. Attribution Reporting is another input, not a reason to delete gclid. Run them as layers.

https://www.googleadservices.com/pagead/conversion/123456789/?label=AbC-D_efG&guid=ON&script=0&value=129.99&currency_code=USD

Not a Pixellint artifact

pixellint validate url expects a pixel URL or similar hop. The google-ads-conversion pack reads conversion_id from the path and checks label, guid, and script. That is the image tag. Attribution-Reporting-Register-Source is a response header. Do not invent a Pixellint rule for it. Do not paste the header into the playground and expect a TC String decode.

If the conversion image still fires, lint that URL. If the only remaining measurement is ARA, use Chrome's attribution reporting internals and the origin's debug reports. Those are Google's tools. Pixellint is not affiliated with Privacy Sandbox.

Coexistence

Running ARA plus a pixel is expected during migration. Dedup is the platform's problem if they own both. If you also fire CAPI, you now have three pipes. Write the dictionary. Do not fire a Purchase pixel and an Attribution Reporting trigger with different values and expect ROAS to agree.

View-through in this world is a source registered on an impression, not a pixel you forgot to traffic on the creative. Windows and priority live in the source registration, not in a Floodlight UI. Brief the PM that the pixel is deterministic for the users it saw and the aggregate report is delayed and noised. Then instrument both on purpose.

Keep gclid and enhanced conversions

gclid on the landing URL is still the join for many Google Ads conversion paths, including enhanced conversions and click conversion uploads. ARA does not populate gclid. A www redirect that strips gclid still breaks those paths even if ARA is perfect.

Enhanced conversions hash email and phone onto the conversion. That is a matching technique on Google's tag or on UploadClickConversions. It is not Attribution Reporting. Keep both if you need user-level recovery and aggregate recovery. Lint the click conversion JSON with the pack that actually contracts it. Do not point that pack at an ARA report.

Check the artifact

Paste the pixel URL or JSON body into the playground. Same engine as pixellint validate. Nothing leaves the tab.