Meta Conversions API (CAPI) Event Match Quality Diagnostic & Normaliser
Interactive normalisation tool for Meta CAPI customer parameters. Normalise phone numbers to E.164, inspect SHA-256 hashes, and predict Event Match Quality scores.
Meta CAPI Event Match Quality (EMQ) Diagnostic & Normaliser
Signal Loss & Privacy ToolTest real-time string normalisation for email, E.164 phone formats and address parameters. Inspect SHA-256 hashed outputs and predict your CAPI Event Match Quality score.
Raw First-Party Customer Parameters
Browser Cookie Signals
Predicted Event Match Quality
SHA-256 Hashed Output Inspector
Generated CAPI Server Payload Preview
{
"event_name": "Purchase",
"event_time": 1787396400,
"event_id": "order_12847_1787396400",
"action_source": "website",
"user_data": {
"em": [],
"ph": [],
"fn": [],
"ln": [],
"zp": [
"3121"
],
"country": [
"au"
],
"fbp": "fb.1.1718000000.123456789",
"fbc": "fb.1.1718000000.IwAR234...",
"external_id": [
"usr_c74a9e2f"
]
}
}How Event Match Quality Affects Ad Delivery
Event Match Quality measures how effectively Meta matches server events with active user profiles. Hashed email and E.164 phone numbers deliver the largest improvements. Including browser cookie identifiers like fbp and fbc lifts match rates above 8.5 out of 10.
Implementation Code & Script
Production TypeScript helper to normalise phone numbers to E.164 format and compute SHA-256 hashes prior to dispatch.
export async function hashSha256(value: string): Promise<string> {
const clean = value.trim().toLowerCase();
if (!clean) return '';
const buffer = new TextEncoder().encode(clean);
const hashBuffer = await crypto.subtle.digest('SHA-256', buffer);
return Array.from(new Uint8Array(hashBuffer))
.map((b) => b.toString(16).padStart(2, '0'))
.join('');
}
export function normaliseAustralianPhone(phone: string): string {
const digits = phone.replace(/[^\d+]/g, '');
if (digits.startsWith('04') && digits.length === 10) {
return '+614' + digits.slice(2);
}
if (digits.startsWith('0') && digits.length === 10) {
return '+61' + digits.slice(1);
}
return digits.startsWith('+') ? digits : '+' + digits;
}How to cite and attribute this tool
MIT LicenceThis resource is free, open and un-gated under the MIT Open Source Licence. You are encouraged to use, integrate and cite it with attribution:
@misc{geraghty_meta_capi_emq_diagnostic,
author = {Geraghty, Gordon},
title = {Meta Conversions API (CAPI) Event Match Quality Diagnostic & Normaliser},
year = {2026},
url = {https://gordongeraghty.com/resources/gtm-analytics/meta-capi-emq-diagnostic},
note = {Head of Performance, Empire Amplify}
}Changelog & Version History
v1.0.0Initial release with E.164 phone normalisation and client-side SHA-256 hashing inspection.