بدء استخدام إعلانات كتالوج Advantage+

تتيح لك إعلانات كتالوج Advantage+ إنشاء إعلانات ذات طابع شخصي تستهدف الجماهير المناسبة استنادًا إلى مجموعة المنتجات.

تتوفر لدى المعلنين الذين يعرضون إعلانات حول الإسكان أو التوظيف أو الائتمان أو القضايا أو الانتخابات والسياسة مجموعات مختلفة من القيود. لمزيد من المعلومات، يمكنك الرجوع إلى الفئات الإعلانية الخاصة.

قبل البدء

لإنشاء حملة إعلانية لإعلانات كتالوج Advantage+، تحتاج إلى:

بشكل اختياري، يمكنك إعداد جمهور منتجات ديناميكي، ولكن ليس مطلوب منك توفير عمليات تضمين أو استبعاد المجموعة الإعلانية في إعدادات الاستهداف.

الخطوة الأولى: إنشاء حملة إعلانية

راجع الوثائق الحملة الإعلانية لمعرفة كيفية إنشاء حملة إعلانية.

وفي هذا المستوى، يجب تعيين هدف الإعلان عبر الحقل objective. بالنسبة لإعلانات كتالوج Advantage+، تكون الأهداف المدعومة هي PRODUCT_CATALOG_SALES أو CONVERSIONS أو LINK_CLICKS أو APP_INSTALLS. إذا كان objective الذي تقدمه هو CONVERSIONS أو LINK_CLICKS أو APP_INSTALLS، فلن يكون الحقل promoted_object مطلوبًا.

curl \
  -F 'name=Product Catalog Sales Campaign' \
  -F 'objective=PRODUCT_CATALOG_SALES' \
  -F 'promoted_object={"product_catalog_id":"<PRODUCT_CATALOG_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/campaigns

الخطوة الثانية: إنشاء مجموعة إعلانية

بالنسبة لإعلانات كتالوج Advantage+، يجب تحديد product_set_id في promoted_object الخاص بمستوى المجموعة الإعلانية لترويج المنتجات من مجموعة المنتجات هذه.

بالإضافة إلى ذلك، يمكنك أيضًا تحديد حدث التحويل لمجموعة المنتجات هذه من خلال تحديد النوع custom_event_type في promoted_object عندما يكون الهدف optimization_goal هو OFFSITE_CONVERSIONS. ويجعل ذلك إعلاناتك تستهدف الأشخاص الذين قاموا بهذا الحدث في تطبيقك أو موقعك.

على سبيل المثال، إذا قمت بتعيين هذا على ADD_TO_CART، فيعني ذلك أن الحدث "إضافة إلى عربة التسوق" هو حدث التحويل. وبشكل افتراضي، يتم تعيين custom_event_type إلى PURCHASE. تعرف على المزيد حول الأحداث القياسية وقيم custom_event_type في تتبع تحويل البيكسل في Meta.

إذا كنت تريد تحسين التحويلات خارج الموقع بما في ذلك التحويلات من أحداث التطبيق وبيكسل فيسبوك وفوترتها على أساس مرات ظهور الإعلان:

  • يمكنك تعيين optimization_goal على OFFSITE_CONVERSIONS
  • يمكنك تعيين billing_event على IMPRESSIONS

يمكن العثور على مزيد من التفاصيل حول مجموعات optimization_goal وbilling_event الصالحة في هدف التحسين وأحداث الفوترة.

فيما يلي مثال على إنشاء مجموعة إعلانية تتم فوترتها على أساس IMPRESSIONS وتعمل على تحسين OFFSITE_CONVERSIONS:

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ "geo_locations": {"countries":["US"]}, 
    "dynamic_audience_ids": ["<DYNAMIC_AUDIENCE_ID>"] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

يشير DYNAMIC_AUDIENCE_ID إلى جمهور المنتج. ويمكنك اختياريًا حذف dynamic_audience_ids من الاستدعاء.

على سبيل المثال بالنسبة لحالات استخدام التجارة الإلكترونية، يمكنك حذف dynamic_audience_ids من الاستدعاء وإرسال معلومات الاستهداف حسب السلوك بدلاً من ذلك كجزء من المعلمة product_audience_specs أو excluded_product_audience_specs. تكون هذه المواصفات محددة عن طريق المعلمات نفسها التي تستخدمها لإنشاء جمهور المنتج.

المعلمات

الاسمالوصف

product_set_id

numeric string (سلسلة رقمية)

مطلوب.
مجموعة المنتجات المطلوب استهدافها من خلال هذا الجمهور.

inclusions

JSON object (كائن JSON)

مطلوبة.
مجموعة الأحداث المطلوب استهدافها. يلزم تضمين حدث واحد على الأقل. من المفترض أن يحتوي كل تضمين على event واحد.

inclusions.retention_seconds

int (عدد صحيح)

مطلوب.
عدد الثواني اللازمة للاحتفاظ بحساب "مركز الحسابات" ضمن الجمهور.

inclusions.rule

object[] (كائن)

مطلوبة.
قاعدة جماهير مخصصة لموقع الويب تشير إلى event واحد.

exclusions

JSON object (كائن JSON)

اختياري.
مجموعة من الأحداث التي يمكنها إزالة حساب "مركز الحسابات" من الاستهداف.

exclusions.retention_seconds

int (عدد صحيح)

مطلوبة، إذا تم تحديد الاستبعاد.
تمثل عدد الثواني المحددة للاحتفاظ بالاستبعاد.

exclusions.rule

object[] (كائن)

مطلوب، إذا تم تحديد الاستبعاد.
قاعدة الجمهور المخصص لموقع الويب التي تشير إلى event واحد.

