Why are the events showing as "custom" in TikTok Pixel?
When you use ttq.track(event, args);, TikTok Pixel receives the event exactly as sent, without any automatic mapping to standard TikTok events. If your event names don’t match TikTok’s predefined events (e.g., AddToCart, CompletePayment, ViewContent), TikTok will treat them as custom events.
How can I ensure TikTok recognizes my events correctly?
To have TikTok properly categorize your events (such as AddToCart, CompletePayment, ViewContent), you need to manually map your internal event names to TikTok’s supported standard events.
List of the Events:
StartOnboarding
AbTestLoaded
ScreenDidAppear
LeftNavbarButtonPressed
RightNavbarButtonPressed
CloseNavbarButtonPressed
FirstFooterButtonPressed
SecondFooterButtonPressed
PurchaseFooterButtonPressed
StripePaymentElementButtonPressed
StripePaymentElementConfirmButtonPressed
StripePaymentElementWidgetShown
StripePaymentElementWidgetHidden
RestoreFooterLabelPressed
RestoreHeaderLabelPressed
FieldInputValueError
UserUpdatedValue
ProductSelected
ScreenDisappeared
SwitchedToNewScreenOnTimer
OnboardingFinished
HookEvent
HookEventResult
HookEventError
CustomScreenCallback
StripeCheckoutSessionCreated
StripeCustomerCreated
StripeSubscriptionCreated
StripeSubscriptionSuccess
StripePaymentIntentCreated
StripePaymentIntentSuccess
StripeSetupIntentCreated
StripeSetupIntentSuccess
StripeCheckoutSessionRedirectError
StripeExpressCheckoutError
StripePaymentElementError
StripePaymentElementMethodSet
StripeCheckoutSessionSuccess
StripeCheckoutSessionCancel
AcceptCookiesPressed
DeclineCookiesPressed
Example of Mapping to TikTok Standard Events
To ensure TikTok recognizes key events, map them like this:
const tikTokEventMap = {
StartOnboarding: 'InitiateCheckout',
ProductSelected: 'ViewContent',
PurchaseFooterButtonPressed: 'CompletePayment',
StripeSubscriptionSuccess: 'Subscribe',
// Other events remain custom
};
function trackToTikTok(event, args) {
const mappedEvent = tikTokEventMap[event] || event;
if (typeof ttq === 'function') {
ttq.track(mappedEvent, args);
}
}