Chartbeat
Datafly Signal delivers pageviews to Chartbeat server-to-server by reproducing the Chartbeat ping beacon (ping.chartbeat.net/ping). This is the same beacon chartbeat.js fires from the browser, sent instead from your own Signal server, so your real-time content-engagement data is not affected by ad blockers or browser tracking prevention.
Chartbeat is a real-time content-engagement analytics tool, not a conversion API. Signal sends the page event to Chartbeat’s ping endpoint; there are no e-commerce or conversion fields on the endpoint, so other events are not delivered.
Prerequisites
Before configuring Chartbeat in Signal, you need an active Chartbeat account and the two values from your chartbeat.js snippet.
Step 1: Find your Site ID and Account ID
- Locate your existing
chartbeat.jssnippet (in your site’s<head>or tag manager), or sign in to your Chartbeat dashboard. - In the snippet, find these two configuration variables:
config.domain— your Site ID (the “host” where your traffic appears, e.g.example.com).config.uid— your numeric Account ID (e.g.12345).
- Note both values. There is no separate API key for the ping beacon — the account is identified by these two values.
Step 2: (EU only) Note your ping server
If you serve EU traffic and use Chartbeat’s IP de-identification proxy, note the value of config.pingServer in your snippet. Contact Datafly to route Signal pings through that host instead of ping.chartbeat.net.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
site_id | Yes | Your Chartbeat Site ID / host (the config.domain value). Sent as the ping h parameter. |
uid | Yes | Your numeric Chartbeat Account ID (the config.uid value). Sent as the ping g parameter. |
Management UI Setup
Add the integration
Go to Integrations > Add Integration > Chartbeat.
Choose the preset
Select the Default preset (standard pageview tracking).
Enter your credentials
Enter your site_id and uid.
Save
Click Save. Signal will begin delivering pageviews on the next matching event.
API Endpoint
GET https://ping.chartbeat.net/ping?h={site_id}&g={uid}&...Chartbeat’s ping is a GET request with all fields carried as URL query-string parameters. The first ping of a page session registers a pageview in Chartbeat.
| Parameter | Source | Description |
|---|---|---|
h | config site_id | Site ID / host where traffic appears. |
g | config uid | Numeric account id. |
d | context.page.hostname | Actual page domain. |
p | context.page.path | Page path (canonical). |
i | context.page.title | Page title (first ping of a session). |
r | context.page.referrer | Referring URL (external). |
v | (optional) | Referring URL when the referrer is your own site. |
t | context.session.id | Page-session token — one per pageview. |
u | anonymous_id | Stable visitor token. |
g0 | properties.sections | Comma-delimited sections. |
g1 | properties.authors | Comma-delimited authors. |
The visitor’s IP address and User-Agent are forwarded as request headers (X-Forwarded-For and User-Agent) so Chartbeat attributes geo and device to the real visitor, not your Signal server.
Identity Signals
Chartbeat uses first-party visitor identity — no hashed PII is involved.
| Signal | Field | Description |
|---|---|---|
| Visitor token | u | Set from Signal’s anonymous_id — a stable, first-party identifier for the visitor across pageviews. |
| Page-session token | t | Set from the Signal session id — one value per pageview. |
Chartbeat ingests no email/phone or other PII, so no SHA-256 hashing is performed. Consent is enforced upstream by Signal’s consent gating before the page event is delivered.
Event Mapping
Signal delivers only the page event to Chartbeat.
| Signal event | Chartbeat |
|---|---|
page | ping (registers a pageview) |
All other Signal events are dropped (Chartbeat has no conversion fields).
Example: Pageview
Datafly.js call:
datafly.page({
sections: "News,Politics",
authors: "Jane Doe"
});Chartbeat ping sent by Signal:
GET https://ping.chartbeat.net/ping?h=example.com&g=12345&d=example.com&p=/news/election-2026&i=Election%202026%20Results&r=https%3A%2F%2Fwww.google.com%2F&t=8f3c1a2b-...&u=a1b2c3d4-...&g0=News%2CPolitics&g1=Jane%20Doe(IP and User-Agent are sent as request headers, not query parameters.)
Testing
Trigger a pageview
Load a page on your site that fires the Signal page event.
Check Signal’s event debugger
In the Management UI, open the event debugger and confirm the page event was delivered to Chartbeat with a 200 response and the expected query-string fields.
Confirm in Chartbeat
Open your Chartbeat real-time dashboard and confirm the pageview appears under the matching path within a few seconds.
Troubleshooting
| Problem | Solution |
|---|---|
| Pageviews not appearing in Chartbeat | Verify site_id matches your config.domain exactly and uid matches your numeric config.uid. |
| Wrong path or title | Check that the Signal page event carries context.page.path and context.page.title; map a custom path if your canonical URLs differ. |
| Geo / device looks wrong | Confirm the visitor IP and User-Agent are being forwarded — Signal sends them as request headers automatically. |
| Sections or authors missing | Pass sections and authors as properties on the datafly.page() call (comma-delimited). |
| EU traffic | Route pings through your Chartbeat de-identification proxy host (config.pingServer) — contact Datafly to configure. |