يتعين أن تتضمن كل قاعدة event مع عامل التشغيل eq سواء كانت قاعدة عالية المستوى أو جزءًا من قاعدة and عالية المستوى.

إعادة الاستهداف

في هذا المثال، نستهدف الأشخاص الذين عرضوا المنتجات خلال آخر فترة تتراوح من 3 إلى 5 أيام ولم يقوموا بعملية الشراء. وتكون مواضع الإعلانات في قائمة منتجات الهاتف المحمول وAudience Network. لإنشاء هذا الجمهور:

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "publisher_platforms": ["facebook","audience_network"], 
    "device_platforms": ["mobile"], 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

عرض المنتجات ذات الصلة أو بيع البديل الأغلى

مثال على الإعلان عن المنتجات التي لم يطلع عليها المستخدم:

curl \
-F 'name=Case 1 Adset' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'status=ACTIVE' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting= { \
            "geo_locations": { \
            "countries":["US"], \
             }, \
            "interests":[ \
                {"id":6003397425735,"name":"Tennis"}, \
            ], \
        }' \
-F 'promoted_object={"product_set_id”:<PRODUCT_SET_ID>}' \
-F 'access_token=<ACCESS_TOKEN>’ \
https://graph.facebook.com/<API_VERSION>/act_<ACCOUNT_ID>/adsets

لعرض المنتجات ذات الصلة بين مجموعات المنتجات:

  • قم بتوفير جمهور المنتج مع قواعد الأحداث المتعلقة بمجموعة المنتجات "أ".
  • واعرض المنتجات من مجموعة المنتجات "ب" في الإعلان من خلال تعيين المعرف product_set_id إلى مجموعة المنتجات "ب" على مستوى تصميم الإعلان.

فعلى سبيل المثال، يريد نشاط تجاري زيادة مبيعات حقائب اليد في PRODUCT_SET_1 من خلال استهداف إعلان للمستخدمين الحاليين الذين أبدوا اهتمامًا بالأحذية التي تنتمي إلى PRODUCT_SET_2. قم بتعيين product_set_id في product_audience_specs على الأحذية أو معرف المجموعة PRODUCT_SET_2 وتعيين product_set_id في promoted_object على حقائب اليد أو معرف المجموعة PRODUCT_SET_1.

curl \
  -F 'name=My cross sell ad set' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_1_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets  

وقم بتعيين product_set_id في التصميم باعتباره معرف PRODUCT_SET_1.

  curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

استهداف مجموعة واسعة من الجمهور

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

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

  • إنشاء جمهور باستخدام استهداف المعلومات الديموغرافية الأساسية مثل النساء في الولايات المتحدة اللاتي تزيد أعمارهن عن 18 عامًا.
  • تضمين customOptimize من أجل OFFSITE_CONVERSIONS مع إشارات نية أقوى، مثل Purchase أو InitiateCheckout.

في هذا المثال، ننشئ مجموعة إعلانية تستهدف النساء اللاتي تتراوح أعمارهن بين 30 و65 عامًا في الولايات المتحدة مع استبعاد العملاء الذين اشتروا في آخر 10 أيام. وسنقدم عرض أسعار بقيمة 8 دولارات باستخدام OFFSITE_CONVERSIONS لأحداث PURCHASE.

curl \
  -F 'name=Broad Audience Targeting' \
  -F 'bid_amount=800' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "age_max": 65, 
    "age_min": 30, 
    "geo_locations": {"countries":["US"]}, 
    "genders": [2], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":864000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>","custom_event_type":"PURCHASE"}' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

فئات إعلانات كتالوج Advantage+

تتوفر لدى المعلنين الذين يعرضون إعلانات حول الإسكان أو التوظيف أو الائتمان أو القضايا أو الانتخابات والسياسة مجموعات مختلفة من القيود. لمزيد من المعلومات، يمكنك الرجوع إلى الفئات الإعلانية الخاصة.

توفر فئات إعلانات كتالوج Advantage+ خيارين من التصميمات الجديدة لمنصة إعلانات كتالوج Advantage+، ويمكن استخدامهما لإضفاء طابع شخصي على التصميم للمتسوقين الذين هم في مرحلة مبكرة من رحلة اتخاذ القرار. وباستخدام هذه الميزة، يمكنك إنشاء ما يمثل بفعالية كتالوج تصميمات آخر أصغر يضم الصور التي تمثل كل فئة (بالإضافة إلى كتالوج المنتجات الموجود بالفعل ويضم صور المنتجات)، وسنطابق فئات المنتجات مع الأشخاص في إعلاناتك بالطريقة نفسها التي نطابق بها المنتجات مع الأشخاص.

يمكن استخدام فئات إعلانات كتالوج Advantage+ مع أي خيار استهداف في هدف الزيارات أو التحويلات أو مبيعات الكتالوج. وإذا لم يكن لديك ممثل صور عالي الجودة لكل فئة أو علامة تجارية، فيمكن لفيسبوك تلقائيًا إنشاء منشور مجمع 2x2 من أفضل المنتجات لكل مجموعة منتجات.

عند تعيين هذه الصور الجديدة إلى كتالوجات المنتجات الحالية، يمكنك استخدام أحد الأعمدة الثلاثة في قائمة المنتجات لديك لتجميع العناصر: العلامة التجارية ونوع المنتج وفئة منتج Google.

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

يمكن تحديد الفئة بشكل فريد من خلال:

  • معرف كتالوج المنتج
  • معايير التصنيف (العلامة التجارية أو نوع المنتج أو فئة المنتج أو منتج Google)
  • قيمة المعايير (تم الحصول عليها من الكتالوج)
بائع التجزئة اسم المعرف السعر نوع المنتج العلامة التجارية الفئة

prod_1

قميص

25 دولارًا أمريكيًا

الملابس

العلامة التجارية "أ"

