إعداد كتالوج منتجات

لإعداد الإعلانات الديناميكية، تحتاج إلى كتالوج منتجات وقوائم منتجات كتالوج ومجموعات إعلانية.

كتالوج المنتجات الخاص بك عبارة عن ملف بيانات مرتب يضم قائمةً من العناصر التي تريد الإعلان عنها. ويحتوي كل سطر على جميع المعلومات المطلوبة لإنشاء إعلان ديناميكي. قوائم المنتجات عبارة عن تحميلات ديناميكية لبياناتك الهدف منها الحفاظ على حداثة كتالوج المنتجات.

نبين لك في هذا المستند كيفية إعداد كتالوج منتجات:

راجع أيضًا بدء استخدام الإعلانات الديناميكية وراجع إعداد الإعلانات الديناميكية عبر واجهة المستخدم.

الخطوة الأولى: إنشاء كتالوج منتجات

لإنشاء كتالوج منتجات للإعلانات الديناميكية:

use FacebookAds\Object\ProductCatalog;
use FacebookAds\Object\Fields\ProductCatalogFields;

$product_catalog = new ProductCatalog(null, <BUSINESS_ID>);

$product_catalog->setData(array(
  ProductCatalogFields::NAME => "Catalog",
));

$product_catalog->create();
from facebookads.adobjects.productcatalog import ProductCatalog

product_catalog = ProductCatalog(parent_id=<BUSINESS_ID>)

product_catalog[ProductCatalog.Field.name] = 'Catalog'

product_catalog.remote_create()
ProductCatalog catalog = new Business(<BUSINESS_ID>, context).createProductCatalog()
  .setName("Catalog")
  .execute();
String catalog_id = catalog.getId();
curl \
  -F 'name=Catalog' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<BUSINESS_ID>/product_catalogs

لاستخدام API كتالوج المنتجات، تحتاج إلى مستوى وصول إلى API التسويق وإلى قبول شروط الخدمة عن طريق إنشاء الكتالوج الأول من خلال مدير الأعمال. راجع مرجع كتالوج المنتجات.

الخطوة الثانية: إعداد قائمة منتجات

عبارة عن مجموعة عناصر تم تحميلها أو إحضارها من نشاط تجاري بحيث يظل كتالوج المنتجات الخاص بك حديثًا. عنصر المنتج عبارة عن عنصر واحد في متجرك الإلكتروني مثل وحدة حفظ المخزون SKU. يمكن أن يكون لديك قائمة منتجات واحدة تمثل جميع المنتجات في كتالوج المنتجات الخاص بك أو عدة قوائم منتجات حيث تمثل كل قائمة منتجات بلدًا واحدًا أو قسمًا واحدًا من المنتجات. راجع مرجع قائمة المنتجات وراجع مرجع العنصر.

بعد إنشاء كتالوج منتجات، استخدم catalog id لإنشاء قائمة منتجات وجدولتها:

use FacebookAds\Object\ProductFeed;
use FacebookAds\Object\Fields\ProductFeedFields;
use FacebookAds\Object\Fields\ProductFeedScheduleFields;

$product_feed = new ProductFeed(null, <PRODUCT_CATALOG_ID>);

$product_feed->setData(array(
  ProductFeedFields::NAME => 'Test Feed',
  ProductFeedFields::SCHEDULE => array(
    ProductFeedScheduleFields::INTERVAL => 'DAILY',
    ProductFeedScheduleFields::URL =>'http://www.example.com/sample_feed.tsv',
    ProductFeedScheduleFields::HOUR => 22,
  ),
));

$product_feed->create();
from facebookads.adobjects.productfeed import ProductFeed

product_feed = ProductFeed(parent_id=<PRODUCT_CATALOG_ID>)

product_feed[ProductFeed.Field.name] = 'Test Feed'
product_feed[ProductFeed.Field.schedule] = {
    'interval': 'DAILY',
    'url': 'http://www.example.com/sample_feed.tsv',
    'hour': 22,
}

