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

  1. Locate your existing chartbeat.js snippet (in your site’s <head> or tag manager), or sign in to your Chartbeat dashboard.
  2. 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).
  3. 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

FieldRequiredDescription
site_idYesYour Chartbeat Site ID / host (the config.domain value). Sent as the ping h parameter.
uidYesYour 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.

ParameterSourceDescription
hconfig site_idSite ID / host where traffic appears.
gconfig uidNumeric account id.
dcontext.page.hostnameActual page domain.
pcontext.page.pathPage path (canonical).
icontext.page.titlePage title (first ping of a session).
rcontext.page.referrerReferring URL (external).
v(optional)Referring URL when the referrer is your own site.
tcontext.session.idPage-session token — one per pageview.
uanonymous_idStable visitor token.
g0properties.sectionsComma-delimited sections.
g1properties.authorsComma-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.

SignalFieldDescription
Visitor tokenuSet from Signal’s anonymous_id — a stable, first-party identifier for the visitor across pageviews.
Page-session tokentSet 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 eventChartbeat
pageping (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

ProblemSolution
Pageviews not appearing in ChartbeatVerify site_id matches your config.domain exactly and uid matches your numeric config.uid.
Wrong path or titleCheck 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 wrongConfirm the visitor IP and User-Agent are being forwarded — Signal sends them as request headers automatically.
Sections or authors missingPass sections and authors as properties on the datafly.page() call (comma-delimited).
EU trafficRoute pings through your Chartbeat de-identification proxy host (config.pingServer) — contact Datafly to configure.