يصف هذا المستند وحدات إعلانية متنوعة صُممت بهدف زيادة عمليات التثبيت والتفاعل على تطبيقات أجهزة الكمبيوتر وتطبيقات الهواتف المحمولة.
يجب استخدام هذه الوحدة الإعلانية لجذب الأشخاص نحو تطبيقات أجهزة الكمبيوتر وتطبيقات الهواتف المحمولة لديك بغرض التثبيت أو التفاعل باستخدام تصميمات الصور أو الفيديو أو الإعلانات الدوّارة أو تصميمات المعاينة التفاعلية.
نظريًا، يسمح ذلك بأشكال الإعلانات التالية:
الصورة | الفيديو | الإعلان الدوّار | معاينة تفاعلية | |
---|---|---|---|---|
إعلان تثبيت على الهواتف المحمولة | ✓ | ✓ | ✓ | ✓ |
إعلان تفاعل على الهواتف المحمولة | ✓ | ✓ | ✓ | |
إعلان تثبيت على أجهزة الكمبيوتر | ✓ | ✓ | ✓ | |
إعلان تفاعل على أجهزة الكمبيوتر | ✓ | ✓ | ✓ | |
إعلان تطبيق أجهزة كمبيوتر للبضائع الافتراضية | ✓ | ✓ | ✓ |
تُعد إعلانات تطبيقات أجهزة الكمبيوتر للبضائع الافتراضية مجموعة فرعية للتفاعل على أجهزة الكمبيوتر بحيث يمكنك استخدام عروض البضائع الافتراضية لإعادة إشراك اللاعبين لديك للعودة إلى تطبيقك. على سبيل المثال، قد يقدم تطبيق خصمًا على أحد العناصر أو يعرض مجموعة من العملات داخل التطبيق بهدف إعادة إشراك الدافعين السابقين. ويمكنك الرجوع إلى هنا للحصول على تعليمات حول كيفية إعداد تطبيقك بحيث يقبل عمليات الدفع.
وكمرجع، ما يلي هو شكل الوحدة الإعلانية المتضمنة صورة للتثبيت على الهواتف المحمولة:
هذا هو شكل إعلان تطبيق أجهزة كمبيوتر لبضائع افتراضية متضمنًا صورة
عند إنشاء الإعلان، يجب مراعاة المتطلبات التالية:
user_os
في مواصفات الاستهداف على الهواتف المحمولة. ويجب أن يحتوي الموضع على الحقل device_platforms
بالقيمة ["mobile
"] ويوصى بشدة باستخدام حقول المواصفات الأخرى في استهداف الأجهزة المحمولة على فيسبوك. ويمكنك اختياريًا تحديد publisher_platforms
إذا كنت تريد استخدام منصات معينة فقط.device_platforms
بالقيمة desktop
. ويمكنك اختياريًا تحديد facebook_positions
إذا كنت لا تريد عرض الموجز والعمود الأيسر في فيسبوك على أجهزة الكمبيوتر.GET_OFFER
للبضائع الافتراضية، يجب حينها توفير خصم على السعر. ولمزيد من المعلومات، يمكنك الرجوع إلى البضائع الافتراضية.تتوفر الدعوات لاتخاذ الإجراء الإضافية الموجودة أدناه لإعلانات التطبيق ضمن الحقل call_to_action
في المنشور أو object_story_spec
الخاص بتصميم الإعلان. ويمكنك أيضًا تحديد رابط لموضع معين خاص بتطبيق الهواتف المحمولة في الحقل app_link
أو كائن بضائع افتراضية خاص بتطبيق أجهزة الكمبيوتر في الحقل product_link
.
المفتاح | القيمة | مطلوب |
---|---|---|
type (النوع) | فيما يلي أنواع الدعوة لاتخاذ إجراء على الهواتف المحمولة بغض النظر عن التثبيت أو التفاعل: | نعم |
value (القيمة) | قاموس بلغة JSON يضم: | نعم
|
value.link | يشير إلى متجر التطبيقات أو متجر Google Play أو عنوان URL لتطبيق اللوحة على فيسبوك، على سبيل المثال https://itunes.apple.com/us/app/facebook/id284882215 | نعم |
value.app_link | لتحديد وجهة رابط لموضع معين فقط لتطبيقات الهواتف المحمولة، فعلى سبيل المثال | نعم، فقط لإعلانات التثبيت أو التفاعل على الهواتف المحمولة |
value.product_link | لتحديد عنوان URL الذي يشير إلى كائن بضائع افتراضية في Open Graph للمنتج. ويمكنك الرجوع إلى هنا لمعرفة تفاصيل حول الإعداد. | نعم، فقط للبضائع الافتراضية على أجهزة الكمبيوتر |
value.link_title | يتيح لك تخصيص اسم للرابط، حيث يظهر أسفل صورة الإعلان | لا |
لإنشاء إعلان تطبيق على الهواتف المحمولة أو أجهزة الكمبيوتر باستخدام صورة، يجب أولاً إنشاء منشور صفحة للرابط يتضمن صورة باستخدام الحقل object_story_spec: {'link_data': ...}
لدى تصميم الإعلان.
مثال:
curl -X POST \
-F 'name="Sample Creative"' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"link_data": {
"call_to_action": {
"type": "INSTALL_MOBILE_APP",
"value": {
"link": "<APP_STORE_URL>"
}
},
"image_hash": "<IMAGE_HASH>",
"link": "<APP_STORE_URL>",
"message": "Try it out"
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/adcreatives
بدلاً من ذلك، يمكنك إنشاء منشور الصفحة من خلال نقطة نهاية الأخبار بالصفحة واستخدام معرف المنشور في التصميم. يمكنك الرجوع إلى قسم الأمثلة أدناه للحصول على مزيد من الأمثلة.
لإنشاء إعلان تثبيت أو تفاعل لتطبيق هواتف محمولة باستخدام تنسيق الإعلان الدوّار، اتبع التعليمات الواردة في وثائق الإعلانات الدوّارة ولكن في كل حقول link
لدى child_attachments
، حدد رابطًا لمتجر التطبيقات.
لاحظ أنه يجب تحديد رابط متجر التطبيقات نفسه في كل child_attachment
. ولا يتعين عليك تحديد الرابط مرة أخرى في call_to_action:{'value':{'link':... }}}
curl -X POST \
-F 'name="Carousel app ad"' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"link_data": {
"message": "My message",
"link": "http://www.example.com/appstoreurl",
"caption": "WWW.ITUNES.COM",
"name": "The link name",
"description": "The link description",
"child_attachments": [
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
},
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
},
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
},
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
}
],
"multi_share_optimized": true
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/adcreatives
لإنشاء إعلان تطبيق باستخدام فيديو، يجب أولًا تحميل الفيديو إلى مكتبة مقاطع الفيديو بالحساب الإعلاني. وبعد ذلك، استخدم معرف الفيديو في الحقل object_story_spec: {'video_data':...}
لدى تصميم الإعلان.
مثال:
use FacebookAds\Object\AdCreative;
use FacebookAds\Object\AdCreativeVideoData;
use FacebookAds\Object\Fields\AdCreativeVideoDataFields;
use FacebookAds\Object\AdCreativeObjectStorySpec;
use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields;
use FacebookAds\Object\Fields\AdCreativeFields;
$video_data = new AdCreativeVideoData();
$video_data->setData(array(
AdCreativeVideoDataFields::IMAGE_URL => '<THUMBNAIL_URL>',
AdCreativeVideoDataFields::VIDEO_ID => <VIDEO_ID>,
AdCreativeVideoDataFields::CALL_TO_ACTION => array(
'type' => 'INSTALL_MOBILE_APP',
'value' => array(
'link' => '<APP_STORE_URL>',
),
),
));
$object_story_spec = new AdCreativeObjectStorySpec();
$object_story_spec->setData(array(
AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>,
AdCreativeObjectStorySpecFields::VIDEO_DATA => $video_data,
));
$creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>');
$creative->setData(array(
AdCreativeFields::NAME => 'Sample Creative',
AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
));
$creative->create();
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativeobjectstoryspec \
import AdCreativeObjectStorySpec
from facebookads.adobjects.adcreativevideodata \
import AdCreativeVideoData
video_data = AdCreativeVideoData()
video_data[AdCreativeVideoData.Field.description] = 'try it out'
video_data[AdCreativeVideoData.Field.video_id] = <VIDEO_ID>
video_data[AdCreativeVideoData.Field.image_url] = '<THUMBNAIL_URL>'
video_data[AdCreativeVideoData.Field.call_to_action] = {
'type': 'INSTALL_MOBILE_APP',
'value': {
'link': '<APP_STORE_URL>',
'link_title': 'Facebook',
},
}
object_story_spec = AdCreativeObjectStorySpec()
object_story_spec[AdCreativeObjectStorySpec.Field.page_id] = <PAGE_ID>
object_story_spec[AdCreativeObjectStorySpec.Field.video_data] = video_data
creative = AdCreative(parent_id='act_<AD_ACCOUNT_ID>')
creative[AdCreative.Field.name] = 'Sample Creative'
creative[AdCreative.Field.object_story_spec] = object_story_spec
creative.remote_create()
AdCreative adCreative = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdCreative()
.setName("Sample Creative")
.setObjectStorySpec(
new AdCreativeObjectStorySpec()
.setFieldPageId(<PAGE_ID>)
.setFieldVideoData(
new AdCreativeVideoData()
.setFieldCallToAction(
new AdCreativeLinkDataCallToAction()
.setFieldType(AdCreativeLinkDataCallToAction.EnumType.VALUE_INSTALL_MOBILE_APP)
.setFieldValue(
new AdCreativeLinkDataCallToActionValue()
.setFieldLink(<APP_STORE_URL>)
)
)
.setFieldLinkDescription("try it out")
.setFieldImageUrl(<THUMBNAIL_URL>)
.setFieldVideoId(<VIDEO_ID>)
)
)
.execute();
String ad_creative_id = adCreative.getId();
curl \
-F 'name=Sample Creative' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"video_data": {
"call_to_action": {"type":"INSTALL_MOBILE_APP","value":{"link":"<APP_STORE_URL>"}},
"image_url": "<THUMBNAIL_URL>",
"video_id": "<VIDEO_ID>"
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives
بدلاً من ذلك، يمكنك إنشاء منشور الصفحة من خلال نقطة نهاية الفيديو بالصفحة واستخدام معرف الفيديو في التصميم. يمكنك الرجوع إلى قسم الأمثلة أدناه للحصول على مزيد من الأمثلة.
لاسترداد تفاصيل حول منشور الصفحة لديك، يمكنك الرجوع إلى رابط وثائق منشور صفحة أو فيديو وثائق منشور صفحة.
يمكنك سرد جميع منشورات الصفحات من عنصر الربط /promotable_posts
بالصفحة.
curl https://graph.facebook.com/{API_VERSION}/{PAGE_ID}/promotable_posts
لاسترداد تفاصيل حول تصميم الإعلان، يمكنك الرجوع إلى وثائق تصميم الإعلان.
pages_manage_ads
ADVERTISE
في الصفحة"call_to_action={'type':'LEARN_MORE', 'value':{'link':'https://itunes.apple.com/us/app/facebook/id284882215', 'app_link':'facebook://path/to/page'}}"
قبل تحديد رابط التطبيق، يجب التحقق من استخلاصه عن طريق استدعاء:
https://graph.facebook.com/{API_VERSION}/?type=og&scrape=true&id={APP_LINK}
لا تنطبق الرؤى سوى على الإعلانات التي تتضمن كائنًا مُروجًا له يحتوي على معرف التطبيق. للحصول على معرف التطبيق، سجّل التطبيق على فيسبوك.
تقدم Meta رؤىً يومية مجمعة حول المعلومات الديموغرافية للأشخاص الذين ثبتوا تطبيقك. لاستعادة هذه الرؤى، يجب استخدام رمز وصول تطبيق واستعلام
https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?&access_token={ACCESS_TOKEN}
كما يمكنك تقسيم الإحصاءات من خلال تحديد معلمة عنوان URL إضافية وهي breakdown
تكون مساوية لإحدى القيم التالية. يتعذر عليك حاليًا دمج التقسيمات.
الاسم | الوصف |
---|---|
| قسم إحصائياتك حسب عمر الجمهور وجنسه |
| قسم إحصائياتك حسب بلد الجمهور |
| قسم إحصائياتك حسب لغة الجمهور المحلية |
أمثلة:
https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?breakdown=gender_age&access_token={ACCESS_TOKEN} https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?breakdown=country&access_token={ACCESS_TOKEN} https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?breakdown=locale&access_token={ACCESS_TOKEN}
الخطوة الأولى. قم بإنشاء منشور الصفحة باستخدام صورة. لاحظ أنه يجب استخدام PAGE_ACCESS_TOKEN
وجلسة API الصفحة لإنشاء منشور صفحة.
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$params = array(
'message' => 'Sign up today',
'picture' => '<IMAGE_URL>',
'link' => '<LINK>',
'published' => 1,
'call_to_action' => array(
'type' => 'SIGN_UP',
'value' => array(
'link' => '<LINK>',
),
),
);
$data = Api::instance()->call(
'/'.<PAGE_ID>.'/feed',
RequestInterface::METHOD_POST,
$params)->getContent();
from facebookads import FacebookAdsApi
params = {
'massage': 'Sign up today.',
'picture': '<IMAGE_URL>',
'link': '<LINK>',
'published': 1,
'call_to_action': {
'type': 'SIGN_UP',
'value': {
'link': '<LINK>',
},
},
}
data = FacebookAdsApi.get_default_api().\
call('POST', (<PAGE_ID>, 'feed'), params=params)
curl \
-F 'message=Sign up today' \
-F 'picture=<IMAGE_URL>' \
-F 'link=<LINK>' \
-F 'published=1' \
-F 'call_to_action={"type":"SIGN_UP","value":{"link":"<LINK>"}}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PAGE_ID>/feed
الخطوة الثانية. إنشاء تصميم الإعلان (يكون {STORY_ID}
بالشكل '{PAGE_ID}_{POST_ID}'
)
curl -X POST \
-F 'object_story_id="<PAGE_ID>_<POST_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives
الخطوة الثالثة. استخدام التصميم في إعلان
curl -X POST \
-F 'name="My AdGroup with Redownload"' \
-F 'adset_id="<AD_SET_ID>"' \
-F 'creative={
"creative_id": "<CREATIVE_ID>"
}' \
-F 'redownload=1' \
-F 'status="PAUSED"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/ads
الخطوة الأولى. قم بإنشاء منشور الصفحة باستخدام صورة. لاحظ أنه يجب استخدام PAGE_ACCESS_TOKEN
وجلسة API الصفحة لإنشاء منشور صفحة.
curl -X POST \
-F 'message="This is a test message"' \
-F 'call_to_action={
"type": "BUY_NOW",
"value": {
"link": "{app-store-url}",
"app_link": "{deep-link}"
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/{page-id}/feed
الخطوة الثانية. إنشاء تصميم الإعلان
curl -X POST \
-F 'object_story_id="<PAGE_ID>_<POST_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives
الخطوة الثالثة. عيّن عرض الأسعار في المجموعة الإعلانية، تحسين النقرات، الدفع مقابل الظهور.
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Targeting;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'LifetimeBudgetSet',
AdsetFields::LIFETIME_BUDGET => 100000,
AdSetFields::BID_AMOUNT => 500,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
AdSetFields::OPTIMIZATION_GOAL => AdSetOptimizationGoalValues::LINK_CLICKS,
AdSetFields::PROMOTED_OBJECT => array(
'application_id' => <APP_ID>,
'object_store_url' => '<APP_STORE_URL>',
),
AdSetFields::TARGETING => (new Targeting())->setData(array(
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('US'),
),
TargetingFields::USER_OS => array(
'IOS',
),
TargetingFields::PUBLISHER_PLATFORMS => array(
'facebook',
'audience_network',
),
TargetingFields::FACEBOOK_POSITIONS => array('feed'),
)),
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::END_TIME =>
(new \DateTime("+1 week"))->format(\DateTime::ISO8601),
));
$adset->create(array(
AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));
import time
from facebookads.adobjects.adset import AdSet
adset = AdSet(parent_id='act_<AD_ACCOUNT_ID>')
adset.update({
AdSet.Field.name: 'LifetimeBudgetSet',
AdSet.Field.campaign_id: <CAMPAIGN_ID>,
AdSet.Field.lifetime_budget: 10000,
AdSet.Field.start_time: int(time.time()),
AdSet.Field.end_time: int(time.time() + 100000),
AdSet.Field.optimization_goal: AdSet.OptimizationGoal.link_clicks,
AdSet.Field.billing_event: AdSet.BillingEvent.impressions,
AdSet.Field.bid_amount: 500,
AdSet.Field.promoted_object: {
'application_id': <APP_ID>,
'object_store_url': '<APP_STORE_URL>',
},
AdSet.Field.targeting: {
'geo_locations': {
'countries': ['US'],
},
'user_os': ['iOS'],
Targeting.Field.publisher_platforms: ['facebook', 'audience_network'],
Targeting.Field.facebook_positions: ['feed'],
},
})
adset.remote_create(params={
'status': AdSet.Status.paused,
})
curl \
-F 'name=LifetimeBudgetSet' \
-F 'lifetime_budget=100000' \
-F 'bid_amount=500' \
-F 'billing_event=IMPRESSIONS' \
-F 'optimization_goal=LINK_CLICKS' \
-F 'promoted_object={"application_id":"<APP_ID>","object_store_url":"<APP_STORE_URL>"}' \
-F 'targeting={
"facebook_positions": ["feed"],
"geo_locations": {"countries":["US"]},
"publisher_platforms": ["facebook","audience_network"],
"user_os": ["IOS"]
}' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'end_time=2018-02-06T04:45:30+0000' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets
الخطوة الرابعة. استخدام التصميم في إعلان
use FacebookAds\Object\Ad;
use FacebookAds\Object\Fields\AdFields;
$data = array(
AdFields::NAME => 'My Ad',
AdFields::ADSET_ID => <AD_SET_ID>,
AdFields::CREATIVE => array(
'creative_id' => <CREATIVE_ID>,
),
);
$ad = new Ad(null, 'act_<AD_ACCOUNT_ID>');
$ad->setData($data);
$ad->create(array(
'redownload' => 1,
));
from facebookads.adobjects.ad import Ad
ad = Ad(parent_id='act_<AD_ACCOUNT_ID>')
ad[Ad.Field.name] = 'My Ad'
ad[Ad.Field.adset_id] = <AD_SET_ID>
ad[Ad.Field.creative] = {'creative_id': <CREATIVE_ID>}
ad[Ad.Field.redownload] = True
ad.remote_create(params={
'status': Ad.Status.paused,
})
Ad ad = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAd()
.setName("My Ad")
.setAdsetId(<AD_SET_ID>)
.setCreative(
new AdCreative()
.setFieldId(<CREATIVE_ID>)
)
.setRedownload(true)
.execute();
String ad_id = ad.getId();
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'redownload=1' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads
الخطوة الأولى. قم بإنشاء منشور الصفحة باستخدام صورة. لاحظ أنه يجب استخدام PAGE_ACCESS_TOKEN
وجلسة API الصفحة لإنشاء منشور صفحة.
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$params = array(
'message' => 'Check out this App today. Available on iTunes.',
'published' => 1,
'link' => '<APP_STORE_URL>',
'picture' => '<IMAGE_URL>',
'call_to_action' => array(
'type' => 'LEARN_MORE',
'value' => array(
'link' => '<APP_STORE_URL>',
'app_link' => '<APP_DEEP_LINK>',
),
),
);
$data = Api::instance()->call(
'/'.<PAGE_ID>.'/feed',
RequestInterface::METHOD_POST,
$params)->getContent();
from facebookads import FacebookAdsApi
params = {
'massage': 'Check out this App today. Available on iTunes.',
'picture': '<IMAGE_URL>',
'link': '<APP_STORE_URL>',
'published': 1,
'call_to_action': {
'type': 'LEARN_MORE',
'value': {
'link': '<APP_STORE_URL>',
'app_link': '<APP_DEEP_LINK>',
},
},
}
path = "/{}/feed".format(<PAGE_ID>)
data = FacebookAdsApi.get_default_api().call('POST', (path,), params=params)
curl \
-F 'message=Check out this App today. Available on iTunes.' \
-F 'published=1' \
-F 'link=<APP_STORE_URL>' \
-F 'picture=<IMAGE_URL>' \
-F 'call_to_action={
"type": "LEARN_MORE",
"value": {"link":"<APP_STORE_URL>","app_link":"<APP_DEEP_LINK>"}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PAGE_ID>/feed
الخطوة الثانية. إنشاء تصميم الإعلان
curl -X POST \
-F 'object_story_id="<PAGE_ID>_<POST_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives
الخطوة الثالثة. عيّن عرض الأسعار في المجموعة الإعلانية، تحسين لأحداث التطبيق، الدفع مقابل الظهور.
لاحظ أنه يتعين عليك أيضًا تعيين كائن المجموعة الإعلانية promoted_object
لتضمين custom_event_type
من أجل التحسين بناءً عليه، لذا يرجى الرجوع إلى وثائق المجموعة الإعلانية للحصول على مزيد من التفاصيل.
curl -X POST \
-F 'name="A CPA Ad Set optimized for App Events"' \
-F 'campaign_id="<AD_CAMPAIGN_ID>"' \
-F 'daily_budget=300' \
-F 'start_time="2024-11-28T11:20:19-0800"' \
-F 'end_time="2024-12-05T11:20:19-0800"' \
-F 'billing_event="IMPRESSIONS"' \
-F 'optimization_goal="OFFSITE_CONVERSIONS"' \
-F 'bid_amount=100' \
-F 'status="PAUSED"' \
-F 'promoted_object={
"application_id": "<APP_ID>",
"object_store_url": "<APP_STORE_URL>",
"custom_event_type": "PURCHASE"
}' \
-F 'targeting={
"facebook_positions": [
"feed"
],
"geo_locations": {
"countries": [
"US"
]
},
"user_os": [
"iOS"
]
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adsets
الخطوة الرابعة. استخدام التصميم في إعلان
use FacebookAds\Object\Ad;
use FacebookAds\Object\Fields\AdFields;
$data = array(
AdFields::NAME => 'My Ad',
AdFields::ADSET_ID => <AD_SET_ID>,
AdFields::CREATIVE => array(
'creative_id' => <CREATIVE_ID>,
),
);
$ad = new Ad(null, 'act_<AD_ACCOUNT_ID>');
$ad->setData($data);
$ad->create(array(
'redownload' => 1,
));
from facebookads.adobjects.ad import Ad
ad = Ad(parent_id='act_<AD_ACCOUNT_ID>')
ad[Ad.Field.name] = 'My Ad'
ad[Ad.Field.adset_id] = <AD_SET_ID>
ad[Ad.Field.creative] = {'creative_id': <CREATIVE_ID>}
ad[Ad.Field.redownload] = True
ad.remote_create(params={
'status': Ad.Status.paused,
})
Ad ad = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAd()
.setName("My Ad")
.setAdsetId(<AD_SET_ID>)
.setCreative(
new AdCreative()
.setFieldId(<CREATIVE_ID>)
)
.setRedownload(true)
.execute();
String ad_id = ad.getId();
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'redownload=1' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads
لاحظ أنه يجب استخدام PAGE_ACCESS_TOKEN
وجلسة API الصفحة لإنشاء منشور صفحة.
curl \
-F 'name=My Video' \
-F 'message=Check out this app!' \
-F 'thumbnail=<APP_STORE_URL>' \
-F 'published=0' \
-F 'call_to_action={"type":"INSTALL_MOBILE_APP","value":{"link":"<APP_STORE_URL>"}}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
curl \
-F 'name=My Video' \
-F 'message=Check out this app!' \
-F 'thumbnail=<APP_STORE_URL>' \
-F 'published=0' \
-F 'call_to_action={
"type": "LEARN_MORE",
"value": {"link":"<APP_STORE_URL>","app_link":"<APP_DEEP_LINK>"}
}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
curl \
-F 'name=My Video' \
-F 'message=Check out this app!' \
-F 'thumbnail=<THUMBNAIL_PATH>' \
-F 'published=0' \
-F 'call_to_action={"type":"PLAY_GAME","value":{"link":"<THUMBNAIL_PATH>"}}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
curl \
-F 'message=Buy coins now!' \
-F 'picture=<IMAGE_URL>' \
-F 'link=<LINK>' \
-F 'published=1' \
-F 'call_to_action={"type":"BUY_NOW","value":{"link":"<LINK>","product_link":"<PRODUCT_LINK>"}}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/feed
curl \
-F 'name=My Video' \
-F 'message=Buy coins now!' \
-F 'thumbnail=<THUMBNAIL_PATH>' \
-F 'published=0' \
-F 'call_to_action={
"type": "BUY_NOW",
"value": {"link":"<THUMBNAIL_PATH>","product_link":"<THUMBNAIL_PATH>"}
}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
قد تساعد إعلانات كتالوج Advantage+ في جذب الأشخاص من أجل تثبيت تطبيق الهواتف المحمولة. وهذا يمكّنك من إعادة استهداف الأشخاص من خلال إعلانات التثبيت على الهاتف المحمول، استنادًا إلى سلوك المستخدم.
الخطوة الأولى. إنشاء حملة إعلانية لكتالوج منتجات
curl -X POST \
-F 'name="App Installs Campaign with Dynamic Product Ads"' \
-F 'objective="OUTCOME_APP_PROMOTION"' \
-F 'status="PAUSED"' \
-F 'special_ad_categories=[]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns
الخطوة الثانية. إنشاء مجموعة إعلانية لمجموعة منتجات معينة مندرجة ضمن كتالوج المنتجات المذكور أعلاه
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'Mobile App Installs Ad Set with Dynamic Product Ads',
AdSetFields::BID_AMOUNT => 3000,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
AdSetFields::OPTIMIZATION_GOAL => AdSetOptimizationGoalValues::APP_INSTALLS,
AdSetFields::DAILY_BUDGET => 15000,
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::TARGETING => array(
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('US'),
),
TargetingFields::PUBLISHER_PLATFORMS => array(
'facebook',
'audience_network',
),
TargetingFields::DEVICE_PLATFORMS => array('mobile'),
TargetingFields::USER_OS => array(
'IOS',
),
TargetingFields::DYNAMIC_AUDIENCE_IDS => array(<PRODUCT_AUDIENCE_ID>),
),
AdSetFields::PROMOTED_OBJECT => array(
'product_set_id' => <PRODUCT_SET_ID>,
'application_id' => <APP_ID>,
'object_store_url' => '<APP_STORE_URL>',
),
));
$adset->create(array(
AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));
from facebookads.adobjects.adset import AdSet
from facebookads.adobjects.targeting import Targeting
adset = AdSet(parent_id='act_<AD_ACCOUNT_ID>')
adset.update({
AdSet.Field.name: 'Mobile App Installs Ad Set with Dynamic Product Ads',
AdSet.Field.promoted_object: {
'product_set_id': product_set_id,
'application_id': <APP_ID>,
'object_store_url': '<APP_STORE_URL>',
},
AdSet.Field.campaign_id: <CAMPAIGN_ID>,
AdSet.Field.daily_budget: 15000,
AdSet.Field.optimization_goal: AdSet.OptimizationGoal.app_installs,
AdSet.Field.billing_event: AdSet.BillingEvent.impressions,
AdSet.Field.bid_amount: 3000,
AdSet.Field.targeting: {
Targeting.Field.geo_locations: {
'countries': ['US'],
},
Targeting.Field.publisher_platforms: ['facebook', 'audience_network'],
Targeting.Field.device_platforms: ['mobile'],
Targeting.Field.user_os: [
'IOS',
],
Targeting.Field.dynamic_audience_ids: [
<PRODUCT_AUDIENCE_ID>,
],
},
})
adset.remote_create(params={
'status': AdSet.Status.paused,
})
curl \
-F 'name=Mobile App Installs Ad Set with Dynamic Product Ads' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'optimization_goal=APP_INSTALLS' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting={
"geo_locations": {"countries":["US"]},
"publisher_platforms": ["facebook","audience_network"],
"device_platforms": ["mobile"],
"user_os": ["IOS"],
"dynamic_audience_ids": ["<PRODUCT_AUDIENCE_ID>"]
}' \
-F 'promoted_object={
"product_set_id": "<PRODUCT_SET_ID>",
"application_id": "<APP_ID>",
"object_store_url": "<APP_STORE_URL>"
}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/adsets
الخطوة الثالثة. إنشاء تصميم إعلانات كتالوج Advantage+ باستخدام قالب
curl -X POST \
-F 'name="Advantage+ catalog ads template creative sample"' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"template_data": {
"call_to_action": {
"type": "INSTALL_MOBILE_APP",
"value": {
"link": "http://www.example.com/appstoreurl"
}
},
"message": "Test {{product.name | titleize}}",
"link": "http://www.example.com/appstoreurl",
"name": "Headline {{product.price}}",
"description": "Description {{product.description}}"
}
}' \
-F 'product_set_id="<PRODUCT_SET_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/adcreatives
الخطوة الرابعة. استخدام تصميم الإعلان المذكور أعلاه في إعلان
use FacebookAds\Object\Ad;
use FacebookAds\Object\Fields\AdFields;
$data = array(
AdFields::NAME => 'My Ad',
AdFields::ADSET_ID => <AD_SET_ID>,
AdFields::CREATIVE => array(
'creative_id' => <CREATIVE_ID>,
),
);
$ad = new Ad(null, 'act_<AD_ACCOUNT_ID>');
$ad->setData($data);
$ad->create(array(
'redownload' => 1,
));
from facebookads.adobjects.ad import Ad
ad = Ad(parent_id='act_<AD_ACCOUNT_ID>')
ad[Ad.Field.name] = 'My Ad'
ad[Ad.Field.adset_id] = <AD_SET_ID>
ad[Ad.Field.creative] = {'creative_id': <CREATIVE_ID>}
ad[Ad.Field.redownload] = True
ad.remote_create(params={
'status': Ad.Status.paused,
})
Ad ad = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAd()
.setName("My Ad")
.setAdsetId(<AD_SET_ID>)
.setCreative(
new AdCreative()
.setFieldId(<CREATIVE_ID>)
)
.setRedownload(true)
.execute();
String ad_id = ad.getId();
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'redownload=1' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads
curl \ -X POST \ -F "name=<name>" \ -F "source=<>" \ -F "access_token=<access_token>" \ "https://graph.facebook.com/<API_VERSION>/act_<account_id>/adplayables"
name
: يمثل الاسم المُستخدم لتمييز أصل الإعلان عن الإعلانات الأخرى ذات المعاينة التفاعلية في الحساب الإعلاني؛ فعلى سبيل المثال {ad_name}
-> {playable_asset_name}
source
: يمثل المسار المطلق للملف على جهازك المحليaccess_token
: يمكن إنشاء الرمز من مستكشف واجهة Graph APIيمكنك إضافة علامتين وصفيتين إلى ملف HTML 5 بمعاينة تفاعلية لديك. بذلك تتمكّن Meta من تحديد مصدر الإعلان بمعاينة تفاعلية في الإعلانات بتطبيقك.
... <head> ... <meta name="ref-application-id" content="<YOUR_APP_ID>"> <meta name="ref-asset-id" content="<YOUR_ASSET_ID>"> ... </head> ...
curl \ -F 'name=Sample Creative' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "video_data": { "call_to_action": {"type":"INSTALL_MOBILE_APP","value":{"application":<APP_ID>,"link":"<APP_STORE_URL>"}}, "image_url": "<THUMBNAIL_URL>", "link_description": "try it out", "video_id": "<VIDEO_ID>" } }' \ -F 'playable_asset_id=<PLAYABLE_ASSET_ID>' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives
curl \ -F 'name=My Ad' \ -F 'status=ACTIVE' \ -F 'adset_id=<AD_SET_ID>' \ -F 'creative={"creative_id":"<CREATIVE_ID>"}' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ads