product_feed.remote_create()
ProductFeed productFeed = new ProductCatalog(<PRODUCT_CATALOG_ID>, context).createProductFeed()
  .setName("Test Feed")
  .setSchedule("{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}")
  .execute();
String product_feed_id = productFeed.getId();
curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv", 
    "hour": 22 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/product_feeds

التنسيقات المدعومة

استخدم قائمة منتجات بأحد التنسيقات التالية:

تنسيق قائمة المنتجات الوصف عينة قائمة المنتجات

CSV

قيم مفصولة بفواصل. الصف الأول هو عنوان العمود. أدخل الحقول التي تحتوي على فواصل بين "علامتي اقتباس مزدوجتين"

تنزيل (النقر بزر الماوس الأيمن وحفظ الرابط باسم)

TSV

قيم مفصولة بعلامات جدولة. الصف الأول هو عنوان العمود. أدخل الحقول التي تحتوي على فواصل بين "علامتي اقتباس مزدوجتين"

تنزيل (النقر بزر الماوس الأيمن وحفظ الرابط باسم)

RSS XML

تنسيق يتم تكوينه عادةً من قبل أنظمة موفر قوائم منتجات آلية أو خوادم ويب. تمثل مجموعة من عقد XML للعناصر قائمة منتجات ويجب أن تبدأ بإشارة تعريف <?xml.

تنزيل (النقر بزر الماوس الأيمن وحفظ الرابط باسم)

ATOM XML

تنسيق يتم تكوينه عادةً من قبل أنظمة موفر قوائم منتجات آلية أو خوادم ويب. تمثل مجموعة من عقد XML للعناصر قائمة منتجات ويجب أن تبدأ بإشارة تعريف <?xml.

تنزيل (النقر بزر الماوس الأيمن وحفظ الرابط باسم)

الحقول المطلوبة

أدخل أسماء جميع الأعمدة باللغة الإنجليزية.

الاسم النوع الوصف

id


الحد الأقصى للحجم: 100

سلسلة

المعرف الفريد للعنصر. قد يكون أحد أشكال المنتج. عند وجود عدة نُسخ مثيلة تحمل المعرف نفسه، نتجاهل جميع النُسخ المثيلة. يتم تعيين ذلك إلى retailer_id بعد استيراد المنتج.

availability

سلسلة

إن كان العنصر في المخزون. القيم المقبولة هي:


in stock - يتم شحن العنصر فورًا.


out of stock - ليس من المخطط إعادة تزويد المخزون بالمنتج.


preorder - متاح في المستقبل.


available for order - يتم شحنه من أسبوع إلى أسبوعين.


discontinued - تم إيقافه


condition

سلسلة

حالة المنتج: new أو refurbished أو used

description


الحد الأقصى للحجم: 5000

سلسلة

نص مختصر يصف المنتج.

image_link


سلسلة

رابط إلى صورة العنصر مستخدم في الإعلان. تنسيق دوّار يستخدم صورًا مربعة بنسبة عرض إلى ارتفاع 1:1 (600×600 بكسل) بينما إعلان المنتج الواحد يستخدم صورة بنسبة عرض إلى ارتفاع 1.91:1 (1200×630 بكسل). استخدم الصور المناسبة لأغراضك.

link


سلسلة

رابط إلى موقع التاجر الذي يمكن للشخص أن يشتري منه العنصر.

title


الحد الأقصى للحجم: 100

سلسلة

عنوان العنصر.

price

سلسلة

تكلفة العنصر والعملة. العملة تتبع رموز العملة ISO 4217 مثل 9.99 USD

gtin أو mpn أو brand


الحد الأقصى للحجم: 70

سلسلة

gtin - رقم تعريف المنتج العالمي (GTIN) قد يتضمن UPC أو EAN أو JAN أو ISBN.



mpn - معرف فريد للجهة المصنعة للمنتج.



brand - اسم الماركة.



يلزم وجود إما gtin أو mpn أو brand.

الحقول المطلوبة، روابط لمواضع معينة للمنتجات

