אתה משיק קמפיין פרסום בטיקטוק, אבל נתוני ההמרות מגיעים עם שגיאה של 20-30%. התקציב מתבזבז, האופטימיזציה לא עובדת. זהו מצב אופייני כאשר הפיקסל מוגדר בחיפזון או שחסרה העברת נתונים מצד השרת. אנחנו מתקנים זאת, ומבטיחים דיוק של עד 99% אפילו עם חוסמי פרסומות.
TikTok Pixel הוא כלי למעקב אחר המרות לפרסום בטיקטוק. אנחנו מגדירים אותו כך שכל המרה נספרת ללא כפילויות, וקמפיינים ממוקדים מותאמים לרכישות, הרשמות או מנויים אמיתיים. ללא הפיקסל, אתה מבזבז את התקציב בעיוורון: עד 40% מההמרות עלולות לא להירשם בגלל חוסמי פרסומות ושגיאות דפדפן. אינטגרציה מצד השרת משתלמת אפילו עם תקציב פרסום בינוני בזכות דיוק הנתונים.
איך להגדיר TikTok Pixel?
שלב 1: התקנת הקוד הבסיסי
הצב את הקוד הבא ב-<head> של כל דפי האתר. החלף את PIXEL_ID במזהה הפיקסל שלך מחשבון הפרסום. אנו ממליצים להשתמש במנהל תגים (GTM) כדי לפשט עדכונים — זה מקצר את זמן ביצוע השינויים פי 2-3.
<script>
!function (w, d, t) {
w.TiktokAnalyticsObject = t;
var ttq = w[t] = w[t] || [];
ttq.methods = ["page", "track", "identify", "instances", "debug", "on", "off", "once", "ready", "alias", "group", "enableCookie", "disableCookie"],
ttq.setAndDefer = function (t, e) {
t[e] = function () {
t.push([e].concat(Array.prototype.slice.call(arguments, 0)))
}
};
for (var i = 0; i < ttq.methods.length; i++) ttq.setAndDefer(ttq, ttq.methods[i]);
ttq.instance = function (t) {
for (var e = ttq._i[t] || [], n = 0; n < ttq.methods.length; n++) ttq.setAndDefer(e, ttq.methods[n]);
return e
},
ttq.load = function (e, n) {
var i = "https://analytics.tiktok.com/i18n/pixel/events.js";
ttq._i = ttq._i || {},
ttq._i[e] = [],
ttq._i[e]._u = i,
ttq._t = ttq._t || {},
ttq._t[e] = +new Date,
ttq._o = ttq._o || {},
ttq._o[e] = n || {};
var o = document.createElement("script");
o.type = "text/javascript",
o.async = !0,
o.src = i + "?sdkid=" + e + "&lib=" + t;
var a = document.getElementsByTagName("script")[0];
a.parentNode.insertBefore(o, a)
};
ttq.load('PIXEL_ID');
ttq.page();
}(window, document, 'ttq');
</script> שלב 2: הגדרת אירועים סטנדרטיים
לחנות מקוונת, ארבעה אירועים סטנדרטיים מספיקים: <script> !function (w, d, t) { w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify", "instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"], ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}; for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]); ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++) ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){ var i="https://analytics.tiktok.com/i18n/pixel/events.js"; ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date, ttq._o=ttq._o||{},ttq._o[e]=n||{};var o=document.createElement("script"); o.type="text/javascript",o.async=!0,o.src=i+"?sdkid="+e+"&lib="+t; var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)}; ttq.load('PIXEL_ID');ttq.page(); }(window, document, 'ttq'); </script> , ViewContent, AddToCart, InitiateCheckout. דוגמת קוד:
// Просмотр товара
ttq.track('ViewContent', {
contents: [{
content_id: productId,
content_name: productName
}],
value: product.price,
currency: 'RUB'
});
// Покупка
ttq.track('CompletePayment', {
contents: orderItems.map(i => ({
content_id: i.productId,
quantity: i.qty,
price: i.price
})),
value: orderTotal,
currency: 'RUB',
order_id: orderId
});
// Регистрация
ttq.track('CompleteRegistration', {
value: 0,
currency: 'RUB'
});לצורך התאמת משתמשים מדויקת יותר, העבר התאמה מתקדמת דרך CompletePayment:
ttq.identify({
sha256_email: sha256(user.email.toLowerCase()),
sha256_phone_number: sha256(normalizePhone(user.phone))
}); שלב 3: חיבור ה-API לאירועים מצד השרת
הפיקסל בצד הלקוח עלול לאבד 15-20% מהאירועים בגלל חוסמי פרסומות או שגיאות דפדפן. ה-API לאירועים מצד השרת שולח אירועים ישירות מהשרת שלך, ומעלה את האמינות ל-99%. דוגמה ב-PHP (Laravel):
Http::withToken(env('TIKTOK_ACCESS_TOKEN'))
->post('https://business-api.tiktok.com/open_api/v1.3/event/track/', [
'pixel_code' => env('TIKTOK_PIXEL_ID'),
'event' => 'CompletePayment',
'timestamp' => time(),
'context' => [
'user' => [
'sha256_email' => hash('sha256', strtolower($user->email)),
'sha256_phone' => hash('sha256', normalizePhone($user->phone))
],
'page' => ['url' => $pageUrl]
],
'properties' => [
'contents' => $itemsArray,
'value' => $total / 100,
'currency' => 'RUB'
],
'event_id' => "purchase_{$orderId}"
]);חשוב: העבר את // Просмотр товара ttq.track('ViewContent', { contents: [{ content_id: productId, content_name: productName }], value: product.price, currency: 'RUB' }); // Покупка ttq.track('CompletePayment', { contents: orderItems.map(i => ({ content_id: i.productId, quantity: i.qty, price: i.price })), value: orderTotal, currency: 'RUB', order_id: orderId }); // Регистрация ttq.track('CompleteRegistration', { value: 0, currency: 'RUB' }); בשני הערוצים (לקוח ושרת) — זה מאפשר לטיקטוק לבצע דה-דופליקציה של אירועים ולהימנע מניפוח המרות. בפועל, זה מפחית את פערי הנתונים מ-30% ל-2-3%. אובדן של 10% מההמרות עקב הגדרת פיקסל שגויה עלול לעלות לעסק בסכומים משמעותיים.
למה ה-API לאירועים מצד השרת קריטי לדיוק המעקב?
ה-API לאירועים מצד השרת אמין פי 2-3 מהצד של הלקוח — הוא לא מושפע מחוסמי פרסומות, שגיאות JavaScript או הגבלות דפדפן. בנוסף, השיטה מצד השרת מאפשרת העברת נתונים נוספים, כמו מזהה הזמנה מדויק או מזהה משתמש פנימי, מה שמשפר את איכות הקהל לריטרגוטינג. ללא העברה מצד השרת, עד 40% מהרכישות עלולות להישאר ללא מעקב.
איך להימנע מפערי נתונים?
פערי נתונים נובעים מכפילויות אירועים, חוסמי פרסומות או חוסר דה-דופליקציה. הפתרונות העיקריים:
- העבר
ttq.identify()ייחודי גם בפיקסל של הלקוח וגם בזה של השרת. - השתמש ב-
ttq.identify({ sha256_email: sha256(user.email.toLowerCase()), sha256_phone_number: sha256(normalizePhone(user.phone)) });עם התאמה מתקדמת (אימייל וטלפון ב-SHA256). - ודא שהפיקסל נטען רק פעם אחת.
- בדוק עם Pixel Helper ומצב הבדיקה של TikTok Ads.
הצעדים האלה מפחיתים את הפערים ל-2-3%.
שגיאות אינטגרציה אופייניות
| בעיה | סיבה | פתרון |
|---|---|---|
| אין נתונים בחשבון הפרסום | הפיקסל לא הותקן או נחסם | בדוק את הקוד באמצעות תוסף Pixel Helper |
| פער המרות > 20% | אין דה-דופליקציה או אירועים כפולים | העבר Http::withToken(env('TIKTOK_ACCESS_TOKEN')) ->post('https://business-api.tiktok.com/open_api/v1.3/event/track/', [ 'pixel_code' => env('TIKTOK_PIXEL_ID'), 'event' => 'CompletePayment', 'timestamp' => time(), 'context' => [ 'user' => [ 'sha256_email' => hash('sha256', strtolower($user->email)), 'sha256_phone' => hash('sha256', normalizePhone($user->phone)) ], 'page' => ['url' => $pageUrl] ], 'properties' => [ 'contents' => $itemsArray, 'value' => $total / 100, 'currency' => 'RUB' ], 'event_id' => "purchase_{$orderId}" ]); וודא שהפיקסל נטען פעם אחת |
| אירועים לא נשלחים | שגיאת סקריפט או התנגשות עם טרקרים אחרים | פתח את קונסולת הדפדפן ובדוק שגיאות JavaScript |
| התאמה מתקדמת לא עובדת | חישוב hash שגוי (SHA256) או נתונים ריקים | ודא שהאימייל/טלפון מנורמלים ומעובדים כראוי |
מה כלול בהתקנת פיקסל סוהר?
אנחנו מבצעים את כל התהליך: מבדיקה ועד תיעוד. משך הזמן — מיום אחד עד שבוע, תלוי במורכבות.
| שלב | תוצאה |
|---|---|
| בדיקת מערכת המעקב הנוכחית | זיהוי בעיות עם פיקסלים קיימים ו-GTM |
| התקנת פיקסל בסיסי | קוד תקין ב-event_id בכל הדפים |
| הגדרת אירועים (לקוח + שרת) | כל האירועים המרכזיים נשלחים עם דה-דופליקציה |
| בדיקות | אימות באמצעות Pixel Helper ומצב הבדיקה של TikTok Ads |
| תיעוד | הוראות תחזוקה, רשימת אירועים, תיאור פורמט הנתונים |
המחיר מחושב באופן אישי. גורמים: מספר אירועים, צורך באינטגרציה מצד השרת, נוכחות GTM, מורכבות ה-CMS. בקש בדיקה של המעקב הנוכחי שלך — נספק הערכות מדויקות ולוחות זמנים. צור קשר לייעוץ על הפרויקט שלך; נעזור לך להגדיר מעקב שמשתלם כבר מהקמפיינים הראשונים.
ניסיון: מעל 30 פרויקטים של מסחר אלקטרוני, אנחנו מבטיחים העברת נתונים נכונה ועמידה בדרישות טיקטוק.







