TikTok’s ad platform optimizes campaigns using signals from your TikTok Pixel. Without the right standard events implemented, your campaigns optimize for the wrong objective — or can’t optimize at all. Many advertisers implement only ViewContent and miss the crucial downstream events that tell TikTok’s algorithm who actually converts. This guide covers TikTok’s standard event hierarchy, which events matter for each campaign objective, and how to implement them correctly.

TikTok Standard Event Hierarchy

  • Top of Funnel: ViewContent, Search
  • Middle of Funnel: AddToWishlist, AddToCart, InitiateCheckout
  • Bottom of Funnel: AddPaymentInfo, PlaceAnOrder, Subscribe
  • Conversion: CompletePayment (most important)
  • Engagement: ClickButton, SubmitForm, Download, Contact

CompletePayment: The Critical Event

CompletePayment is TikTok’s equivalent of a purchase event. Without it, TikTok can’t optimize for purchase conversions. Your campaign optimization objective “Purchase” has no signal to learn from — TikTok may optimize for ViewContent instead, driving traffic with zero purchase intent.

// TikTok Pixel: CompletePayment on thank-you page
ttq.track('CompletePayment', {
  content_type: 'product',
  content_id: 'product_123',
  content_name: 'Blue Running Shoes',
  quantity: 2,
  price: 59.99,
  value: 119.98,
  currency: 'USD',
  order_id: 'order_789',
  // Enhanced matching (improves Event Match Quality)
  email: hashPII(customer.email),
  phone_number: hashPII(customer.phone)
});

Event Match Quality (EMQ)

  • EMQ 9-10 (Excellent): Email + phone + IP + user agent all passed
  • EMQ 7-8 (Good): Email or phone passed
  • EMQ 4-6 (Fair): IP + user agent only
  • EMQ 1-3 (Poor): Cookie only — vulnerable to iOS opt-outs
TikTok Pixel Standard Events: Which Events Are Required for Ad Optimization
// Improve EMQ: identify logged-in users
ttq.identify({
  email: hashPII(user.email),
  phone_number: hashPII(user.phone),
  external_id: hashPII(user.userId)
});

// SHA-256 hash function
async function hashPII(value) {
  if (!value) return null;
  const normalized = String(value).toLowerCase().trim();
  const msgBuffer = new TextEncoder().encode(normalized);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  const hashArray = Array.from(new Uint8Array(hashBuffer));
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

Events Required by Campaign Objective

  • Purchase/Conversion Campaigns: CompletePayment required + AddToCart, InitiateCheckout recommended
  • Lead Generation: SubmitForm or Contact required + ClickButton recommended
  • App Install: Use TikTok Mobile SDK (not web pixel) + Install event

Deduplication with Events API

// Use event_id for deduplication between pixel and Events API
const eventId = `event_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;

ttq.track('CompletePayment', {
  value: 119.98,
  currency: 'USD',
  order_id: 'order_789',
  event_id: eventId  // Unique ID
});

// Server-side Events API uses same event_id
// TikTok deduplicates based on event_id within 48 hours

TikTok’s algorithm needs at least 50 CompletePayment events per week per ad group to enter the learning phase for purchase optimization. Below this threshold, campaigns stay in learning phase and performance is unpredictable.

Related guides: TikTok Event Matching Quality, TikTok vs GA4 Reconciliation, Meta Conversions API.

Guide: TikTok Pixel Standard Events: Which Events Are Req

Leave a Comment