الفئة "أ"

prod_2

قلنسوة من FB

30 دولارًا أمريكيًا

ملابس

العلامة التجارية "ب"

الفئة "أ"

prod_3

هاتف iPhone 6

800 دولار أمريكي

الهواتف

العلامة التجارية "ج"

الفئة "ب"

prod_4

هاتف Samsung Galaxy S5

750 دولارًا أمريكيًا

الهاتف

العلامة التجارية "ج"

الفئة "ب"

prod_5

جهاز طهي الأرز

120 دولارًا أمريكيًا

أجهزة

العلامة التجارية "ج"

الفئة "ج"

prod_6

أريكة باركر

500 دولار أمريكي

الأجهزة

العلامة التجارية "د"

الفئة "د"

prod_7

كريم واقي من الشمس

14 دولارًا أمريكيًا

منتجات العناية الشخصية

العلامة التجارية "هـ"

الفئة "هـ"

يمكنك ربط كل فئة (على سبيل المثال، كل مجموعة من المنتجات كما هو محدد بواسطة القيم الفريدة في أحد الأعمدة المحددة أعلاه) بالأصول:

  • الاسم — الاسم القصير الذي يظهر لمستخدم الفئة (بطول 40 حرفًا كحد أقصى).
  • الوصف — وصف الفئة الذي يظهر للمستخدم (بطول 20 حرفًا كحد أقصى).
  • destination_uri — عنوان URL للصفحة المقصودة عندما ينقر المستخدم على الفئة.
  • image_urlاختياري. عنوان URL لصورة نمط الحياة التي تمثل الفئة. وإذا لم يتم توفير عنوان image_url، فسننشئ منشورًا مجمعًا تلقائيًا لأفضل المنتجات من هذه الفئة.

خلال وقت عرض الإعلانات، تتم مطابقة كل حساب "مركز الحسابات" ديناميكيًا مع الفئات التي من المرجح أن يستجيب لها بناءً على استخدام نماذج التعلّم الآلي نفسها التي تشغّل إعلانات كتالوج Advantage+ اليوم.

API إدارة الفئات

يتم تخزين معلومات الفئات على مستوى كتالوج المنتجات مما يعني أن الإعلانات المختلفة التي تروّج للفئات من كتالوج المنتجات نفسه ستشارك الأصول، تمامًا مثل الإعلانات التي تروّج للمنتجات ستشارك الأصول المحددة في كتالوجات المنتجات. وندعم خيارات تصميم مختلفة لتخصيص إعلانات الفئات.

فيما يلي واجهات API المطلوبة للحصول على معلومات الفئات وتحديثها.

القراءة

الطلب

  curl -G \
    -d 'fields=["criteria_value","name","description","destination_uri","image_url"]' \
    -d 'categorization_criteria=product_type' \
    -d 'filter={"price_amount":{"gt":1500}}' \ # optional
    -d 'access_token=<ACCESS_TOKEN>' \
    https://graph.facebook.com/v19.0/<PRODUCT_CATALOG_ID>/categories

نستعلم عن جميع المنتجات (يتم دعم الفلتر الاختياري) ونبحث على أفضل 1,000 فئة (بالترتيب حسب عدد المنتجات).

عينة من الاستجابة

{
  "data": [
    {
      "criteria_value": "clothes",
      "name": "Awesome clothes",
      "description": "Check out these awesome clothes!",
      "destination_uri": "http://www.example.com/clothes",
      "image_url": "http://www.example.com/clothes.jpg"
    },
    ...
    {
      "criteria_value": "shoes",
      "name": "Awesome shoes",
      "description": "Check out these awesome shoes!",
      "destination_uri": "http://www.example.com/shoes",
      "image_url": "http://www.example.com/shoes.jpg"
    }
  ]
}

التحديث

يمكنك تحديد معلومات حول فئات متعددة في البيانات. بالنسبة لكل فئة، يلزم توفير categorization_criteria وcriteria_value بينما تكون الحقول name وdescription وdestination_uri وimage_url اختيارية. عند تحديث معلومات فئة ما لأول مرة، يجب تحديد destination_uri. وإذا كنت تريد تخطي عرض إحدى الفئات، فما عليك سوى تعيين destination_uri المرتبط بها ليكون فارغًا.

ملاحظة: لا يتم حاليًا دعم حذف الفئة.

الطلب

curl \
  -F 'data=[{"categorization_criteria":"product_type","criteria_value":"product_type_value","name":"Name","description":"Description","destination_uri":"http://www.example.com/","image_url":"<IMAGE_URL>"}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/<lPRODUCT_CATALOG_ID>/categories

إنشاء إعلانات

تتشابه فئات إنشاء إعلانات كتالوج Advantage+ مع إنشاء إعلانات كتالوج Advantage+ الأخرى، فيما عدا أن عملية تحديد التصميم تكون مختلفة بعض الشيء. ولا يزال بإمكانك الترويج لمجموعة منتجات بإعلانات فئة ديناميكية بحيث يكون الفارق هو أننا نعرض تصميمات الفئات بدلاً من ذلك.

curl \
  -F "name=Dynamic Category Ad Creative" \
  -F 'object_story_spec={"page_id": "<PAGE_ID>", "template_data": {"description": "{{category.description}}", "link": "https://www.example.com/", "message": "<MESSAGE>", "name": "{{category.name}}"}}' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'categorization_criteria=brand' \
  -F 'category_media_source=MIXED' \ # optional
  -F access_token=<ACCESS_TOKEN> \
  https://graph.facebook.com/v19.0/act_<ACCOUNT_ID>/adcreatives

يؤدي ذلك إلى إنشاء تصميم إعلان للفئة يتم عرضه في تنسيق دوّار:

رموز الفئات

