and runs during HTML parse, but hubspotutk is set by
js.hs-analytics.net, measured loading at ~834ms. On a first visit the cookie
does not exist yet, so a single read returns nothing and the visitor gets no
external ID at all — and a first visit is exactly what an ad click is. So
poll briefly until HubSpot sets it. The SDK loads lazily (~4.5s) and replays
a queue, so an init queued a second or two in still lands before any events
are transmitted. */
(function attachExternalId() {
var attempts = 0;
var MAX_ATTEMPTS = 40; /* 40 x 200ms = 8s, then give up quietly */
var timer = null;
function tryAttach() {
var raw = getExternalId();
if (!raw) {
if (++attempts >= MAX_ATTEMPTS && timer) clearInterval(timer);
return;
}
if (timer) clearInterval(timer);
sha256Hex(raw).then(function (hash) {
oaiq("init", { user: { external_id_sha256: hash } });
}).catch(function () {});
}
tryAttach(); /* returning visitor: immediate */
if (!getExternalId()) timer = setInterval(tryAttach, 200);
})();
/* ---------------------------------------------------------------------------
2. Load the SDK off the critical path
Whichever comes first: the main thread going idle after load, or the first
sign of real user intent. No preconnect on purpose — a TLS handshake during
LCP for a script we deliberately deferred is a net loss.
Measured on clickpost.ai: load event 3614ms, SDK fetched 4508ms.
------------------------------------------------------------------------ */
var loaded = false;
var INTENT = ["pointerdown", "keydown", "scroll"];
function loadSdk() {
if (loaded) return;
loaded = true;
INTENT.forEach(function (t) { removeEventListener(t, loadSdk, { passive: true }); });
var s = document.createElement("script");
s.src = SDK;
s.async = true;
s.fetchPriority = "low";
document.head.appendChild(s);
}
INTENT.forEach(function (t) {
addEventListener(t, loadSdk, { passive: true, once: true });
});
addEventListener("load", function () {
window.requestIdleCallback
? requestIdleCallback(loadSdk, { timeout: 2500 })
: setTimeout(loadSdk, 1500);
}, { once: true });
/* ---------------------------------------------------------------------------
3. Conversion id
sha256(lowercase(email) + "|" + formId + "|" + ISO-hour), first 20 hex,
"lead_" prefix.
- email lowercased/trimmed so casing does not fork the id
- formId keeps two different forms in the same hour from colliding
- the hour bucket is only the server's fallback; the id computed here is
sent to the relay verbatim, so the two paths cannot disagree even when
a submit straddles an hour boundary
Ads Manager's own sample omits event_id. We send it so the pixel event and
the relay event collapse into one conversion instead of counting twice.
------------------------------------------------------------------------ */
function buildEventId(email, formId) {
var seed = [
String(email || "").trim().toLowerCase(),
String(formId || ""),
new Date().toISOString().slice(0, 13)
].join("|");
return crypto.subtle.digest("SHA-256", new TextEncoder().encode(seed)).then(function (buf) {
var hex = Array.prototype.map.call(new Uint8Array(buf), function (b) {
return b.toString(16).padStart(2, "0");
}).join("");
return "lead_" + hex.slice(0, 20);
});
}
/* Guards a re-fire from the history.pushState that book-a-demo-core.js runs
after submit, and from back-navigation onto the same state. */
function firedOnce(id) {
try {
if (sessionStorage.getItem("oaiq_" + id)) return true;
sessionStorage.setItem("oaiq_" + id, "1");
return false;
} catch (e) {
return false; /* private mode / blocked storage: fire rather than lose it */
}
}
/* Path 2. keepalive lets the request finish even if the page navigates away.
Failures are swallowed deliberately: a reporting call must never surface an
error to someone who just submitted a form.
The relay hashes the email server-side into user.emails_sha256 and adds the
caller's IP and user agent, so this event carries the same match signals the
pixel gets for free. */
function sendToRelay(email, formId, eventType, eventId) {
try {
var payload = {
token: RELAY_TOKEN,
email: email,
form_id: formId || "",
event_type: eventType,
event_id: eventId, /* verbatim, so both paths always match */
source_url: location.href
};
var oppref = getOppref();
if (oppref) payload.oppref = oppref;
var externalId = getExternalId();
if (externalId) payload.external_id = externalId;
fetch(RELAY_URL, {
method: "POST",
keepalive: true,
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
}).catch(function () {});
} catch (e) {}
}
/* Capture the email while the form is still on the page. onFormSubmitted does
not reliably carry submissionValues, and by then the form may be removed. */
var lastEmail = "";
document.addEventListener("submit", function (e) {
var f = e.target;
if (!f || !f.querySelector) return;
var i = f.querySelector('input[name="email"], input[type="email"]');
if (i && i.value) lastEmail = i.value;
}, true);
/* Every HubSpot form on the site reports through this one message event, so no
module or theme JS needs editing to add coverage. */
window.addEventListener("message", function (e) {
var d = e.data;
if (!d || d.type !== "hsFormCallback" || d.eventName !== "onFormSubmitted") return;
var email = (d.data && d.data.submissionValues && d.data.submissionValues.email) || lastEmail;
if (!email) return; /* without an email there is no stable id to dedupe on */
var eventType = EVENT_BY_FORM[d.id] || EVENT_DEFAULT;
buildEventId(email, d.id).then(function (id) {
if (firedOnce(id)) return;
oaiq("measure", eventType, { type: DATA_TYPE }, { event_id: id }); /* path 1 */
sendToRelay(email, d.id, eventType, id); /* path 2 */
});
});
})();
Track USPS Packages with the ClickPost Tracking Page
Find your USPS tracking number from your order confirmation or shipping notification.
Open the ClickPost Tracking Page for your brand.
Paste the tracking number into the search field.
Click Track to view live shipment status, expected delivery date, and milestones.
Track USPS Packages on the USPS Official Page
Go to the official USPS website.
Locate the tracking tool on the homepage.
Enter your USPS tracking number in the search field.
Click the tracking icon to view real-time shipment updates and delivery details.
List of USPS APIs
API
Description
Manifestation and Label Generation API
Automate USPS order manifestation and generate shipping labels instantly, no manual intervention required at dispatch.
Track Shipment API
Pull real-time USPS tracking updates and keep customers informed at every delivery stage via a unified ClickPost dashboard.
Cancellation API
Cancel USPS shipments on demand via ClickPost whenever an order needs to be stopped or modified, no manual carrier requests needed.
EDD API
Display accurate USPS delivery timelines on product and checkout pages to set clear customer expectations and reduce inbound queries
NDR Action Update
Monitor all USPS non-delivery cases from a single dashboard, act quickly on failures, and push corrected instructions back to the carrier.
Return Webhooks
Allow customers to initiate USPS returns seamlessly using integrated webhooks that trigger automated reverse logistics workflows.
API & Description
Manifestation and Label Generation API
Automate USPS order manifestation and generate shipping labels instantly, no manual intervention required at dispatch.
Track Shipment API
Pull real-time USPS tracking updates and keep customers informed at every delivery stage via a unified ClickPost dashboard.
Cancellation API
Cancel USPS shipments on demand via ClickPost whenever an order needs to be stopped or modified, no manual carrier requests needed.
EDD API
Display accurate USPS delivery timelines on product and checkout pages to set clear customer expectations and reduce inbound queries
NDR Action Update
Monitor all USPS non-delivery cases from a single dashboard, act quickly on failures, and push corrected instructions back to the carrier.
Return Webhooks
Allow customers to initiate USPS returns seamlessly using integrated webhooks that trigger automated reverse logistics workflows.
Frequently asked questions
Everything you need to know about ClickPost’s Carriers Integration
How does ClickPost use AI for Carrier Allocation?
ClickPost uses AI-driven algorithms to analyze multiple factors, such as cost, turnaround times, SLA Adherence for carriers, to recommend the best carrier for each shipment.
How does ClickPost use AI for Carrier Allocation?
ClickPost uses AI-driven algorithms to analyze multiple factors, such as cost, turnaround times, SLA Adherence for carriers, to recommend the best carrier for each shipment.
How does ClickPost use AI for Carrier Allocation?
ClickPost uses AI-driven algorithms to analyze multiple factors, such as cost, turnaround times, SLA Adherence for carriers, to recommend the best carrier for each shipment.
How does ClickPost use AI for Carrier Allocation?
ClickPost uses AI-driven algorithms to analyze multiple factors, such as cost, turnaround times, SLA Adherence for carriers, to recommend the best carrier for each shipment.
What is USPS, and what shipping services does it offer?
USPS (United States Postal Service) is the official postal carrier of the United States, offering domestic and international delivery services including Priority Mail Express, Military and Diplomatic Mail, and reverse logistics. It is widely used by e-commerce brands for cost-effective last-mile delivery across the US.
How do I track a USPS shipment?
Enter your USPS tracking number on the USPS website to view real-time delivery updates. For a branded experience with milestones and EDD, use ClickPost's unified tracking page linked to your store.
Does USPS support international and military mail delivery?
Yes. USPS offers Priority Mail Express International and dedicated Military and Diplomatic Mail services. Through ClickPost, these service lines are tracked and managed from a single platform with automated status updates.
How does ClickPost integrate with USPS?
ClickPost integrates with USPS via API for order creation, label generation, real-time tracking, NDR management, cancellations, and return webhooks. All shipment data syncs automatically once the integration is active.
How does ClickPost handle USPS delivery exceptions and delays?
ClickPost monitors every USPS shipment in real time and flags exceptions,, delays, stuck shipments, and failed scans, before they escalate. Automated alerts notify your team instantly, enabling proactive resolution and strong SLA adherence.
How does ClickPost automate NDR management for USPS shipments?
ClickPost centralises all USPS NDR cases in one dashboard, automatically contacts customers via WhatsApp or SMS to resolve failed deliveries, and pushes corrected instructions back to USPS, automating 90% of NDRs without manual effort.
Streamline your shipping experience with ClickPost