Compatibility: the signals names
PixelFox was first shipped under the code name "signals". Every identifier from that time still works; this page lists the old and new spellings side by side.
PixelFox started life under the code name signals, and that name reached the
places merchants touch: the script file, the window global, the data-*
attributes, API keys, HTTP headers, cookies and package exports. All of them
have been renamed to pixelfox.
Nothing you installed under the old names stops working. A tag that loads
signals.min.js, a page that calls window.signals.track(), a button marked
data-signals-event, an API key starting sig_live_, a request carrying
X-Signals-Key, a Laravel app on the Signals facade — all are accepted
exactly as before. New installs, the dashboard and these docs use the new
spellings, and you can move at your own pace. The two spellings may be mixed on
one site; the tag reads both and keeps one set of cookies.
Browser tag
| Was | Now |
|---|---|
https://api.pixelfox.app/signals.min.js | https://api.pixelfox.app/pixelfox.min.js |
signals.mjs | pixelfox.mjs |
signals-engage.min.js, signals-engagement.min.js (loaded by the tag itself) | pixelfox-engage.min.js, pixelfox-engagement.min.js |
window.signals | window.pixelfox (window.signals points at the same object) |
data-signals-key, data-signals-host | data-pixelfox-key, data-pixelfox-host |
data-signals-* on elements (-event, -section, -product-id, -stock, -form, -not-found, -no-capture, -consent-default, -custom-loader, -engagement) | data-pixelfox-*, same suffixes |
data-autocapture, data-pageview, data-no-init | unchanged |
A tag that finds a value under an old cookie or storage key copies it to the new one on first load, so a returning visitor keeps their id and consent choice.
| Was | Now |
|---|---|
signals_did | pixelfox_did |
signals_device_id | pixelfox_device_id |
signals_user_did | pixelfox_user_did |
signals_super_props | pixelfox_super_props |
signals_opt_out | pixelfox_opt_out |
signals_consent | pixelfox_consent |
sg_inv_* (element inventory cache) | pf_inv_* |
Keys, headers and the ingest API
| Was | Now |
|---|---|
API keys sig_live_… / sig_test_… | New keys are pfx_live_… / pfx_test_…; existing sig_ keys stay valid |
X-Signals-Key | X-PixelFox-Key |
X-Signals-Forward-Secret, X-Signals-Visitor-IP, X-Signals-Visitor-UA | X-PixelFox-Forward-Secret, X-PixelFox-Visitor-IP, X-PixelFox-Visitor-UA |
Forwarding secrets sgf_… | New secrets are pff_…; existing ones stay valid |
?key= query fallback | unchanged |
The routes (/v1/ingest, /v1/config, /g/collect, …) and the event wire
format are unchanged.
Packages
| Package | Was | Now |
|---|---|---|
@pixelfox/next | SignalsScript, SignalsProvider, useSignals, useSignalsContext, SignalsServer, signalsFromEnv | PixelFoxScript, PixelFoxProvider, usePixelFox, usePixelFoxContext, PixelFoxServer, pixelfoxFromEnv. The old exports remain as deprecated aliases |
@pixelfox/next env | NEXT_PUBLIC_SIGNALS_KEY, NEXT_PUBLIC_SIGNALS_HOST, SIGNALS_API_KEY, SIGNALS_HOST | NEXT_PUBLIC_PIXELFOX_KEY, NEXT_PUBLIC_PIXELFOX_HOST, PIXELFOX_API_KEY, PIXELFOX_HOST; the old names are read when the new ones are unset |
| Laravel | signals/laravel, namespace Signals\, facade Signals, @signalsTag, config/signals.php, --tag=signals-config, SIGNALS_* env | pixelfox/laravel, namespace PixelFox\, facade PixelFox, @pixelfoxTag, config/pixelfox.php, --tag=pixelfox-config, PIXELFOX_* env. The Signals facade, @signalsTag and SIGNALS_* keep working |
| WordPress | plugin "Signals", signals.php, slug signals | plugin "PixelFox", pixelfox.php, slug pixelfox; settings are carried over on first load |
| Python | signals-sdk, Signals | pixelfox-sdk, PixelFox (Signals remains an alias) |
| GTM templates | signals-web-proxy.json, signals-web-sgtm.json, signals-server-sgtm.json | pixelfox-web-proxy.json, pixelfox-web-sgtm.json, pixelfox-server-sgtm.json |
| Downloads | signals-wordpress.zip, signals-shopify.zip, signals-laravel.zip, signals-extension.zip, signals-gtm-templates.zip, signals-plugins.zip | the same with the pixelfox- prefix |
What did not change
- Event names, property names and the
$-prefixed system properties. - The GTM data layer field
signals_eventand the PostHog propertysignals_event_idare still sent alongside the newpixelfox_eventandpixelfox_event_id, so existing tags and reports keep working. - Everything stored on the PixelFox side: your sites, keys, definitions and history are untouched.