The Conversion Pixel answers a key question: "how many bookings did WeSpeak generate for me?". When the guest ends up booking in your booking engine, the Pixel detects that booking and connects it to the conversation that originated it — with its amount — so you see it in your panel next to the rest of your metrics.
ℹ️ The Pixel is for accounts where the booking is completed in the hotel's booking engine. If you charge with WeSpeak Payments you don't need it: there the booking is already fully registered inside the platform, and the two features aren't used at the same time.
In this article
- What it is and how it works
- What your booking engine needs to support
- How it's activated and where your code lives
- How to install it
- The test booking
- What it measures and what it doesn't
- Where you see the results
- The Pixel and your other measurements (Analytics, Meta)
- Frequently asked questions
What it is and how it works
It's a small measurement code installed once in your booking engine — not on the hotel's website. The mechanics are the same as any measurement pixel (like Google's or Meta's), but with a single purpose: attributing bookings to the assistant.
- When the assistant sends your engine's link in a conversation, that link travels with an anonymous click identifier.
- The guest opens the link and the Pixel saves that identifier in their browser.
- If they complete the booking, the engine emits its standard purchase notice — an internal notification with the booking number, amount, and currency — and the Pixel reports it to WeSpeak.
- WeSpeak connects that booking to the conversation that originated it. If you also use Audience, the journey is closed end to end: campaign → conversation → booking → amount.
What your booking engine needs to support
| Condition | How to know if your engine meets it |
|---|---|
| Allowing the code to be inserted | Many engines have a "Scripts" or "custom code" section in their panel — ask your engine provider where it is. The engine already loading Google Tag Manager works too. |
| The code loading on every page | The Pixel needs to see the guest's arrival at the engine, not just the end: it must load on every page of the booking flow, including the confirmation page. |
| Emitting the purchase notice | When a booking is confirmed, the engine must emit the standard purchase notice (booking number, amount, and currency). It's a question your engine provider can answer in a minute. |
Also:
- Not every engine is compatible. The list of verified engines keeps growing: ask your advisor about yours. If it hasn't been verified yet, the first installation includes a validation test to confirm it (below).
- One code per hotel. Each property has its own code and they're not interchangeable: if you have several hotels with separate engines, each one gets its own.
How it's activated and where your code lives
Activation is done by the WeSpeak team: write to your advisor and they'll coordinate it with you. Once active, your code appears at the end of the Channels page (app.wespeak.pro/channels), ready to copy. It's a single line, similar to this:
<script async src="https://tag.wespeak.pro/wstag.js?id=YOUR-CODE"></script>
You can hand it directly to your marketing team, your agency, or the engine provider — and we'll walk you through the process.
ℹ️ The Pixel is in beta and has no additional cost. If it doesn't convince you, it gets deactivated and everything goes back to how it was.
How to install it
There are two paths and you use only one — the result is exactly the same; the only thing that changes is where the code gets pasted.
Directly in the engine (recommended). Many engines have a special section for this in their panel — "Scripts", "Custom code", or similar. Ask your engine provider where it is:
- Paste your hotel's code in that section, so it loads on every page of the booking flow, including the confirmation (if the panel lets you limit it per page, don't).
- Save the changes.
- Tell your advisor: the WeSpeak team validates the measurement with the test booking (below) before considering the installation active.
With Google Tag Manager (alternative). If your hotel already uses GTM and the container loads in the engine, it can also be installed there — with the advantage that Preview lets you test on the spot:
- Tags → New → Tag Configuration → Custom HTML.
- Paste your hotel's code.
- Under Triggering, choose All Pages. This matters: the Pixel needs to see the guest's arrival at the engine, not just the confirmation page.
- Name the tag (suggestion: WeSpeak - Booking measurement) and Save.
- Test with Preview, entering the engine from a link sent by the assistant.
- Submit → Publish. A tag that's saved but not published measures nothing.
If the engine has no scripts section and doesn't load your Tag Manager, check with your advisor: it's reviewed case by case with the provider.
⚠️ If your engine shows a cookie banner, the tag should fire only once analytics consent has been given — let your advisor know and it gets reinforced on WeSpeak's side too.
The test booking
With the code installed, what's left is confirming that everything measures end to end. The golden rule: the test has to start from the link the assistant sends in the chat. If you enter the engine directly (typing the address or from Google), there's no click to attribute and the booking won't show up even if the code is perfect — it's the number one cause of "I ran the test and it doesn't appear".
- Write to the hotel's WhatsApp and ask for availability, until the assistant sends you the booking link.
- Open the engine from that link, in the same browser, accepting the cookies.
- Complete the booking up to the confirmation screen (a cancellable or test rate is fine).
- Tell your advisor: the attributed booking appears within minutes and gets verified on both sides.
If your engine wasn't on the verified list yet, this same test confirms that it emits the purchase notice the Pixel needs. If it didn't emit it, it's detected here and raised with your provider — in the meantime, the installed code doesn't interfere with anything.
What it measures and what it doesn't
The Pixel's number is a floor, not a total: it guarantees a verified minimum of bookings generated by the assistant, but there are situations no pixel on the market can capture.
| Situation | Is it attributed? |
|---|---|
| The guest opens the assistant's link and books in the engine | ✅ Yes — even if they book days later (up to 30 days after the click) |
| They reload the confirmation page | ✅ The booking is counted only once |
| They receive the link on their phone but book from their computer | ❌ The trail is cut when they switch devices |
| They reject the engine's cookies | ❌ Without cookies there's no measurement (common with European guests) |
| They book by phone, email, or at the front desk | ❌ It doesn't go through the browser — mark it in the funnel |
| They book through Booking, Expedia, or another OTA | ❌ The Pixel only measures your booking engine |
That's why the Pixel and your team's work in the funnel complement each other: the panel adds up the bookings detected by the Pixel plus the conversations marked as "Booked" by hand. The Pixel is the net that catches what the team didn't get to log; manual logging covers what the Pixel can't see. The better they coexist, the more complete the total.
Privacy: the Pixel doesn't collect your guests' personal data — no name, no email, no phone, no payment details. It only stores the anonymous click identifier and reports the booking number, amount, and currency.
And it doesn't touch your engine: the Pixel doesn't modify prices, availability, or the booking flow — it only listens for the purchase notice the engine itself emits.
Where you see the results
- Panel: the bookings card now includes the ones detected in the engine, with their breakdown.
- In each conversation: a badge shows it ended in a booking, with the amount and date.
- Funnel: the conversation that generated the booking moves to "Booked" automatically, with its value — without anyone marking it.
- Business Intelligence: you see what share of your won conversations has a detected booking.
- Audience: each source's funnel reflects the bookings detected by the Pixel — the conversation shows as won, with its amount. (Audience's bookings and revenue cards show only WeSpeak Payments charges.)
The Pixel and your other measurements (Analytics, Meta)
The Pixel doesn't touch your other tools. It doesn't read, modify, or write anything in Google Analytics, it doesn't interfere with your UTMs or Meta's attribution, and it coexists without issues with the pixels you already have installed. They're separate measurements answering different questions about the same booking:
- In WeSpeak, the booking is attributed to the conversation that originated it: "the assistant generated this booking".
- In Analytics and Meta, the booking keeps being counted as it is today, with their own rules.
Have you noticed that in Analytics the bookings that go through WhatsApp lose their source reference? That happens before the Pixel and independently of it: when jumping from the campaign to WhatsApp and from there to the engine, the browser starts a new session and Analytics no longer sees the original UTM. The Pixel doesn't change that in Analytics, but it covers the gap on the other side: it connects the booking to the conversation that generated it, which is exactly what wasn't visible anywhere before.
💡 Besides the Pixel, every engine link the assistant sends already travels with
utm_source=wespeak: if your engine preserves the parameters, you can identify the visits coming from the chat in your own analytics.
Frequently asked questions
I ran the test booking and it doesn't appear.
Check the most common causes, in order: did you enter the engine from the assistant's link (not directly)? Did you book in the same browser where you opened the link? Did you accept the cookies? And if it was installed with Tag Manager: was the tag published, not just saved?
Does it count bookings from Booking, Expedia, or other OTAs? What about phone bookings?
No. The Pixel only measures your booking engine. Bookings closed through other channels are registered by marking the conversation as "Booked" in the funnel, with its amount.
Does it work with my booking engine?
The list of verified engines keeps growing — ask your advisor about yours. As a quick reference: if your engine's panel allows adding scripts or custom code — or it already loads Google Tag Manager — it's very likely possible; and the test booking confirms it before considering it installed.
Can I use it together with WeSpeak Payments?
It's not needed and they're not used at the same time: with Payments the booking and the payment happen inside the platform, so everything is already measured end to end. The Pixel exists for the other scenario: when the booking is completed in your engine.
Does it affect my Google Analytics or my campaigns?
No. The Pixel doesn't read or write anything in Analytics, and it doesn't interfere with your UTMs or Meta's attribution. The only thing it reports to WeSpeak is the anonymous click identifier, the booking number, the amount, and the currency.
Does it collect my guests' data?
No — no name, no email, no phone, no payment details.
Does it have a cost?
No, the Pixel has no additional cost.
Why is the Pixel's number lower than my actual bookings?
Because it's a floor: it doesn't capture guests who switch devices or reject cookies. The complete total comes from combining it with an up-to-date funnel.