$ 29.99
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
eCommerce (website_sale)
• Discuss (mail) • Website (website) • Invoicing (account) |
| Lines of code | 1383 |
| Technical Name |
dotbd_tiktok_pixel_eapi |
| License | OPL-1 |
| Website | https://www.dotbdsolutions.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
eCommerce (website_sale)
• Discuss (mail) • Website (website) • Invoicing (account) |
| Lines of code | 1383 |
| Technical Name |
dotbd_tiktok_pixel_eapi |
| License | OPL-1 |
| Website | https://www.dotbdsolutions.com |
TikTok Pixel & Conversion API
Complete browser-side Pixel + server-side Conversion API (Events API) for Odoo 19
Automatic event deduplication — every event carries the same event_id on both sides.
14 events covered • SHA-256 Advanced Matching • ttclid & ttp support • Multi-website ready • Verified: 86 / 86 automated checks pass
How It Works
Every visitor action fires on two paths simultaneously — browser pixel and server-side Events API —
with the exact same event_id for deduplication.
1. Browser Pixel
ttq.load() + ttq.track() fires in the visitor’s browser.
All events include event_id, content_id, value, currency.
PII hashed client-side with crypto.subtle.
2. Server-Side EAPI
Odoo instantly relays the same event to TikTok Events API with the same event_id.
Server-side PageView fires in a background thread on every page render —
unaffected by ad blockers.
3. TikTok Deduplicates
TikTok matches Browser + Server by event_id → counts as one conversion.
You see “Server & browser” in the Overview chart.
No double-counting in ad attribution.
Real-world result: TikTok Events Manager Overview showing Server & browser deduplicated events
TikTok Events Manager Setup
Do these steps in TikTok Ads Manager before configuring Odoo.
Step A1 — Open your Pixel in Events Manager
Go to TikTok Ads Manager → Assets → Events. Open your pixel from Data sources. Copy the Pixel ID at the top — you’ll need it in Odoo. Note the Settings tab for generating the Access Token.
Step A2 — Enable Automatic Advanced Matching (AAM)
In Settings → Manage configurations, enable Automatic Advanced Matching and tick all fields: Email, Phone number, Name, Address, External ID. Also enable Allow first-party cookies and Allow enhanced data postback. This module pre-hashes all PII with SHA-256 before sending — TikTok requires AAM enabled to use them.
Step A3 — Set up Events API (EAPI) — Business Funnel
In Data connection → Events API, choose the E-commerce template. This module implements all events. Make sure all parameters are checked including event_id, content_id, content_name, content_type, currency, value, price, brand, content_category, ttclid, ip, user_agent, ttp.
Step A4 — Generate Events API Access Token
In the Events API setup wizard, click Generate access token. Copy it immediately — TikTok will not save it after you leave this page. Paste it into Odoo as the Events API Access Token.
Step A5 — Complete the Pixel Setup Guide
TikTok will show a 3-step guide: Install base code → Set up event funnels → Implement custom code. Since this Odoo module handles everything, just click through. At step 4 (Verify), use Go to Test events to verify events after installing the module.
Odoo Configuration
After installing the module, configure it in Odoo in under 2 minutes.
Step B1 — Enter Pixel ID and Access Token in Odoo Settings
Go to Website → Configuration → Settings and scroll to TikTok Pixel & Events API. Enable the toggle, enter your Pixel ID and Access Token from Step A1/A4. Optionally enter the Test Event Code (e.g. TEST82275) for verifying events without affecting real campaign data. Save — pixel injects immediately on all pages.
Step B2 — (Optional) Per-Website Override for Multi-Website
If you run multiple Odoo websites with separate TikTok ad accounts, go to Website → Configuration → Websites, open each website record, and set a different Pixel ID / Access Token on the TikTok Pixel tab. Each website can track to a different TikTok pixel independently.
Verify It’s Working
Use TikTok’s Test Events tab to confirm both Browser and Server events are firing and deduplicating.
Step C1 — Open your site from TikTok Test Events
In Events Manager → Test events, enter your website URL and click
Open website. This generates a ?tt_test_id=… URL that
links your browser session to the Test Events panel. Navigate to a product or course page.
Events appear in real-time within seconds.
Step C2 — See Browser + Server events in Test Events
Browse your site. You will see both Browser (from ttq.track())
and Server (from Events API relay) entries for every event.
TikTok deduplicates them by matching event_id — no double counting in attribution.
Step C3 — Inspect event details: event_id, content_id, value, currency
Click any event in the Test Events panel to see the full payload:
event_id (same on browser + server pair), content_id,
content_name, value, currency,
hashed customer info (email, phone, external_id, ip, user_agent).
Key Features
event_id on Every Event
Every event — browser and server — always carries a unique event_id.
PageView: server-pre-generated UUID. Commerce: shared UUID. Purchase: deterministic purchase_<order_id>.
14 Events — Full Funnel
PageView, ViewContent, AddToCart, InitiateCheckout, AddPaymentInfo, PlaceAnOrder, Purchase, CompleteRegistration, Search, AddToWishlist, Subscribe, Contact, SubmitForm, SubmitApplication.
Advanced Matching
SHA-256 hashed email, phone (E.164), external_id for logged-in users via ttq.identify().
Anonymous users matched from form fields hashed with crypto.subtle.
Cart Snapshot Across Funnel
Cart contents persisted to sessionStorage after AddToCart.
InitiateCheckout, AddPaymentInfo, PlaceAnOrder all carry full product data
even if user logged in mid-session.
Smart Content Detection
ViewContent fires only on real detail pages (products, eLearning courses, lessons, events, blog posts). Listing pages, homepage, funnel pages are correctly excluded.
Purchase Safety Guard
Purchase only fires when order.state = sale/done.
Failed or pending payments never generate false conversions.
ttclid & ttp Support
TikTok Click ID (ttclid) from URL and _ttp cookie forwarded to EAPI
on every server-side event for strongest attribution.
Multi-Website Ready
Global Pixel ID + Token as default. Override per website with different credentials. Each website tracks to a different TikTok ad account independently.
Coexists with Meta Pixel
Full method-name isolation from dotbd_meta_pixel_capi.
Both modules install and run simultaneously with zero conflicts on all shared Odoo models.
Dot BD Solutions Limited
Odoo Gold Partner • TikTok & Meta Pixel experts • Bangladesh & global clients
Author: Rafiur Rahman Rafit
www.dotbdsolutions.com
+880 1712-345678
Find Us Online
facebook.com/dotbdsolutions
linkedin.com/company/dotbdsolutions
youtube.com/@dotbdsolutions
WhatsApp Support
19.0 OPL-1 TikTok Events API v1.3
Copyright © 2026 Dot BD Solutions Limited
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module