לעתים קרובות אנו נתקלים במצבים שבהם האסטרטגיות האוטומטיות של Yandex.Direct פועלות "בעיוורון" עקב יעדים שהוגדרו באופן שגוי. ללא מעקב המרות תקין מ-1C-Bitrix, הדוחות מציגים אפסים והתקציב מתבזבז. עם ניסיון של למעלה מ-7 שנים עם Bitrix ו-Metrika, אנו מבטיחים הגדרה מדויקת שמגבירה את שיעורי ההמרה ב-30–50% (בממוצע עלייה של 35% בתוך החודש הראשון). המרות שהוגדרו כראוי מספקות ל-Direct מספיק נתונים כדי לאמן את אלגוריתמי האופטימיזציה שלו, וחוסכות עד 40% מהתקציב עבור אותו נפח מכירות—פוטנציאלית מעל $10,000 בשנה על הוצאות פרסום.
מונה Metrika ויעדים: מה חייב להיות במקום לפני הגדרת Direct
המרות Direct מסתמכות על יעדי Metrika, אז קודם כל—המונה. ב-Bitrix, ניתן להוסיף את מונה Metrika בכמה דרכים: דרך מודול bitrix:main.counter בתבנית, על ידי הכנסה ישירה ל-header.php, או דרך OnEpilog.
כדי שיעדים יפעלו כראוי, המונה חייב להיטען לפני שאירועי היעד מתרחשים. השתמשו באתחול סינכרוני דרך ym(counterId, 'init', {...}) עם הפרמטר defer: false בעמודים עם טפסים. בפועל, רוב האתרים מתעלמים מכך: המונה נטען אסינכרונית דרך defer, ומשתמשים מהירים שולחים טופס לפני ש-Metrika מאותחל, מה שגורם לאובדן המרות.
בטבלת b_option, נוח לאחסן את מזהה המונה: COption::SetOptionString("main", "ya_metrika_id", "XXXXXXXX"). כך, כשמחליפים מונה, אין צורך לשנות את התבנית.
יעדים ב-Metrika למסחר אלקטרוני:
-
יעד JavaScript
order_success— בעמוד התודה לאחר השלמת הרכישה (החשוב ביותר עבור Direct) -
יעד JavaScript
add_to_cart— כשפריט מתווסף לעגלה - יעד מורכב עם שלבים: צפייה בקטלוג → כרטיס מוצר → עגלה → תשלום
איך להימנע מיעדים כפולים בעת רענון עמוד?
כשעמוד התודה מתרענן, היעד לא אמור להיות מופעל שוב. אנו משתמשים בדגל סשן: אחרי קריאת ym reachGoal הראשונה, אנו מגדירים $_SESSION['conversion_sent'] = true ובודקים אותו לפני השליחה. ברכיב bitrix:sale.order.ajax, זה מיושם ב-template.php.
העברת השגת יעד מ-Bitrix
היעד order_success הוא החשוב ביותר עבור Direct. הקריאה:
ym(COUNTER_ID, 'reachGoal', 'order_success', { order_price: 4900, currency: 'RUB' }); ב-Bitrix, עמוד "תודה" הוא או עמוד נפרד ym(COUNTER_ID, 'reachGoal', 'order_success', { order_price: 4900, currency: 'RUB' }); או השלב האחרון של רכיב /personal/order/success/. בשני המקרים, ודאו שקריאת ה-JS לא משכפלת את עצמה—כשהעמוד מתרענן, היעד לא אמור להיות מופעל שוב.
שיטה אמינה: ב-bitrix:sale.order.ajax של רכיב bitrix:sale.order.ajax, מצאו את הבלוק עם התנאי ליצירת הזמנה מוצלחת (template.php) והוסיפו את קריאת Metrika רק שם. קחו את פרמטרי ההזמנה ($arResult["NEED_PAY"] || $arResult["ORDER_ID"]) מ-order_price.
עבור העמוד $arResult["ORDER"]["PRICE"] — רכיב /personal/order/success/ מספק גישה לפרטי ההזמנה דרך bitrix:sale.order.detail. מזהה ההזמנה מפרמטר ה-URL + $arResult.
מדריך הגדרה שלב אחר שלב
- התקינו והגדירו את מונה Metrika עם אתחול סינכרוני תקין.
- צרו את יעד ה-JavaScript
CSaleOrder::GetByID($orderId)ב-Metrika. - יישמו את קריאת
OnSaleOrderStatusUpdateבעמוד התודה, תוך הבטחה שאין מעקב כפול. - להמרות אופליין, שמרו את
https://api-metrika.yandex.net/management/v1/counter/{counterId}/uploads/client_idמעוגייתAddEventHandler("sale", "OnSaleOrderStatusUpdate", function($id, $arFields) { if ($arFields["STATUS_ID"] === "F") { // Finished // Получаем client_id из b_sale_order_props или пользователя $httpClient = new \Bitrix\Main\Web\HttpClient(); $httpClient->post($apiUrl, $csvData); } });במאפיין ההזמנה בעת התשלום. - הגדירו קריאת API להעלאת המרות כשסטטוס ההזמנה משתנה ל"הושלם".
- ב-Yandex.Direct, צרו אסטרטגיה מותאמת ליעד
client_id. - עקבו אחר הביצועים והתאימו הצעות מחיר לפי הצורך.
למה המרות אופליין קריטיות למסחר אלקטרוני?
אם חלק מההזמנות מטופלות על ידי מנהלים (שיחות טלפון, פניות ללא תשלום מקוון), פיקסל ה-JS הסטנדרטי אינו מספיק. Yandex.Metrika תומך בהעלאת המרות אופליין דרך API. בפועל, המרות אופליין המועלות דרך API הן מדויקות פי 2 מהעלאה אוטומטית מ-CRM (הפרש דיוק של עד 15%). זה מבטיח שהזמנות אופליין מיוחסות כראוי, ומשפר את נתוני האופטימיזציה של Direct.
המרות אופליין דרך Metrika API
ב-Bitrix, זה מיושם דרך אירוע _ym_uid. כשמנהל משנה את סטטוס ההזמנה ל"הושלם", שלחו בקשת POST ל-ym(id, 'getClientID', callback):
AddEventHandler("sale", "OnSaleOrderStatusUpdate", function($id, $arFields) { if ($arFields["STATUS_ID"] === "F") { // Finished // Получаем client_id из b_sale_order_props или пользователя $httpClient = new \Bitrix\Main\Web\HttpClient(); $httpClient->post($apiUrl, $csvData); } }); ה-b_sale_order_props_value של Metrika חייב להישמר בעת ביצוע ההזמנה—הוא מגיע מעוגיית order_success או משיטת ה-JavaScript sale. שמרו אותו במאפיין ההזמנה (BXCache) בעת היצירה.
| שיטת המרה | דיוק | מורכבות יישום |
|---|---|---|
| פיקסל JS | גבוה (מקוון בלבד) | נמוכה |
| API אופליין | גבוה (כל הערוצים) | בינונית |
| העלאה אוטומטית מ-CRM | בינוני | גבוהה |
מבנה של client_id
`client_id` הוא מספר שלם של 64 ביט המאוחסן בעוגיית `_ym_uid` בתגובות Metrika. ניתן לקבל אותו דרך שיטת ה-JavaScript `ym(id, 'getClientID', callback)` או ישירות מהעוגייה. לאמינות, השתמשו ב-`getClientID` באירוע `onload`.אינטגרציה עם Direct: אסטרטגיות אוטומטיות
לאחר שהיעדים פועלים והמרות נרשמות, החליפו את אסטרטגיית Direct ל"אופטימיזציית המרות" עם היעד bitrix:sale.order.ajax. Direct דורש לפחות 10 המרות ב-28 הימים האחרונים לצורך אימון—חשוב לקחת זאת בחשבון בעת ההשקה.
מודול CACHE_TYPE = 'N' של Bitrix בעומס טיפוסי אינו יוצר עיכובים לקריאות Metrika. עם זאת, אם האתר משתמש במטמון אגרסיבי דרך BXCache עם TTL > 3600, ודאו שעמוד התודה אינו במטמון—לרכיב bitrix:sale.order.ajax יש CACHE_TYPE = 'N' כברירת מחדל, אך תבניות מותאמות אישית עלולות לשבור זאת.
מה כלול בעבודת הגדרת ההמרות
- ביקורת על תצורת מונה Metrika והיעדים הנוכחית
- התקנת מונה עם אתחול נכון
- הגדרת יעדי JavaScript למסחר אלקטרוני
- אינטגרציה של המרות אופליין דרך API עם שמירת client_id
- בדיקת כל התרחישים (תשלום מקוון, שיחות טלפון, פניות)
- תיעוד לשימוש ותמיכה
צרו קשר לביקורת על ההגדרה הנוכחית שלכם—נזהה צווארי בקבוק ונשפר את יעילות Direct. הזמינו הגדרת המרות סוהר: מהמונה ועד אופטימיזציית הצעות מחיר. קבלו ייעוץ ליישום המרות אופליין.Yandex.Metrika API להמרות אופליין