رموز الفئات المدعومة:

  • category.name — اسم الفئة ضمن مجموعة المنتجات التي يتم الترويج لها.
  • category.description — وصف الفئة ضمن مجموعة المنتجات التي يتم الترويج لها.
  • category.destination_uri — محدد URI لوجهة الفئة.
  • category.min_price — الحد الأدنى لسعر هذه الفئة ضمن مجموعة المنتجات التي تم الترويج لها. ويتم سحب هذه المعلومات من كتالوج المنتجات.

المعلمات

الاسمالوصف

categorization_criteria

تحدد نوع الفئة المطلوب استخدامه.
القيم:

  • brand
  • product_type
  • google_product_category

category_media_source

تحدد كيفية عرض بطاقة الإعلان الدوّار للفئة.
القيم:

  • mixed (افتراضي)
    تستخدم صورة الفئة إذا كانت موجودة وبخلاف ذلك، تتم العودة إلى products_collage.
  • category
    تستخدم صورة الفئة. يمكنك تخطي هذه الفئة إذا كانت لا تحتوي على صورة.
  • products_collage
    تنشئ منشورً مجمعًا 2×2 لصور المنتجات من هذه الفئة.
  • products_slideshow
    تعرض شرائح من المنتجات من هذه الفئة.

أثناء إنشاء تصميم الإعلان للفئة، نبحث عن فئات قابلة للعرض.

ملاحظة: نقوم بفلترة الفئات بدون اسم أو عنوان URL للوجهة. ونقوم أيضًا بفلترة الفئات بدون صور في حالة category_media_source = category.

الأخطاء الشائعة

يفشل تصميم الإعلان إذا كان هناك أقل من أربع فئات مؤهلة (فعلى سبيل المثال، لاستخدام فئات إعلانات كتالوج Advantage+ كتصميم لحملة إعلانية معينة، يجب أن يكون هناك أربع قيم فريدة على الأقل في عمود محدد من قائمة منتجاتك).

الخطوة الثالثة: توفير تصميم إعلان

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

إنشاء تصميم قالب

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

يمكنك إنشاء القالب استنادًا إلى الكائن template_data بالمواصفات object_story_spec واستخدام الحقول التالية:

الاسمالوصفقبول معلمات القالب

call_to_action

object (كائن)

كائن دعوة لاتخاذ إجراء.
يجب حذف الحقل value.

لا

message

string (سلسلة)

يمثل رسالة لإعلانك، وتظهر على Instagram.

نعم

link

string (سلسلة)

رابط إلى موقع الويب لديك، يُستخدم لإنشاء شرح توضيحي للإعلان.
سيتم استبدال هذا الحقل دائمًا بواسطة الحقل link من ملف قائمة البيانات لديك، باستثناء البطاقة النهائية للإعلانات الدوارة التي سيتم ربطها بهذا الحقل.
ملاحظة: لا يمكن أن يكون هذا عنوان URL على فيسبوك.

لا

name

string (سلسلة)

يمثل اسم أو عنوان إعلانك، ويظهر على Instagram.

نعم

description

string (سلسلة)

يمثل وصفًا لإعلانك، ولا يظهر على Instagram.

نعم

force_single_link

boolean (قيمة منطقية)

اختياري.
فرض عرض تنسيق رابط واحد.
عند التعيين على القيمة true، سيكون التصميم بمثابة إعلان منشور صفحة رابط يعرض منتجًا واحدًا. عند استبعاد الحقل، سيكون الإعلان الناتج إعلانًا دوّارًا. وسيختار Facebook عدد البطاقات اللازمة لتحسين أداء إعلانك.

لا

show_multiple_images

boolean (قيمة منطقية)

يمكنك عرض عدة صور في الإعلان الدوّار لمنتج واحد.
ملاحظة: يجب تعيين force_single_link وmulti_share_end_card على true وfalse بالترتيب.

لا

multi_share_end_card

boolean (قيمة منطقية)

اختياري.
القيمة الافتراضية هي true.
استخدم هذا بتنسيق الإعلان الدوّار. وفي حالة التعيين على false، ستتم إزالة البطاقة النهائية التي تعرض أيقونة الصفحة.

لا

additional_image_index

int (عدد صحيح)

يشير إلى أي صورة مصفوفة الصور الإضافية يجب استخدامها كصورة للإعلان. ويكون ذلك فهرسًا صفريًا بين 0 و19.
إذا لم تتوفر صورة للمنتج في الفهرس المحدد، فاستخدم صورة المنتج الرئيسية.
ملاحظة: يجب أن تكون عناوين URL الإضافية للصورة فريدة، نظرًا لأنه ستتم إزالة التكرارات، الأمر الذي سيؤثر على ترقيم الفهرس.

لا

child_attachments

array (مصفوفة)

يتيح لك توفير بطاقة ثابتة واحدة أو أكثر في إعلانات كتالوج Advantage+ لتنسيق الإعلان الدوّار.
وتظهر البطاقات الثابتة إما قبل أو بعد كل إعلانات كتالوج Advantage+. يمكنك توفير الحقل static_card الذي يتم تعيينه على true لكل بطاقة ثابتة ضمن child_attachments.

لا

image_layer_specs

AdCreativeLinkDataImageLayerSpecs

يحدد كيفية تحويل الصور عند عرضها على المستخدمين في الإعلان.
يلزم توفير AdCreativeLinkDataImageOverlaySpec واحد لكل طبقة لتحديد طريقة عرض هذه الطبقة. وستظهر هذه الطبقات بالترتيب الذي تظهر به في القائمة.
ملاحظة: تتوفر AdCreativeLinkDataImageLayerSpec بشكل محدود. لمزيد من التفاصيل، يرجى التواصل مع ممثل فيسبوك لديك.

لا

