Events are defined as actions a website visitor takes to achieve a business goal, like adding an item to a cart, filling out a form, or making a purchase. Events can result from a TikTok ad (paid), or can come organically (unpaid). Events help you build marketing audiences, optimize ad delivery, and measure campaign performance.
Example:
For E-commerce clients, we recommend creating an event for each step along the customer journey on your website. This means one event is created for when a visitor browses the product details page and one event is created for when a visitor completes a purchase. You can then set your most-valued event as the Optimization Goal to measure and optimize the effectiveness of your ads.
Tracking methods help you set up and assign rules to events that you want to track, like "add to cart" or "complete payment". For each event, there are 2 types of tracking methods to choose from:
Click Events: Count every time someone clicks on a specific element on your website as an event. This could be adding something to a cart, submitting a form, or downloading an app. Click events use web elements of the buttons or links that you want to track.
URL Events: Count user visits to specific pages on your website as events. This could include the confirmation page after a "complete payment" or a "thank you" page. URL events use keywords contained in the URL of the page you want to track.
Below is a list of Standard Events currently supported with our web attribution solutions such as TikTok Pixel or Events API. With any of the standard events, you can send parameters, or additional information about the visitor's actions, like total price of an order or product name and category. If you're unsure of what parameters to use, refer to our 'recommended parameters' in the table.
Event type | Description | Recommended parameters | Event Codes |
Add Payment Info | When a visitor adds their payment information at checkout. | ttq.track('AddPaymentInfo') | |
Add to Cart | When a visitor adds an item to the cart. | content_type, quantity, description, content_id, currency, value | ttq.track('AddToCart') |
Add to Wishlist | When a visitor adds an item to the wishlist. | ttq.track('AddToWishlist') | |
Click Button | When a visitor taps a button. TikTok recommends tracking website buttons important to your business, such as social media buttons. | ttq.track('ClickButton') | |
Complete Payment | When a visitor makes a payment. TikTok recommends using this event when placing an order and making a payment are the same. | content_type, quantity, description, content_id, currency, value | ttq.track('CompletePayment') |
Complete Registration | When a visitor signs up for something such as account registration. | ttq.track('CompleteRegistration') | |
Contact | When a visitor contacts you. | ttq.track('Contact') | |
Download | When a visitor downloads something from your website. | ttq.track('Download') | |
Initiate Checkout | When a visitor proceeds to checkout. | ttq.track('InitiateCheckout') | |
Place an Order | When a visitor places an order. TikTok recommends using this event when placing an order and making a payment are not the same. | content_type, quantity, description, content_id, currency, value | ttq.track('PlaceAnOrder') |
Search | When a visitor searches. | query | ttq.track('Search') |
Submit Form | When a visitor submits a form. | ttq.track('SubmitForm') | |
Subscribe | When a visitor subscribes to your website including follows, content, or paid subscriptions. | ttq.track('Subscribe') | |
View Content | When a visitor views a specific page. TikTok recommends tracking pages important to your business such as product comparison, announcement, or release pages. | content_type, quantity, description, content_id, currency, value | ttq.track('ViewContent') |
Note: By default, the pixel base code will always include 'page view' events which tracks when a visitor lands on your website.
Below is a list of parameters supported with pixel. For more information about implementing parameters, please review our developer documentation.
Parameter name | Description | Value type | JavaScript | Required for Return on Ad Spend (ROAS) | Required for Dynamic Showcase Ads (DSA) | Required for Value-based Optimization (VBO) |
content_type | The content_type object property's value must be set to either product, or product_group, depending on how you will configure your data feed when you set up your product catalog. If you will be tracking events associated with individual products, set the value to product. If you are tracking events associated with product groups, set it to product_group instead. | Must be either 'product' or 'product_group' | { "content_type" : "product" } | ✅ | ||
content_id or contents | Use contents when you have multiple content IDs. If you use contents in your parameter, you must also include the following in a sub-object: the product id or ids, and the quantity (number of items added to cart or purchased). | Must be a string if using 'content_id'Must be an array of objects (content parameter, id sub-object and quantity sub-object) if using 'contents' | { "content_id" : "401"} | ✅ | ||
content_category | Category of the page/product. | string | { "content_category" : "apparel"} | |||
content_name | Name of the page/product. | string | { "content_name" : "shirt"} | |||
currency | ISO 4217 code. Examples: "EUR", "USD", "JPY"List of currencies currently supported:AED, ARS, AUD, BDT, BHD, BIF, BOB, BRL, CAD, CHF, CLP, CNY, COP, CRC, CZK, DKK, DZD, EGP, EUR, GBP, GTQ, HKD, HNL, HUF, IDR, ILS, INR, ISK, JPY, KES, KHR, KRW, KWD, KZT, MAD, MOP, MXN, MYR, NGN, NIO, NOK, NZD, OMR, PEN, PHP, PHP, PKR, PLN, PYG, QAR, RON, RUB, SAR, SEK, SGD, THB, TRY, TWD, UAH, USD, VES, VND, ZAR | enum(string) | { "currency" : "USD"} | ✅ | ||
value | Value of the order or items sold. Note: Price is the price for a single item, and value is the total price of the order. For example, if you have two items each sold for ten dollars, the price parameter would pass 10.00 and the value parameter would pass 20.00. Values should always be formatted as an integer or decimal (ex: 0.00) regardless of the location, currency, etc. It cannot contain any currency signs, special characters, letters, or commas. | { "value" : 0.00} | ✅ | ✅ | ||
price | The price of the item. Note: Price is the price for a single item, and value is the total price of the order. For example, if you have two items each sold for $10, the price parameter would pass 10 and the value parameter would pass 20. | number | { "price" : 25} | |||
quantity | The number of the item | number | { "quantity": 4} | |||
query | The text string that was input by a user. For instance, if a person searches for a product on your website, you can forward the keyword being searched. If a person enters a coupon code at check out, you can forward the code. | string | { "query" : "SAVE10COUPON"} | |||
description | Description of the item or page. | string | { "description" : "Lightweight cotton"} | |||
status | Status of an order, item, or service.Note: Depending on your use of 'status', Events API may be required in order to share status changes to TikTok. | string | { "status" : "submitted" } |
Note: Price is the price for a single item, and value is the total price of the order. For example, if you have two items each sold for $10, the price parameter would pass 10 and the value parameter would pass 20.
AED, ARS, AUD, BDT, BHD, BIF, BOB, BRL, CAD, CHF, CLP, CNY, COP, CRC, CZK, DKK, DZD, EGP, EUR, GBP, GTQ, HKD, HNL, HUF, IDR, ILS, INR, ISK, JPY, KES, KHR, KRW, KWD, KZT, MAD, MOP, MXN, MYR, NGN, NIO, NOK, NZD, OMR, PEN, PHP, PHP, PKR, PLN, PYG, QAR, RON, RUB, SAR, SEK, SGD, THB, TRY, TWD, UAH, USD, VES, VND, ZAR.
If you plan to use DSA, these parameters can either be set at the root level or be set under each item of the contents array. See the required events and parameters in this document.
You can set up dynamic values which pass dynamic event-related values to TikTok. Check with your website developer to set up dynamic values for your events. By doing so, this dynamic code will automatically determine the correct values of your event, such as the price of purchase, instead of using a set value.
For example, if a visitor lands on your website and adds a book to their cart. This is what static or set value will look like:
1.ttq.track('AddToCart', {2. content_name: 'book',3. value: 10.0,4. currency: 'USD',5.}); |
To make these values dynamic, replace set values with code that will automatically pass correct values like 'book' or '10.0'.
1.ttq.track('AddToCart', {2. content_name: DYNAMIC_PRODUCT_NAME_COMES_HERE,3. value: DYNAMIC_ORDER_VALUE_COMES_HERE,4. currency: 'USD',5.}); |