وفّر روابط لمواضع معينة في قائمة المنتجات متبعًا مواصفات روابط التطبيق. معلومات "الروابط لمواضع معينة" في قائمة المنتجات لها أولوية على أي معلومات يجمعها فيسبوك باستخدام البيانات التعريفية الخاصة بالروابط لمواضع معينة من خلال متتبع الويب.

إذا كانت لديك بالفعل معلومات روابط لمواضع معينة من روابط التطبيق، فلن تحتاج إلى تحديد هذه البيانات. يستخدم فيسبوك هذه المعلومات من روابط التطبيق لعرض "الرابط لموضع معين" الصحيح. لعرض روابط لمواضع معينة في إعلاناتك راجع الإعلانات الديناميكية، قالب الإعلان.

الاسم الوصف مثال

ios_url

نظام مخصص لتطبيق iOS في شكل عنوان URL

example-ios://electronic

ios_app_store_id

معرف التطبيق لمتجر التطبيقات

1234

ios_app_name

اسم التطبيق الذي يظهر

Electronic Example iOS

iphone_url

نظام مخصص لتطبيق iPhone في شكل عنوان URL

example-iphone://electronic

iphone_app_store_id

معرف التطبيق لمتجر التطبيقات

5678

iphone_app_name

اسم التطبيق الذي يظهر

Electronic Example iPhone

ipad_url

نظام مخصص لتطبيق iPhone

example-ipad://electronic

ipad_app_store_id

معرف التطبيق لمتجر التطبيقات

9010

ipad_app_name

اسم التطبيق الذي يظهر

Electronic Example iPad

android_url

نظام مخصص لتطبيق Android في شكل عنوان URL

example-android://electronic

android_package

اسم الحزمة المعرَّف بالكامل لتكوين النية الشرائية

com.electronic

android_app_name

اسم التطبيق الذي يظهر

Electronic Example Android

windows_phone_url

نظام مخصص لتطبيق Windows Phone في شكل عنوان URL

example-windows://electronic

windows_phone_app_id

معرف تطبيق، كمعرف GUID، لمتجر التطبيقات

ee728e01-7727-4168-9c8f-85c7eef40112

windows_phone_app_name

اسم التطبيق الذي يظهر

Electronic Example Windows

بالنسبة إلى نظام iOS، ما عليك سوى توفير معلومات تطبيق iPhone أو iPad إذا كانت مختلفة عن تطبيق iOS العام.

استخدم فئة منتجات لتجميع جميع أشكال المنتج. أدخل فئة منتجات لتحديد المنتجات التي تكون تقريبًا متطابقة ولكنها مختلفة في اللون أو المادة أو الحجم أو النمط. الفئات تجعل من السهل الإعلان على ألوان أو أنماط أو اشكال أخرى من المنتج. جميع المنتجات في فئة المنتجات تكون متطابقة في item_group_id. في الإعلانات الديناميكية، نختار عنصرًا واحدًا فقط من الفئة استنادًا إلى الإشارة التي نتلقاها من البيكسل أو التطبيق.

هناك حقول اختيارية يمكنك تضمينها:

الاسم النوع الحد الأقصى للحجم

additional_image_link


الحد الأقصى للحجم: 2000

سلسلة

يمكنك إدراج حتى عدد 10 صور إضافية؛ أدخلها كعناوين URL مفصولة بفواصل.

age_group

سلسلة

الفئة العمرية لاستخدام المنتج. القيم المقبولة هي newborn وinfant وtoddler وkids وadult.

color


الحد الأقصى للحجم: 100

سلسلة

لون العنصر.

expiration_date

ISO‑8601 بتنسيق (YYYY‑MM‑DD)

تاريخ انتهاء صلاحية المنتج. إذا انتهت صلاحية المنتج، يقوم فيسبوك باستبعاده من جميع مجموعات المنتجات ولا يعرضه في الإعلانات.

gender

سلسلة

تتضمن الخيارات: male وfemale وunisex

item_group_id

سلسلة