image_overlay_spec

AdCreativeLinkDataImageOverlaySpec

يحدد كيفية عرض التراكبات في صورة لعنصر ديناميكي.

لا

preferred_image_tags

array (مصفوفة)

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

لا

أمثلة

إنشاء قالب إعلانات كتالوج Advantage+ بتنسيق دوّار

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

استخدام قالب إعلانات كتالوج Advantage+ مع تراكبات الصور

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}",
      "image_layer_specs": [
        {
          "layer_type": "image",
          "image_source": "catalog"
        },
        {
          "layer_type": "frame_overlay",
          "blending_mode": "lighten",
          "frame_image_hash": "<HASH>",
          "frame_source": "custom",
          "opacity": 100,
          "overlay_position": "center",
          "scale": 100
        },
        {
          "layer_type": "text_overlay",
          "content": {
            "type": "price"
          },
          "opacity": 100,
          "overlay_position": "top_left",
          "overlay_shape": "rectangle",
          "shape_color": "DF0005",
          "text_color": "FFFFFF",
          "text_font": "open_sans_bold"
        }
      ]
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

إنشاء قالب إعلانات كتالوج Advantage+ لمنتج واحد مع زر دعوة لاتخاذ إجراء

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "force_single_link": true, 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

إنشاء قالب إعلانات كتالوج Advantage+ بتنسيق دوّار حيث تستخدم صورة الإعلان خلاله الصورة الأولى من مصفوفة الصور الإضافية

لمعاينة إعلانات كتالوج Advantage+ من خلال additional_image_index، يتعين عليك إدخال object_story_spec بالكامل في نقطة النهاية /generatepreviews. ولا يؤدي إدخال object_story_id فقط إلى إنشاء معاينة.

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

إنشاء قالب إعلانات كتالوج Advantage+ بتنسيق دوّار لمنتج واحد حيث تأتي كل صورة من مصفوفة من الصور الإضافية في كتالوج المنتجات

curl -X POST \
     -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
     -F 'object_story_spec={
           "page_id": <PAGE_ID>,
           "template_data": {
             "message": "Test {{product.name | titleize}}",
             "link": "<YOUR_LINK_URL>",
             "name": "Headline {{product.price}}",
             "description": "Description {{product.description}}",
             "multi_share_end_card": false,
             "force_single_link": true,
             "show_multiple_images": true,
           }
         }' \
     -F 'product_set_id=<PRODUCT_SET_ID>' \
     -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

إنشاء قالب إعلانات كتالوج Advantage+ بتنسيق دوّار من خلال البطاقة الأولى كبطاقة قسيمة ثابتة

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "child_attachments": [ 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "30% off", 
          "image_hash": "<IMAGE_HASH>", 
          "link": "https:\/\/www.link.com\/coupon", 
          "name": "Coupon Static Card", 
          "static_card": true 
        }, 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "Description {{product.description}}", 
          "name": "Headline {{product.price}}" 
        } 
      ], 
      "link": "<LINK>", 
      "message": "Test Message" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

إنشاء عرض شرائح دوّار من قالب إعلانات كتالوج Advantage+

نعرض كل بطاقة ديناميكية في الإعلان الدوّار كعرض شرائح. ويعرض كل عرض شرائح الصور من عنصر ديناميكي واحد إذا كان العنصر يحتوي على صور متعددة. وإذا كان العنصر الديناميكي يحتوي على صورة واحدة، فنعرض البطاقة كصورة ثابتة.

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={
    "page_id": "PAGE_ID",
    "template_data": {
      "call_to_action": {"type":"SHOP_NOW"},
      "description": "Description {{product.description}}",
      "link": "LINK",
      "message": "Test {{product.name | titleize}}",
      "name": "Headline {{product.price}}",
      "format_option": "carousel_slideshows"
    }
  }' \
  -F 'product_set_id=PRODUCT_SET_ID' \
  -F 'access_token=ACCESS_TOKEN' \
  https://graph.facebook.com/v19.0/AD_ACCOUNT_ID/adcreatives

تمثل الاستجابة لهذه الاستدعاءات معرف تصميم قالب إعلانات كتالوج Advantage+ جديد.

{"id":"creative_id"}

تحميل الكتالوج

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

<listing>
 <hotel_id>hotel_1</hotel_id>
 ...
 <image>
 <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg (https://l.facebook.com/l.php?u=https%3A%2F%2Fmedia-cdn.tripadvisor.com%2Fmedia%2Fphoto-o%2F05%2Fca%2F40%2Faf%2Fthe-epiphany-a-joie-de.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>exterior</tag>
 <tag>first image</tag>
 <tag>tree</tag>
 </image>
 <image>
 <url>http://www3.hilton.com/resources/media/hi/DFWANHH/en_US/img/shared/full_page_image_gallery/main/HH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg (http://l.facebook.com/l.php?u=http%3A%2F%2Fwww3.hilton.com%2Fresources%2Fmedia%2Fhi%2FDFWANHH%2Fen_US%2Fimg%2Fshared%2Ffull_page_image_gallery%2Fmain%2FHH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>skyline</tag>
 ...
 </image>
 ...
</listing>

إنشاء تصميم إعلان

عند إنشاء تصميم إعلان، يمكن إدخال مصفوفة من preferred_image_tags في object_story_spec.

curl \
 -F 'name=Ad Creative Test'\
 -F 'object_story_spec={
     "page_id": '<PAGE_ID>',
     "template_data": {
       "preferred_image_tags": ["skyline","exterior"],
       "call_to_action": {"type":"BOOK_TRAVEL"},
       "description": "{{hotel.description}}",
       "link": "<URL>",
        "message": "Book your stay in {{hotel.city}}",
        "name": "{{hotel.name | titleize}}"
     }
    }' \
 -F 'product_set_id=<PRODUCT_SET_ID>' \
 -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

