לעתים קרובות אנו נתקלים בתרחיש הבא: לקוח משיק מודעות מוצר ב-Yandex.Market, והמערכת מדווחת ש-30% מהפריטים אינם משתתפים. חסרים מאפיינים חובה. בפרויקט אחד, מתוך 12,000 פריטי SKU, רק 7,000 נכללו במודעות. הסיבה — היעדר תגי <param> עם מאפיינים: צבע, זיכרון, גודל. בלעדיהם, Yandex לא יכול להתאים כראוי מוצר לשאילתה, ויעילות הקמפיין יורדת פי 2–3. פיד מוגדר היטב פותר בעיה זו וחוסך עד 30% מתקציב הפרסום באמצעות מיקוד טוב יותר. זה מפחית את העלות לקליק ב-15–20% הודות להתאמת שאילתות מדויקת.
אילו בעיות פותר פיד YML תקין?
פיד שנוצר כראוי אינו רק ייצוא קטלוג. זוהי היכולת לשלוט כיצד Yandex רואה את המוצרים שלך. ללא תגי <param>, מוצרים לא מופיעים בשאילתות ממוקדות ("קניית סמארטפון 128 GB שחור"). איתם, ההמרה עולה ב-15–25%. בנוסף, היעדר פרופיל פרסום מוצר פירושו ש-Yandex לא יכול להציג כראוי מודעות לפי דגם, מותג או קטגוריה.
למה ייצוא סטנדרטי אינו מספיק
הפרופיל המובנה (קטלוג → ייצוא → הוסף פרופיל → Yandex.Market (YML)) יוצר פיד בסיסי אך אינו מוציא מאפייני בלוק מידע כ-Каталог → Экспорт → Добавить профиль → Яндекс.Маркет (YML). עבור מודעות מוצר, זה קריטי: ללא פרמטרים, Yandex לא יכול להציג מודעות לשאילתות ממוקדות. כמו כן, הייצוא הסטנדרטי אינו מאפשר ניהול גמיש של מבנה הצעות מסחר, ועבור קטלוגים גדולים (מעל 50,000 פריטים), זמן היצירה מגיע לשעתיים.
נשווה בין הגישות:
| תכונה | ייצוא מובנה | מחולל מותאם אישית |
|---|---|---|
תמיכה ב-<param> |
דורש שינוי | שליטה מלאה |
| טיפול בהצעות מסחר | בסיסי | לוגיקה גמישה |
| ביצועים (100K+ פריטים) | איטי – עד שעתיים | XMLWriter עם סטרימינג – 15 דקות |
| התאמת מבנה | מוגבל | כל סכמה |
מחולל מותאם אישית מעבד קטלוג של 50,000 פריטים פי 8 מהר יותר – 15 דקות במקום שעתיים. זה חשוב במיוחד לעדכוני פיד יומיים.
איך להאיץ את יצירת הפיד?
עבור קטלוגים גדולים, השתמש ב-XMLWriter בסטרימינג ללא אחסון כל ה-DOM בזיכרון. לדוגמה:
// /local/cron/yandex_market_feed.php $categories = getIblockSections($IBLOCK_ID); $tmpFile = tempnam(sys_get_temp_dir(), 'yml_'); $xml = new XMLWriter(); $xml->openUri($tmpFile); $xml->startDocument('1.0', 'UTF-8'); // ... генерация структуры yml_catalog תיעוד רשמי: פורמט YML של Yandex.Market מדגיש: הפיד חייב להכיל את כל המאפיינים המשפיעים על בחירת הקונה. אנו מבטיחים זאת.
איך להוסיף פרמטרים חסרים לפיד?
הפתרון הוא לחבר את אירוע <param> ולהוסיף אלמנטים של // /local/cron/yandex_market_feed.php $categories = getIblockSections($IBLOCK_ID); $tmpFile = tempnam(sys_get_temp_dir(), 'yml_'); $xml = new XMLWriter(); $xml->openUri($tmpFile); $xml->startDocument('1.0', 'UTF-8'); // ... генерация структуры yml_catalog :
// /local/php_interface/init.php \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'catalog', 'OnGetYmlOfferXml', function (\Bitrix\Main\Event $event) { $offer = $event->getParameter('OFFER'); $xml = $event->getParameter('XML'); $paramProps = ['COLOR' => 'Цвет', 'MEMORY' => 'Память', 'SCREEN_SIZE' => 'Диагональ экрана']; foreach ($paramProps as $propCode => $paramName) { if (!empty($offer['PROPERTIES'][$propCode]['VALUE'])) { $xml .= sprintf( '<param name="%s">%s</param>', htmlspecialchars($paramName), htmlspecialchars($offer['PROPERTIES'][$propCode]['VALUE']) ); } } return new \Bitrix\Main\EventResult( \Bitrix\Main\EventResult::SUCCESS, ['XML' => $xml] ); } ); שלבים:
- זהה את מאפייני בלוק המידע שיש לייצא כפרמטרים (צבע, זיכרון, גודל).
- כתוב מטפל עבור
OnGetYmlOfferXmlשמוסיף<param>עבור כל מאפיין. - אמת את הפיד בחשבון Yandex.Market שלך.
שגיאות נפוצות וכיצד לתקן אותן
בעיה נפוצה היא פורמט תאריך שגוי ב-yml_catalog. התאריך חייב להיות בפורמט YYYY-MM-DD HH:MM, אחרת הפיד נדחה. מזהי הצעה כפולים מתרחשים כאשר למוצרים ולהצעות מסחר יש את אותו מזהה. פתרון: צור מזהים ייחודיים, למשל 'Product123-Offer1'. תווים לא חוקיים ב-XML (כמו אמפרסנד) חייבים להיות מוחלפים ב-// /local/php_interface/init.php \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'catalog', 'OnGetYmlOfferXml', function (\Bitrix\Main\Event $event) { $offer = $event->getParameter('OFFER'); $xml = $event->getParameter('XML'); $paramProps = ['COLOR' => 'Цвет', 'MEMORY' => 'Память', 'SCREEN_SIZE' => 'Диагональ экрана']; foreach ($paramProps as $propCode => $paramName) { if (!empty($offer['PROPERTIES'][$propCode]['VALUE'])) { $xml .= sprintf( '<param name="%s">%s</param>', htmlspecialchars($paramName), htmlspecialchars($offer['PROPERTIES'][$propCode]['VALUE']) ); } } return new \Bitrix\Main\EventResult( \Bitrix\Main\EventResult::SUCCESS, ['XML' => $xml] ); } ); . ולבסוף, לכל המוצרים חייב להיות מחיר (תג מחיר) — אם חסר, הפריט לא מיוצא.
מה כלול בהגדרת הפיד
המהנדסים שלנו (5+ שנות ניסיון ב-Bitrix, מעל 50 פידים מוגדרים) מבצעים את המחזור המלא:
- ניתוח מבנה הקטלוג ומאפייני בלוק המידע. אנו מזהים אילו מאפיינים חשובים עבור Yandex.Market ובודקים את שלמותם.
- עיצוב סכמת הפיד: אנו ממפים שדות סטנדרטיים ומוסיפים פרמטרים מותאמים אישית באמצעות אירועים או מחולל מותאם אישית.
- יישום: אנו כותבים מטפלים או סקריפט יצירה נפרד, תוך שימוש ב-XMLWriter לביצועים.
- בדיקות: אנו מעלים את הפיד לחשבון Yandex.Market, בודקים שגיאות ותקינות.
- אופטימיזציית ביצועים: עבור קטלוגים מעל 10,000 פריטים, אנו מגדירים שמירה במטמון וכתיבת סטרימינג.
- אינטגרציה עם מתזמן cron לעדכוני פיד יומיים.
הערכות זמנים להגדרה
פרופיל YML סטנדרטי עם מיפוי מאפיינים והוספת OnGetYmlOfferXml באמצעות hooks – 4–8 שעות. מחולל מותאם אישית לקטלוג מורכב עם הצעות מסחר ופרמטרים – 1–2 ימי עסקים. להערכה מדויקת, נדרשת התייעצות על הפרויקט שלך.
קבל ביקורת חינם על הפיד הנוכחי שלך — צור קשר. נבדוק את המבנה, הביצועים ונייעץ כיצד לשפר את הייצוא. הזמן הגדרת פיד והגדל את יעילות הפרסום.







