fix capi response types, improve log clarity

This commit is contained in:
Elijah Duffy
2025-12-22 16:57:06 -08:00
parent 93e5c35d86
commit af1b66649b
6 changed files with 74 additions and 70 deletions

View File

@@ -192,6 +192,16 @@ export class PixelControl {
return trackingManager?.haveUserConsent() ?? false;
}
/** Warns if we're in dev mode and no test code is set */
private devModeWarn() {
if (dev && !this._testEventCode) {
log.warn(
`[PixelControl] [${this._pixelID}] Sending events in dev mode without a test event code. ` +
'Consider providing a test event code to avoid affecting real data.'
);
}
}
/**
* Shorthand utility to send a PageView event
* @param disableCAPI If true, disables sending this event to the Conversion API
@@ -235,7 +245,7 @@ export class PixelControl {
)
.then((response) => {
log.debug(
`[PixelControl] [${this._pixelID}] ${event} event sent to Conversion API with Event ID: ${eventID}, Response: ${JSON.stringify(
`[PixelControl] [${this._pixelID}] ${event} event forwarded to Conversion API with Event ID: ${eventID}, Response: ${JSON.stringify(
response,
null,
2
@@ -244,10 +254,12 @@ export class PixelControl {
})
.catch((error) => {
log.error(
`[PixelControl] [${this._pixelID}] Failed to send ${event} event to Conversion API with Event ID: ${eventID}`,
`[PixelControl] [${this._pixelID}] Failed to forward ${event} event to Conversion API with Event ID: ${eventID}`,
error
);
});
return eventID;
}
/**
@@ -265,6 +277,7 @@ export class PixelControl {
disableCAPI: boolean = false
) {
if (!this.consentGuard()) return;
this.devModeWarn();
// Optionally, send to conversion API endpoint
if (!disableCAPI) {
@@ -272,19 +285,13 @@ export class PixelControl {
}
// Send the event to Meta via the pixel
if (!dev || this._testEventCode) {
window.fbq('trackSingle', this._pixelID, event, params, {
eventID,
test_event_code: this._testEventCode
});
log.debug(
`[PixelControl] [${this._pixelID}] ${event} event sent${dev && ` (test code: ${this._testEventCode})`}.`
);
} else {
log.info(
`[PixelControl] [${this._pixelID}] ${event} event not sent in development mode without a test event code.`
);
}
window.fbq('trackSingle', this._pixelID, event, params, {
eventID,
test_event_code: this._testEventCode
});
log.debug(
`[PixelControl] [${this._pixelID}] ${event} event sent with event ID ${eventID} ${dev && ` (test code: ${this._testEventCode})`}.`
);
}
/**
@@ -302,25 +309,20 @@ export class PixelControl {
disableCAPI: boolean = false
) {
if (!this.consentGuard()) return;
this.devModeWarn();
// Optionally, send to conversdion API endpoint
// Optionally, send to conversion API endpoint
if (!disableCAPI) {
eventID = this.forwardToCAPI(event, params, eventID);
}
// Send the event to Meta via the pixel
if (!dev || this._testEventCode) {
window.fbq('trackSingleCustom', this._pixelID, event, params, {
eventID,
test_event_code: this._testEventCode
});
log.debug(
`[PixelControl] [${this._pixelID}] ${event} custom event sent (test code: ${this._testEventCode}).`
);
} else {
log.info(
`[PixelControl] [${this._pixelID}] ${event} custom event not sent in development mode without a test event code.`
);
}
window.fbq('trackSingleCustom', this._pixelID, event, params, {
eventID,
test_event_code: this._testEventCode
});
log.debug(
`[PixelControl] [${this._pixelID}] ${event} custom event sent with event ID ${eventID} ${dev && ` (test code: ${this._testEventCode})`}.`
);
}
}