تمكين الفيديو في إعلانات كتالوج Advantage+

لا تزال الخطوات الأساسية لإنشاء إعلانات كتالوج Advantage+ كما هي دون تغيير. ولتمكين الفيديو، يجب عليك تضمين بيانات الفيديو وتوفير هذه البيانات داخل كتالوج المنتجات. وراجع أدناه للاطلاع على التغييرات اللازمة عند إنشاء كتالوجات منتجات أو تحديثها.

الخطوة الأولى: إعداد كتالوج منتجات

يستخدم هذا المثال ملفًا بتنسيق XML ويجب أن تكون التنسيقات الأخرى مماثلة.

وعند إضافة فيديو إلى قائمة المعروضات هذه، يتم دعم الحقلين url وtag. وحاليًا، يتم دعم ملف فيديو واحد فقط لكل منتج.

<?xml version="1.0" encoding="utf-8"?>
<listings>
  <title>Test hotel feed</title>
  <listing>
    <hotel_id>hotel_1</hotel_id>
    <name>Test Hotel 1</name>
    <description>A very nice hotel</description>
    <brand>Facebook</brand>
    <address format="simple">
      <component name="addr1">180 Hamilton Ave</component>
      <component name="city">Palo Alto</component>
      <component name="city_id">12345</component>
      <component name="region">California</component>
      <component name="postal_code">94301</component>
      <component name="country">United States</component>
    </address>
    <latitude>37.4435997</latitude>
    <longitude>-122.1615219</longitude>
    <neighborhood>Palo Alto</neighborhood>
    <neighborhood>Silicon Valley</neighborhood>
    <margin_level>8</margin_level>
    <base_price>200.5 USD</base_price>
    <phone>+1 650 666-3311</phone>
    <star_rating>2.5</star_rating>
    <guest_rating>
      <score>7.8</score>
      <rating_system>tripAdvisor</rating_system>
      <number_of_reviewers>300</number_of_reviewers>
    </guest_rating>
    <guest_rating>
      <score>9.8</score>
      <rating_system>Hotels.com</rating_system>
      <number_of_reviewers>35000</number_of_reviewers>
    </guest_rating>
    <image>
      <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg</url>
      <tag>front view</tag>
      <tag>first image</tag>
    </image>
    <image>
      <url>http://www.jdvhotels.com/content/uploads/2014/06/72-1200x800.jpg</url>
      <tag>room</tag>
      <tag>bed</tag>
    </image>
    <loyalty_program>Starwood</loyalty_program>
    <url>http://www.jdvhotels.com/hotels/california/silicon-valley-hotels/the-epiphany-hotel/</url>
    <applink property="ios_url" content="example-ios://electronic"/>
    <applink property="ios_app_store_id" content="42"/>
    <applink property="ios_app_name" content="Electronic Example iOS"/>
*    <video>
      <url>http://example.com/some_video1.mp4</url>
      <tag>City</tag>
      <tag>Package</tag>
    </video>*
  </listing>
</listings>

مواصفات الفيديو

الخطوة الثانية: استخدام API للحصول على البيانات التعريفية للفيديو لاستكشاف الأخطاء وإصلاحها

يمكنك استخدام API للتحقق من البيانات التي تم تحميلها. وبالنسبة لكل عنصر، اسمح بالاستعلام عن "بيانات تعريف الفيديو".

الطلب
curl -i -X GET \
 "https://graph.intern.facebook.com/v19.0/1234567890?fields=videos_metadata.fields(video,tags,url)&access_token=<ACCESS TOKEN>"

عينة من الاستجابة

الخطوة الثالثة: تمكين الفيديو في التصميم أو الإعلان

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

القوالب وتتبع النقر

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

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

مثال

