Substitution off = tokens stay literal, as on cache.gamx.io. Expect every event to log as SKIP — that verifies the unreplaced-macro guard. Substitution on = pixels are captured before any network request; nothing is actually sent.
| Check | Result | Value / fix |
| Load a creative to run the checks. Source checks run on load; the substitution check needs one interaction so a collect pixel fires. | ||
Both macros must reach collect.adnex.io as creative_id and creative_name — the same spellings used as the CSV column headers, so one name holds end to end. Ingestion matches the literal key and silently drops anything else, so a misspelling loses the data with no error. The harness substitutes a name containing a space and a comma on purpose: those characters break a query string or shift a CSV column if the creative fails to encode them.
| # | Question | Slug (r) | Answer label (a) | Lang |
No responses captured yet. Load a creative with Substitute macros ON and interact — each answer's question, slug and human-readable label appears here as it is sent to collect.adnex.io (captured here, not actually transmitted). | ||||