Understand and verify Signals
Learn what CJM sends to Meta, Google Ads, and GA4, when it sends it, and how to verify delivery.
Signals is the delivery history for server-side events that CJM sends to Meta CAPI, Google Ads, and Google Analytics 4. Use it to answer three questions: what was sent, why it was sent, and whether the platform request succeeded.
Signals does not turn delivery on. Configuration is kept separate so that you can choose deliberately which business events each platform receives:
- Connect the destination under Setup → Channels.
- For CRM and scoring milestones, configure Offline Conversion.
- For selected Pixel events, create Server Tracking rules.
- Open Signals in the project and verify the results.
The dashboard navigation is being reorganized. If the sidebar group changes, use the page names Setup, Channels, Offline Conversion, Server Tracking, and Signals rather than relying on the old menu position.
Which signals CJM can send
| Origin | When it runs | Meta | Google Ads | GA4 | Why send it |
|---|---|---|---|---|---|
| Web engagement | A supported event arrives from the CJM Pixel | PageView for a page load; ViewContent for other supported interactions | — | Only through a matching Server Tracking rule | Give Meta server-side visibility into consented website activity. |
| Lead capture | CJM receives a lead_captured event and resolves a Profile | Lead | — | Only through a matching rule | Tell Meta that an anonymous visit became an identified lead. |
| First MQL qualification | Either Fit or Intent first reaches 60 | One configured CJM event for each high component, plus SubmitApplication; both can be sent when Fit and Intent are high | CJM_MQL_HighFit, CJM_MQL_HighIntent, or both | Only through a matching rule | Separate a strong customer fit from active buying intent so campaigns can optimize for the useful signal. |
| SQL | The Profile enters SQL for the first time | Configured CJM SQL event plus Contact | CJM_SQL | Only through a matching rule | Report the first sales-qualified milestone without counting later updates again. |
| Opportunity | The Profile reaches Opportunity with a value greater than zero | Configured CJM Opportunity event plus Contact | CJM_Opportunity | Only through a matching rule | Send a commercial milestone only when CJM has a meaningful deal value. |
| Won | The Profile reaches Won with a value greater than zero | Configured CJM Won event plus Purchase | CJM_Won | Only through a matching rule | Return confirmed revenue to advertising platforms for optimization and reporting. |
| Server Tracking rule | A received Pixel event matches the rule's trigger and optional event name, Pixel, and URL conditions | The event selected in the rule | The conversion action selected in the rule | The event name selected in the rule | Forward only the website behavior you intentionally mapped to that destination. |
Lead, Lost, and Disqualified pipeline stages do not create stage-based conversions. Lead capture has its own Meta path. MQL is based on scoring, not a CRM stage. SQL is sent only on first entry; Opportunity and Won require a positive monetary value.
One source event can therefore produce more than one Signal. For example, an MQL with both high Fit and high Intent can create two custom Meta events, one standard Meta event, and two Google Ads conversions. Meta also stores one row for every destination Pixel.
How CJM enriches a signal
CJM combines the triggering event with the Profile, the most relevant saved session, and attribution data. It uses only fields that are available and allowed by consent.
Possible enrichment includes:
- Profile identity: email, phone, first and last name, and CJM Profile ID;
- advertising identifiers: Meta
_fbpand_fbc, Meta Lead ID, or Googlegclid,wbraid, andgbraid; - attribution: campaign and ad identifiers when CJM can resolve them;
- context: source URL, IP address, browser/device data, language, location, and UTM parameters where supported by the destination;
- business meaning: CJM stage, Fit/Intent qualification, score, value, and currency;
- ecommerce details: transaction ID, products, quantities, prices, and coupon when present in a supported ecommerce event.
Missing enrichment does not necessarily mean failure. For example, an anonymous page view can have browser identifiers but no Profile contact data. Each platform also accepts a different subset; see the platform guides for the exact behavior.
Consent is evaluated before delivery
CJM first uses the consent snapshot attached to the event. If it is absent, it uses the current consent stored on the Profile; if neither exists, the signal is treated as unspecified.
| Destination | Current delivery rule |
|---|---|
| Meta | Both adUserData and adPersonalization must be granted. Otherwise no Meta event is sent. |
| Google Ads | A click identifier can still be used with the declared consent state. Email and phone are included only when adUserData is granted. Without a click identifier or permitted contact data, nothing is sent. |
| GA4 | analyticsStorage must be granted. Hashed user data is added only when adUserData is also granted. |
These rules apply to automatic conversion delivery and Server Tracking rules. See the consent model before enabling signals on a live site.
Read the Signals overview
- Open the project and select Signals.
- Use Overview to see all destinations together.
- Choose the date range and, if needed, filter by Status or originating CJM Event.
- Use the platform selector to limit the page to Meta, Google Ads, or GA4.
- Select a row to open its details.
The Overview shows:
- Total sent: stored delivery attempts in the selected period;
- Rejected: attempts recorded as failed. High appears when failures are at least 10% of the total;
- Avg delay: average time between the stored send and receipt timestamps, where a receipt timestamp is available;
- Recent activity: the latest stored Signals;
- Origin breakdown: how stored events map to CJM milestones or Server Tracking. It is informational and is not a filter.
The comparison below each KPI uses the immediately preceding period of the same length. Platform tabs contain their own event list; the aggregate KPIs remain on Overview.
Understand delivery status
| Dashboard status | Meaning | What to do |
|---|---|---|
| Active | CJM recorded the platform request as successful. | Check the destination later if you also need to confirm matching, attribution, or reporting. |
| Processing | The stored attempt has not reached a final state. | Wait and refresh. Investigate if it remains unchanged. |
| Error | CJM recorded a failed platform request. | Open the row and inspect the error and response, then verify the integration and destination configuration. |
An Active Signal proves delivery from CJM, not that the platform attributed the conversion to a campaign or will show it immediately in reports. A signal skipped before a request—because consent, identifiers, integration, rule, or destination is missing—may not create a row at all.
Verify a single signal
Open an event row and check Status & timing, Conversion / Event, the linked Lead, and the technical details when present. Confirm that:
- the event or conversion name represents the intended business action;
- Triggered by identifies the expected CJM milestone or Server Tracking;
- the platform, Pixel, value, and currency are correct;
- the linked Profile is the expected person;
- the payload, response, or error explains any unexpected result.
Start troubleshooting at the source: confirm that CJM received the original event, then check consent, the active connection, and the relevant Offline Conversion or Server Tracking configuration.