لإنشاء قالب إعلانات كتالوج Advantage+ بتنسيق دوّار باستخدام الإعداد template_url_spec:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<URL>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'template_url_spec={ 
    "ios": { 
      "app_store_id": "123", 
      "url": "example:\/\/link\/?nav=item.view&id={{product.retailer_id | urlencode}}&referrer=http:\/\/rover.example.com\/rover\/1\/711-198453-24755-9\/16%3Fitemid={{product.retailer_id | urlencode | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/clicktrack.com\/cm325?id={{product.retailer_id | urlencode}}&redirect_url={{product.url | urlencode | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

استخدم بيانات ملف قائمة البيانات في القالب الخاص بك

عند عرض الإعلان، يستبدل فيسبوك المحتوى في القسم {{ }} بالقيم الصحيحة من ملف قائمة البيانات لديك. إليك قيم القوالب المتوفرة:

الاسمالوصف

brand

قيمة brand الخاصة بالعنصر من ملف قائمة البيانات.

current_price

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

description

قيمة description الخاصة بالعنصر من ملف قائمة البيانات لديك.

name

قيمة title الخاصة بالعنصر من ملف قائمة البيانات لديك.

price

العمود price المنسَّق (مثل $1,234.56).

retailer_id

قيمة id الخاصة بالعنصر من ملف قائمة البيانات لديك.

url

قيمة link الخاصة بالعنصر من ملف قائمة البيانات لديك.

custom_label_0

قيمة custom_label_0 الخاصة بالعنصر من ملف قائمة البيانات لديك.

custom_label_1

قيمة custom_label_1 الخاصة بالعنصر من ملف قائمة البيانات لديك.

custom_label_2

قيمة custom_label_2 الخاصة بالعنصر من ملف قائمة البيانات لديك.

custom_label_3

قيمة custom_label_3 الخاصة بالعنصر من ملف قائمة البيانات لديك.

custom_label_4

قيمة custom_label_4 الخاصة بالعنصر من ملف قائمة البيانات لديك.

الخيارات

قد تتلقى بعض قيم القوالب خيارات، بأي ترتيب، بالتنسيق التالي:

{{field option1 option2 ...}}

تتوفر الخيارات التالية:

الخيارالوصفمدعوم من

raw

يمكن حذف رمز العملة

price
current_price

strip_zeros

يمكن حذف جزء السنتات في العملة إذا كانت السنتات بقيم صفرية

price
current_price

round

يحذف قيمة السنت من العملة عند تقريب السعر

جميع حقول الأسعار

التحويلات

يمكنك استخدام قيم القوالب من خلال التحويلات التي تضبط القيمة استنادًا إلى هذا التنسيق:

{{field | transform}}

استخدم أحد التحويلات التالية:

التحويلاتالوصف

number_format

يتم تنسيق الرقم بالتنسيق الافتراضي باستخدام الفاصلة (",") كفاصل الآلاف مع تقريب الرقم إلى أقرب عدد صحيح (على سبيل المثال، 1234.56->"1,235"). ويتعين أن تكون قيمة التنسيق عبارة عن رقم غير منسّق ("1234"، وليس "1,234").

titleize

تتم كتابة الكلمات بحروف كبيرة للحصول على مظهر أفضل للعنوان، (على سبيل المثال تحويل "box" إلى "Box").

urlencode

يمثل ترميز قيمة عنوان URL.

تحديد السلوك المطلوب للنقر على الإعلانات من الهواتف المحمولة

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

  1. تطبيق الهواتف المحمولة الأصلي حيث يجب توجيه المستخدم لدعم رابط لموضع معين (في نظام iOS أو Android).
  2. معلومات الرابط إلى موضع معين التي تم تضمينها في ملف قائمة البيانات أو معلومات الرابط لموضع معين المتوفرة من خلال روابط التطبيق.

إذا تحقق هذين المطلبين، يمكنك استخدام الحقل applink_treatment أثناء إنشاء تصميم إعلان لتحديد السلوك المطلوب عندما ينقر المستخدم على إعلان.

الاسمالوصف

web_only

يتم إرسال المستخدم دائمًا إلى عنوان URL للويب المحدد.

deeplink_with_web_fallback

يمثل أنه في حالة تثبيت التطبيق على هاتف المستخدم وتوفير معلومات مناسبة حول رابط لموضع معين، أرسل المستخدم إلى التطبيق. وفي حالة عدم تلبية أحد هذين الشرطين، أرسله إلى موقع الويب.

deeplink_with_appstore_fallback

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

أمثلة

فيما يلي مثال على إنشاء قالب إعلانات كتالوج Advantage+ بتنسيق دوّار من خلال دعوة لاتخاذ إجراء ستتضمن رابطًا لموضع معين إلى تطبيق أصلي في حالة توفره أو العودة إلى الويب:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_web_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

فيما يلي مثال على إنشاء قالب إعلانات كتالوج Advantage+ بتنسيق دوّار مع تمكين إشارات عنوان URL التي تتضمن رابطًا لموضع معين إلى تطبيق أصلي في حالة توفره أو العودة إلى متجر التطبيقات الخاص بالتطبيق:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_appstore_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

إنشاء كتالوج مُترجم لإعلانات كتالوج Advantage+

يمكنك الاطلاع على التفاصيل في الكتالوج المُترجم لإعلانات كتالوج Advantage+.

الخطوة الرابعة: إنشاء إعلان

أخيرًا، يمكنك إنشاء إعلان. ويشير الإعلان إلى تصميم الإعلان.

مثال

curl -X POST \ -F 'name="My Ad"' \ -F 'adset_id="<AD_SET_ID>"' \ -F 'creative={ "creative_id": "<CREATIVE_ID>" }' \ -F 'status="PAUSED"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/ads
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const Ad = bizSdk.Ad; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_ACCOUNT_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'My Ad', 'adset_id' : '<adSetID>', 'creative' : {'creative_id':'<adCreativeID>'}, 'status' : 'PAUSED', }; const ads = (new AdAccount(id)).createAd( fields, params ); logApiCallResult('ads api call complete.', ads);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\Ad; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_ACCOUNT_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'My Ad', 'adset_id' => '<adSetID>', 'creative' => array('creative_id' => '<adCreativeID>'), 'status' => 'PAUSED', ); echo json_encode((new AdAccount($id))->createAd( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.ad import Ad from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'My Ad', 'adset_id': '<adSetID>', 'creative': {'creative_id':'<adCreativeID>'}, 'status': 'PAUSED', } print AdAccount(id).create_ad( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_ACCOUNT_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createAd() .setName(\"My Ad\") .setAdsetId(<adSetID>L) .setCreative( new AdCreative() .setFieldId(\"<adCreativeID>\") ) .setStatus(Ad.EnumStatus.VALUE_PAUSED) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) ads = ad_account.ads.create({ name: 'My Ad', adset_id: '<adSetID>', creative: {'creative_id':'<adCreativeID>'}, status: 'PAUSED', })

تهانينا! لقد أنشأت أول إعلان كتالوج Advantage+ لديك. لا تتردد في استئنافه لبدء العرض.

عند النشر كإعلان في Instagram Stories، يتم اقتصاص إعلانات كتالوج Advantage+ بنسبة العرض إلى الارتفاع 1:1 بغض النظر عن أبعاد الصورة الأصلية.

الخطوات التالية

معاينة إعلانات كتالوج Advantage+

يمكنك إنشاء معاينات لتصميمك الديناميكي باستخدام نقطة نهاية معاينات الإعلان. وحدّد المعلمة product_item_ids أو حدّد العديد من product_item_ids لمعاينة الإعلان الدوّار.

curl -X GET \ -d 'ad_format="DESKTOP_FEED_STANDARD"' \ -d 'product_item_ids=[ "<PRODUCT_ITEM_ID>" ]' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/<CREATIVE_ID>/previews
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdCreative = bizSdk.AdCreative; const AdPreview = bizSdk.AdPreview; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_CREATIVE_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'ad_format' : 'DESKTOP_FEED_STANDARD', 'product_item_ids' : ['<productItemID>'], }; const previewss = (new AdCreative(id)).getPreviews( fields, params ); logApiCallResult('previewss api call complete.', previewss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdCreative; use FacebookAds\Object\AdPreview; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_CREATIVE_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'ad_format' => 'DESKTOP_FEED_STANDARD', 'product_item_ids' => array('<productItemID>'), ); echo json_encode((new AdCreative($id))->getPreviews( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adcreative import AdCreative from facebook_business.adobjects.adpreview import AdPreview from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'ad_format': 'DESKTOP_FEED_STANDARD', 'product_item_ids': ['<productItemID>'], } print AdCreative(id).get_previews( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_CREATIVE_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdCreative(id, context).getPreviews() .setAdFormat(AdPreview.EnumAdFormat.VALUE_DESKTOP_FEED_STANDARD) .setProductItemIds(\"[\\"<productItemID>\\"]\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_creative = FacebookAds::AdCreative.get(id) previewss = ad_creative.previews({ fields: { }, ad_format: 'DESKTOP_FEED_STANDARD', product_item_ids: ['<productItemID>'], })

المعلمات

الاسمالوصف

product_item_ids

array[string] (مصفوفة[سلسلة])

قائمة برموز معرفات المنتجات بتشفير Base64 URL أو معرفات فيسبوك للمنتجات.
ويكون كل رمز من النموذج catalog:{catalog_id}:{base64urlencode(retailer_id)}.

الحصول على إحصائيات الإعلانات عن المنتجات

يمكنك الحصول على إحصائيات لكل منتج من خلال إجراء استدعاء GET إلى نقطة النهاية الرؤى. أضف product_id في المعلمة fields.

يعرض ذلك إحصائيات حول كل المنتجات في مجموعات منتجات الحساب المعروضة في إعلانات كتالوج Advantage+.

مثال

يُرسل هذا المثال تقارير حول clicks وactions وimpressions لكل معرفات product_id.

الطلب
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdsInsightsFields;
use FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsDatePresetValues;
use FacebookAds\Object\Values\AdsInsightsBreakdownsValues;

$account = new AdAccount('act_<AD_ACCOUNT_ID>');

$fields = array(
  AdsInsightsFields::ACCOUNT_NAME,
  AdsInsightsFields::IMPRESSIONS,
  AdsInsightsFields::ACTIONS,
);

$params = array(
  'date_preset' => AdsInsightsDatePresetValues::LAST_WEEK,
  'action_breakdowns' => array(
    AdsInsightsActionBreakdownsValues::ACTION_TYPE,
  ),
  'breakdowns' => array(
    AdsInsightsBreakdownsValues::PRODUCT_ID,
  ),
);

$stats = $account->getInsights($fields, $params);
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adsinsights import AdsInsights

account = AdAccount('act_<AD_ACCOUNT_ID>')

fields = [
    AdsInsights.Field.account_name,
    AdsInsights.Field.impressions,
    AdsInsights.Field.actions,
]

params = {
    'date_preset': 'last_week',
    'actions_group_by': ['action_type'],
    'breakdowns': [
        AdsInsights.Breakdowns.product_id,
    ],
}

stats = account.get_insights(fields=fields, params=params)
APINodeList<AdsInsights> adsInsightss = new AdAccount(act_<AD_ACCOUNT_ID>, context).getInsights()
  .setDatePreset(AdsInsights.EnumDatePreset.VALUE_LAST_WEEK)
  .setActionBreakdowns("[\"action_type\"]")
  .setBreakdowns("[\"product_id\"]")
  .requestField("account_name")
  .requestField("impressions")
  .requestField("actions")
  .execute();
curl -G \
  -d 'date_preset=last_week' \
  -d 'action_breakdowns=["action_type"]' \
  -d 'breakdowns=["product_id"]' \
  -d 'fields=account_name,impressions,actions' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/insights
الاستجابة
{
 "data": [ 
   {
      "account_id": "123456", 
      "product_id": "60750", 
      "date_start": "2015-02-03", 
      "date_stop": "2015-02-03", 
      "impressions": 880, 
      "clicks": 8, 
      "actions": [ 
        {
          "action_type": "link_click", 
          "value": 6
        }, 
        {
          "action_type": "offsite_conversion.other", 
          "value": 5
        },  
        {
          "action_type": "offsite_conversion", 
          "value": 5
        }
      ], 
      "account_name": "My Account"
    }, 
 ], 
...
}

الحصول على التعليقات وتسجيلات الإعجاب

يمكنك استرداد التعليقات وتسجيلات الإعجاب وproduct_id لمنشور إعلانات كتالوج Advantage+. قم بإجراء استدعاء GET كما يلي من خلال post_id. ويكون post_id هو المعرف effective_object_story_idلتصميم الإعلان بالتنسيق PageID_PostID.

ملاحظة: لا يمكنك استخدام نقطة النهاية هذه لاسترداد التعليقات من Instagram.

curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/<POST_ID>/dynamic_posts

تقوم نقطة النهاية هذه بإرجاع كائنات المنشور الديناميكي.

وبمجرد حصولك على منشورات ديناميكية، يمكنك حينها الحصول على comments وlikes وproduct_id وchild_attachments لتنسيق إعلان دوّار إن أمكن.

لن يتم إرجاع إعلانات تخصيص أصول المواضع من خلال عنصر الربط dynamic_posts.