بالنسبة للعناصر التي هي أشكال من نفس المنتج. أدخل معرف item_group_id نفسه مع جميع العناصر التي تعد أشكالاً من المنتج. على سبيل المثال، قميص Red Polo Shirt هو شكل من قميص Polo Shirt. يقوم فيسبوك بتعيين ذلك على retailer_product_group_id بمجرد الحصول على الموجز الخاص بك. في الإعلانات الديناميكية، نختار عنصرًا واحدًا فقط من الفئة استنادًا إلى الإشارة التي نتلقاها من البيكسل أو التطبيق.

google_product_category


الحد الأقصى للحجم: 250

سلسلة

قيم محددة مسبقًا من تصنيف Google للمنتجات. على سبيل المثال، Apparel & Accessories > Clothing > Dresses

material


الحد الأقصى للحجم: 200

سلسلة

المادة المصنوع منها المنتج مثل leather أو denim أو cotton.

pattern


الحد الأقصى للحجم: 100

سلسلة

الشكل أو الرسم المطبوع على المنتج.

product_type


الحد الأقصى للحجم: 750

سلسلة

فئة المنتج التي يحددها بائع التجزئة.

على سبيل المثال في TSV
Home & Garden > Kitchen & Dining > Appliances > Refrigerators

على سبيل المثال في XML <product_type>Home & Garden > Kitchen & Dining > Appliances > Refrigerators</product_type>

sale_price

سلسلة

السعر المخفَّض إذا كان العنصر معروضًا للبيع في فترة خصومات. يجب ذكر العملة حسب رمز العملة ISO 4217. القيمة محددة على مبلغ 9.99 دولار

sale_price_effective_date

ISO‑8601 بتنسيق (YYYY‑MM‑DD)

تاريخ ووقت بدء وانتهاء البيع المخفَّض، مفصول بينهما بشرطة مائلة:


2014-11-01T12:00-0300/2014-12-01T00:00-0300

shipping

سلسلة

مميز بأسعار مختلفة لكل بلد ومنطقة. المناطق المختلفة يُفصل بينها بفواصل. ينبغي أن يكون التنسيق بالشكل التالي: COUNTRY:STATE:SHIPPING_TYPE:PRICE.

على سبيل المثال

US:CA:Ground:9.99 USD,US:NY:Air:15.99 USD

shipping_weight

سلسلة

وزن العنصر عند الشحن. لا نقبل سوى وحدات الوزن التالية: lb وoz وg وkg. مثال: 3 lbs

size

سلسلة

حجم العنصر. على سبيل المثال، حجم القميص قد يكون Small أو XL.

custom_label_0


الحد الأقصى للحجم: 100

سلسلة

اختياري، معلومات إضافية عن المنتج.

custom_label_1


الحد الأقصى للحجم: 100

سلسلة

اختياري، معلومات إضافية عن المنتج.

custom_label_2


الحد الأقصى للحجم: 100

سلسلة

اختياري، معلومات إضافية عن المنتج.

custom_label_3


الحد الأقصى للحجم: 100

سلسلة

اختياري، معلومات إضافية عن المنتج.

custom_label_4


الحد الأقصى للحجم: 100

سلسلة

اختياري، معلومات إضافية عن المنتج.

اختبر قائمة المنتجات من خلال صفحة تصحيح أخطاء قائمة المنتجات. بالنسبة إلى CSV / TSV، انسخ الصف الأول (صف عنوان العمود) وعدة منتجات قليلة؛ بالنسبة إلى XML، انسخ XML مع عدة عناصر/إدخالات قليلة، والصق الأسطر في منطقة النص وقم بالتحقق.

الخطوة الثالثة: تحديث الخيارات

لتحديث معلومات المنتجات، استخدم واحدًا مما يلي:

  1. إحضار مواجز منتجات مجدولة
  2. تحميل مباشر لقائمة منتجات
  3. تحديث منتج

إحضار مواجز منتجات مجدولة

