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

استخدم هذا الدليل لتحميل قائمة البيانات وجدولتها.

تحميل قائمة البيانات

لتحميل قائمة البيانات، تحتاج إلى الإذن catalog_management. راجع API التسويق، الأذونات. بعد إنشاء الكتالوج، استخدم catalog id لإنشاء قائمة بيانات المنتج وجدولتها:

curl -X POST \ -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/v21.0/{product-catalog-id}/product_feeds
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const ProductCatalog = bizSdk.ProductCatalog; const ProductFeed = bizSdk.ProductFeed; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<PRODUCT_CATALOG_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' : 'Test Feed', 'schedule' : {'interval':'DAILY','url':'http://www.example.com/sample_feed.tsv','hour':'22'}, }; const product_feeds = (new ProductCatalog(id)).createProductFeed( fields, params ); logApiCallResult('product_feeds api call complete.', product_feeds);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\ProductCatalog; use FacebookAds\Object\ProductFeed; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<PRODUCT_CATALOG_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'Test Feed', 'schedule' => array('interval' => 'DAILY','url' => 'http://www.example.com/sample_feed.tsv','hour' => '22'), ); echo json_encode((new ProductCatalog($id))->createProductFeed( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.productcatalog import ProductCatalog from facebook_business.adobjects.productfeed import ProductFeed from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'Test Feed', 'schedule': {'interval':'DAILY','url':'http://www.example.com/sample_feed.tsv','hour':'22'}, } print ProductCatalog(id).create_product_feed( 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 = \"<PRODUCT_CATALOG_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new ProductCatalog(id, context).createProductFeed() .setName(\"Test Feed\") .setSchedule(\"{\\"interval\\":\\"DAILY\\",\\"url\\":\\"http://www.example.com/sample_feed.tsv\\",\\"hour\\":\\"22\\"}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end product_catalog = FacebookAds::ProductCatalog.get(id) product_feeds = product_catalog.product_feeds.create({ name: 'Test Feed', schedule: {'interval':'DAILY','url':'http://www.example.com/sample_feed.tsv','hour':'22'}, })

تمكنك المعلمة schedule من جدولة تحميل قائمة البيانات. تتضمن الخيارات interval وurl وhour. كما يمكن أن تتضمن أيضًا day_of_week وminute وusername وpassword.

ملاحظة: بالنسبة إلى username وpassword، فإننا ندعم المصادقة الأساسية على HTTP وFTP.

مثال - جدولة تحميل قائمة البيانات

schedule: {"day_of_week":"FRIDAY","hour":17,"interval_count":1,"interval":"DAILY","minute":42,"next_scheduled_upload_time":"","password":pwd123,"status":"active","timezone":"Atlantic/Canary","url":"https://www.abc.com","username":aname}

تحديث عنصر فردي

يمكنك تحديث بيانات عنصر فردي بشكل فوري. يمكنك تضمين الحقول التي تم تحديثها في HTTP POST، حيث يكون retailer_id هو معرف العنصر من قائمة البيانات. يجب أن يكون بتشفير base64url.

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

راجع الحقول القابلة للتغير في المنتجات، المرجع.

لا توفر قوائم بيانات العناصر من خلال تحديثات العنصر الفردي أو لا تحاول إنشائها أو حذفها من خلال API. يمكن أن يؤدي هذا إلى تعطيل أي تحديثات أو عمليات حذف للعناصر التي أنشأتها باستخدام API حيث إننا لا نتتبعها من خلال قائمة البيانات.

جدولة عمليات الحصول على قائمة البيانات

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

إذا كنت تستخدم API لإنشاء قوائم البيانات أو إدارتها، فستحتاج إلى إرسال طلب API إلينا بتفاصيل جدول التحديث الذي تريد إنشاءه:

curl \
  -F 'name=Test Feed' \
  -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/<API_VERSION>/<CATALOG_ID>/product_feeds

نحصل على قوائم بيانات العناصر من النظام حسب الجدول الذي تحدده. يتوفر نوعان من الجداول التي يمكنك تحديدها:

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

على سبيل المثال: update_schedule بمعدل التكرار HOURLY واستبدل schedule بمعدل التكرار DAILY.

نوصي بإعداد 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/<API_VERSION>/<CATALOG_ID>/product_feeds

الاستجابة:

{ "id" : {FEED_ID} }

راجع قائمة البيانات، المرجع ومرجع جدولة قائمة البيانات.