Event map
| Event | Event name | Trigger | Source |
|---|---|---|---|
| E1 | ViewContent | product pages (page view) | pixel |
| E2 | AddToCart | add button (click) | pixel |
| E3 | CompletePayment | order confirmation page (page view); backend when the order is paid | both |
E3 is sent by both the pixel and the Events API because you said the backend can send CompletePayment when the order is paid. E1 and E2 are pixel only, since no server source was named for them. TikTok recommends "Events API integration with your existing Pixel", so adding E1 and E2 to the backend later is an option, not a requirement here.
Deduplication rule
For E3 only: - Both sources send the same event name, CompletePayment, and the same event_id for the same order. TikTok says "You must share Event ID (event_id)" through both. - Suggested event_id: the order ID, so both sides can read it. This is my suggestion; please confirm your order ID is available on the confirmation page and in the backend (question 2). - TikTok deduplicates matching pixel and Events API events "after 5 minutes and within" 48 hours. Events matched outside that window are not covered by this rule in my sources.
Setup path
Manual Setup, because the site is custom Next.js and you named no partner. If you use Google Tag Manager, Partner Integration may fit instead (question 1).
- TikTok Ads Manager, Tools, Events Manager.
- Click Connect Data Source, choose Web, and enter https://glowbar-skin.example.
- Choose Manual Setup.
- Name the pixel: 'GlowBar Skin - Main Website Pixel'. Length: 33 characters including spaces, under the 128 character maximum.
- Add the pixel code and the E1 to E3 events to the site. HELD.
- Connect Events API for E3 with the shared event_id. HELD.
Test checklist
| Event | Test | Pass when |
|---|---|---|
| E1 | Open a product page | one ViewContent arrives |
| E2 | Click the add button once | one AddToCart arrives |
| E3 | Place a test order | pixel and Events API events arrive with the same event_id, counted once after deduplication |
Which TikTok screen shows test events is not confirmed in my sources; please check Events Manager on your side.
Counts
| Source | Events |
|---|---|
| pixel | 2 |
| Events API | 0 |
| both | 1 |
| Total events | 3 |
| Pixel name characters including spaces | 33 |
| Pixel name maximum (characters including spaces) | 128 |
| Dedup window, minutes after (start) | 5 |
| Dedup window, hours within (end) | 48 |
Questions for you
- Do you use Google Tag Manager on the site, or should the code go in by hand?
- Is the order ID available both on the confirmation page and in the backend when the order is paid?
- Consent and privacy requirements are not covered by my sources. Does your site need consent before the pixel loads?
Needs your decision
- Approve creating the pixel (step 4).
- Approve installing the code (step 5, HELD).
- Approve connecting Events API (step 6, HELD).