يقوم فيسبوك بإحضار قوائم منتجات من نظامك حسب الجدول الزمني الذي تحدده. يوجد نوعان من الجداول يمكنك تحديدهما - update_schedule وschedule. التحميلات التي يتم إنشاؤها عبر update_schedule إما أنها تنشئ عناصر جديدة أو تحدث عناصر موجودة بالمعلومات الواردة في ملف الموجز. تؤدي التحميلات التي يتم إنشاؤها عبر schedule إلى عملية تحديث كاملة على الموجز - نحذف المنتجات غير الموجودة في الملف ونحدث الملفات الموجودة وننشئ ملفات جديدة. يمكنك استخدام أي من الجدولين أو كليهما حسب احتياجاتك.

على سبيل المثال: update_schedule لمعدل تكرار كل ساعة وبدلاً منه الجدول schedule لمعدل تكرار يوميًا.

نوصي بإعداد الجدول update_schedule مع البيانات التي طرأ عليها تغيير فقط في ملف الموجز لمعالجة الموجز بطريقة أسرع. هذا الأمر أفضل على وجه الخصوص عند تحديث مبيعات العطلات وفي تحديثات الأسعار والتوفر السريعة. كما ينصح بوضع علامة على عناصر المنتجات "خارج المخزون" بدلاً من حذفها من الموجز حتى يتمكن فيسبوك من إعادة استهداف المستخدمين بالمنتجات المشابهة المتاحة.

curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv"
  }' \
  -F 'update_schedule={ 
    "interval": "HOURLY", 
    "url": "http:\/\/www.example.com\/sample_feed_updates.tsv",
    "hour": 22
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.10/<PRODUCT_CATALOG_ID>/product_feeds

الاستجابة هي:

{ "id" : {PRODUCT_FEED_ID} }

راجع مرجع موجز المنتجات، مرجع جدولة موجز المنتجات.


تحميل مباشر لقائمة منتجات

بجانب إحضار مواجز مجدولة، يمكنك تنفيذ عمليات تحميل لمرة واحدة يدويًا.

هذا مثال على ملفات المواجز التي يستضيفها موقع عام.

curl \
-F "url=http://www.example.com/sample_feed.xml" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

هذا مثال على تحميل ملفات المواجز مباشرةً من جهاز محلي. مسار الملف يحتاج إلى تغيير وفقًا لحالة الاستخدام الخاصة بك.

curl \
-F "file=@catalog.csv;type=text/csv" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

ويمكنك، إذا رغبت، إعداد update_only على true. ننشئ عناصر جديدة ونحدث العناصر الموجودة ولكننا لا نحذف عناصر من قائمة المنتجات. تحتاج فقط إلى توفير id لتحديث العناصر الموجودة. وهذا يقلل الوقت المستغرق في إحضار الملف ومعالجته.

على سبيل المثال، لتحديث السعر فقط والتسميات المخصصة لعدد 100 عنصر في الموجز، استخدم التحميل المباشر. أنشئ ملفًا يتضمن فقط id وprice وcustom_label_0 لتلك العناصر مع إعداد update_only على true. ندعم جميع تنسيقات الملفات المذكورة؛ لكن الأكثر استخدامًا هي TSV وCSV.

أمثلة على الملفات:

تنسيق قائمة المنتجات حالة الاستخدام عينة قائمة المنتجات

CSV

تحديث price وavailability لمجموعة فرعية من العناصر.

تنزيل (النقر بزر الماوس الأيمن وحفظ الرابط باسم)

TSV

إعادة تعيين sale_price وتحديث custom_label_0 لمجموعة فرعية من العناصر

تنزيل (النقر بزر الماوس الأيمن وحفظ الرابط باسم)

راجع مرجع التحميلات اليدوية.

إذا ظهرت لك أخطاء في قائمة منتجاتك، راجع مرجع أخطاء تحميل قائمة المنتجات.


تحديث منتج واحد

يمكنك فورًا تحديث البيانات لمنتج واحد. أدخل الحقول المحدثة في HTTP POST:

https://graph.facebook.com/catalog:{PRODUCT_CATALOG_ID}:{base64urlencode(retailer_id)}

حيث retailer_id هو معرف المنتج من قائمة المنتجات الخاصة بك. يجب تشفيره باستخدام base64url. راجع حقول المنتج القابلة للتغيير في مرجع منتجات كتالوج المنتجات.

لا تُدخل مواجز منتجات بها تحديثات أو إنشاء أو حذف لمنتجات فردية باستخدام API. فقد يعطّل هذا أي تحديثات أو يحذف عناصر أنشأتها باستخدام API لأننا لا نتتبع هذه الأشياء باستخدام الموجز.

راجع أيضًا: * مرجع إحضار مواجز مجدولة * مرجع التحميل المباشر للمواجز * مرجع قائمة المنتجات * قوائم المنتجات في كتالوج المنتجات * مرجع عنصر المنتج * بحث عن المنتجات في كتالوج المنتجات

التحميل الدفعي للكتالوجات الكبيرة

يمكنك تحميل كتالوجات كبيرة بها ملايين المنتجات والمخزون سريع التغير. يمكنك إنشاء وتحديث وحذف منتجات كثيرة في طلب HTTP واحد. لواجهة API نقطتا نهاية:

  • نقطة النهاية POST [/{product_catalog_id}/batch](#send-batch-request) - إرسال دفعة طلبات لإنشاء وتحديث وحذف عناصر في كتالوج منتجات.
  • نقطة النهاية GET [/{product_catalog_id}/check_batch_request_status](#batch-request-status) - التحقق من حالة الطلب.

إرسال تحديثات المنتجات

لإنشاء منتجات في كتالوج منتجات أو تحديثها أو حذفها، قم بتنفيذ HTTP POST يتضمن الغييرات التي تريد إدخالها. يمكنك تنفيذ حتى 500 تحديث في استدعاء واحد. لكل كتالوج منتجات، يمكنك تنفيذ حتى 100 استدعاء في الساعة.

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$requests =  array(
    array(
        'method' => 'CREATE',
        'retailer_id' => 'retailer-product-id-123',
        'data' => array(
          'availability' => 'in stock',
          'brand' => 'Niky',
          'category' => 't-shirts',
          'currency' => 'USD',
          'description' => 'This is the product description.',
          'image_url' => 'http://www.images.example.com/t-shirts/1.png',
          'name' => 'My product name',
          'price' => '100',
          'url' => 'http://www.example.com/t-shirts/1.html',
        ),
    ),
);


$data = Api::instance()->call(
  '/'.<CATALOG_ID>.'/batch',
  RequestInterface::METHOD_POST,
  array('requests' => $requests))->getContent();
curl \
  -F 'requests=[ 
    { 
      "method": "CREATE", 
      "retailer_id": "retailer-product-id-123", 
      "data": { 
        "availability": "in stock", 
        "brand": "Niky", 
        "category": "t-shirts", 
        "currency": "USD", 
        "description": "This is the product description.", 
        "image_url": "http:\/\/www.images.example.com\/t-shirts\/1.png", 
        "name": "My product name", 
        "price": "100", 
        "url": "http:\/\/www.example.com\/t-shirts\/1.html" 
      } 
    } 
  ]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<CATALOG_ID>/batch

يُرجع هذا الاستدعاء مؤشرًا يمكنك استخدامه في التحقق من حالة طلب الدفعات. راجع معرفة حالة الطلب:

{
  "handles": ["AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I"]
}
المعلمة النوع الوصف

requests

كائن

كائن JSON يحتوي عى جميع الطلبات.

requests.method

سلسلة

إما CREATE أو UPDATE أو DELETE.

requests.retailer_id

سلسلة

معرف المنتج id الذي يحدده بائع التجزئة.

requests.data

كائن

كائن JSON يحتوي على جميع الحقول والقيم الخاصة بالمنتج. عندما يكون الأسلوب method هو CREATE، فيجب أن يحتوي هذا على جميع حقول المنتج المطلوبة. عندما يكون الأسلوب method هو UPDATE فقد يحتوي على أي حقول. لا يحدّث فيسبوك إلا الحقول التي تُدخلها.

القيم المدعومة في الحقل data يمكنك استخدامها في إنشاء CREATE وتحديث UPDATE العناصر:

  • additional_image_urls
  • availability
  • age_group
  • applinks
  • brand
  • category
  • color
  • condition
  • currency
  • custom_label_0
  • custom_label_1
  • custom_label_2
  • custom_label_3
  • custom_label_4
  • description
  • gender
  • gtin
  • image_url
  • manufacturer_part_number
  • name
  • pattern
  • price
  • product_type
  • sale_price
  • sale_price_end_date
  • sale_price_start_date
  • shipping
  • size
  • url

يمكنك استخدام applinks لمعرفة معلومات رابط لموضع معين، حيث يعمل بطريقة مشابهة للطريقة التي تعمل بها الروابط لمواضع معينة الخاصة بالمنتج. التنسيق كالتالي:

"applinks" : {
  "ios": [{
    "url":"example-ios://electronic",
    "app_store_id":42,
    "app_name":"Electronic Example iOS"
  }],
  "iphone": [{
    "url":"example-iphone://electronic",
     "app_store_id":43,
     "app_name":"Electronic Example iPhone"
  }],
  "ipad": [{
    "url":"example-ipad://electronic",
     "app_store_id":44,
     "app_name":"Electronic Example iPad"
  }],
  "android": [{
    "url":"example-android://electronic",
     "package":"com.electronic",
     "class":"com.electronic.Example",
     "app_name":"Electronic Example Android",
  }],
  "windows_phone": [{
    "url":"example-windows://electronic",
     "app_id":"64ec0d1b-5b3b-4c77-a86b-5e12d465edc0",
     "app_name":"Electronic Example Windows"
  }]
}

راجع مرجع إنشاء كتالوج المنتجات.

معرفة حالة الطلب

لمعرفة حالة طلب دفعي، استخدم المؤشر الذي تم إرجاعه من استدعاء {product_catalog_id}/batch:

curl -G \
-d 'handle=AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I'
-d 'access_token={ACCESS_TOKEN}'
https://graph.facebook.com/{API_VERSION}/{PRODUCT_CATALOG_ID}/check_batch_request_status

الاستجابة:

{
  "data": [
    {
      "handle": "AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26Q",
      "status": "finished",
      "errors_total_count": 1,
      "errors": [
        {
          "line": 0,
          "id": "retailer-4",
          "message": "Invalid value: Value passed at position 0 (id=retailer-199) is invalid: \"You cannot create a EntProductItem without required field Availability\""
        }
      ]
    }
  ]
}

راجع مرجع التحقق من حالة طلب دفعي لكتالوج المنتجات.

قواعد قائمة المنتجات

يمكنك من خلال القواعد إصلاح ومنع الأخطاء المستمرة التي تحدث في تحميل قائمة المنتحات. يمكنك توفير القواعد التي يطبقها فيسبوك على كل عملية تحميل قائمة منتجات. يمكنك تخصيص قواعدك حسب السمة (العمود) التي من المفترض أن تطبق عليها وحسب نوع القاعدة وحسب المعلمات. لا يمكنك حاليًا استخدام القواعد مع API الدفعة. يمكنك توفير الأنواع التالية من القواعد:

  • قاعدة التعيين - تعيّن السمات (أسماء الأعمدة) في ملف قائمة منتجات للسمات التي يمكننا التعرف عليها.
  • قاعدة تعيين القيمة - تعيّن الحقول (قيم الأعمدة) في ملف قائمة منتجات للحقول التي يمكننا التعرف عليها.
  • قاعدة حالة الأحرف - تغيّر حالة الكلمات في الحقل. على سبيل المثال، تغيير الأوصاف التي كلها بأحرف كبيرة إلى أحرف صغيرة.

على سبيل المثال، يمكنك إصلاح هذه المشكلات من خلال قاعدة التعيين وقاعدة تعيين القيمة:

  • خطأ كتابي في السمة من gavailability إلى availability
  • إصلاح التعددات غير المتعرف عليها InStock إلى in stock
  • تنسيق السعر من 45$ إلى 45.00 USD
  • ترجمة الحالة: Neu أسفل الحالة: New

يمكنك استخدام قاعدة حالة الأحرف في التعامل مع الأنواع التالية من المشكلات.

  • تغيير الأوصاف التي كلها بالأحرف الكبيرة BRAND NEW WITH LEATHER DETAIL... إلى Brand new with leather detail...
  • إصلاح العناوين المكتوبة كلها بالأحرف الكبيرة FACEBOOK T-SHIRT إلى Facebook T-shirt

القواعد المقترحة

يمكنك الحصول على قواعد مقترحة من فيسبوك لإصلاح الأخطاء التي بقائمة المنتجات. لرؤية القواعد المقترحة الخاصة بجلسة التحميل، اتبع الخطوات التالية.

  • استعادة جلسات التحميل:
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads
  • استعادة أخطاء جلسة التحميل:
https://graph.facebook.com/{API_VERSION}/{UPLOAD_SESSION_ID}/errors
  • استعادة القواعد المقترحة لخطأ التحميل:
curl -i -X GET 
 "https://graph.facebook.com/{API_VERSION}/{UPLOAD_ERROR_ID}/suggested_rules?access_token={ACCESS_TOKEN}

إليك مثال يوضح استجابة تتضمن اقتراحًا:

"data": [
  
    "attribute": "description",
    "type": "letter_case_rule",
    "params": [
      
        "key": "type",
        "value": "capitalize_first"
      
    ]
  
]

لمعرفة التفاصيل، راجع مرجع API القواعد المقترحة.

نقاط النهاية

إضافة قواعد إلى قوائم المنتجات

لتطبيق القواعد على قائمة منتجات، يتعين عليك ربط القاعدة بقاعدة المنتجات. قم بتنفيذ استدعاء HTTP POST إلى:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules?attribute={ATTRIBUTE}&amp;rule_type={RULE_TYPE}&amp;params={PARAMS}

على سبيل المثال:

curl -i -X POST 
 -d "attribute=google_product_category" 
 -d "rule_type=mapping_rule" 
 -d "params=%7B'map_from'%3A%20'gcategory'%7D" 
 -d "access_token={ACCESS_TOKEN}" 
 "https://graph.facebook.com/v2.9/{PRODUCT_FEED_ID}/rules" 
 // sample response
 
  "id": "{RULE_ID}"

ينبغي لك تنسيق params كما يلي:

نوع القاعدة التنسيق مثال ملاحظات

قاعدة التعيين

"map_from": <string>

"map_from": "gavailability"

قاعدة تعيين القيمة

<string> : <string>

"InStock": "in stock"

في قاعدة تعيين القيمة، يقتصر عدد التعيينات على 10 ويقتصر طول السلسلة على 20.

قاعدة حالة الأحرف

"type": one of : "capitalize_first", "capitalize_all", "to_upper", "to_lower"

"type": "capitalize_first"

لمعرفة التفاصيل، راجع مرجع واجهة API قواعد قائمة المنتجات.

الحصول على القواعد الحالية

لسرد جميع القواعد المرتبطة بالموجز، قم بتنفيذ استدعاء HTTP GET إلى:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules

لمعرفة التفاصيل، راجع مرجع واجهة API قواعد قائمة المنتجات.

تحديث القواعد وحذفها

لتغيير قاعدة مرتبطة بقائمة منتجات، قم بتنفيذ استدعاء HTTP POST لتحديث أي معلمات وتنفيذ HTTP DELETE لحذفها. لا يمكنك سوى تحديث المعلمات. إذا أردت تغيير attribute أو rule_type، فيلزمك حذف القاعدة وإعادة إنشائها.

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_RULE_ID}?params={PARAMS}

لمعرفة التفاصيل، راجع مرجع واجهة API قواعد قائمة المنتجات.

التالي: جمع إشارات الجمهور وإنشاء جماهير المنتجات

إنشاء جماهير المنتجات