โฆษณาการท่องเที่ยว

โปรโมทคลังรายการท่องเที่ยวของคุณบน Facebook โดยอัตโนมัติ โฆษณาการท่องเที่ยวของ Facebook ใช้สัญญาณแสดงความประสงค์ข้ามอุปกรณ์เพื่อโปรโมทตัวเลือกการท่องเที่ยวที่เกี่ยวข้องจากคลังรายการของคุณโดยอัตโนมัติด้วยชิ้นงานโฆษณาที่ไม่ซ้ำกันบน Facebook

โฆษณาการท่องเที่ยวรองรับโฆษณาโรงแรมโฆษณาเที่ยวบิน และโฆษณาปลายทาง

คำแนะนำนี้จะถือว่า

  • คุณมีแค็ตตาล็อกและชุดสินค้าพร้อมแล้ว
  • คุณได้ตั้งค่าเหตุการณ์การท่องเที่ยวที่จำเป็นบนเว็บไซต์หรือในแอพมือถือของคุณแล้ว
  • (จำเป็น) คุณได้สร้างเพจ Facebook และบัญชีโฆษณาแล้ว

กลยุทธ์การกำหนดเป้าหมาย

โฆษณาการท่องเที่ยวรองรับกลยุทธ์การกำหนดเป้าหมายแบบต่างๆ คุณสามารถผลักดันวัตถุประสงค์ทางธุรกิจต่างๆ โดยนำเสนอชุดสินค้าที่เหมาะสมให้กับกลุ่มเป้าหมายที่ถูกกลุ่มได้ดังต่อไปนี้

ตั้งค่าโฆษณาการท่องเที่ยว

เมื่อสร้างโฆษณาการท่องเที่ยว คุณจะต้องทำตามขั้นตอนเดียวกับที่คุณทำเมื่อตั้งค่าโฆษณา Facebook ประเภทอื่นด้วย API ดังนี้

ขั้นตอนที่ 1 สร้างแคมเปญ

โฆษณาการท่องเที่ยวใช้วัตถุประสงค์ PRODUCT_CATALOG_SALES ระบุแค็ตตาล็อกการท่องเที่ยวใน promoted_object ที่ระดับแคมเปญ ดังนี้

use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;
use FacebookAds\Object\Values\CampaignObjectiveValues;

$campaign = new Campaign(null, 'act_<AD_ACCOUNT_ID>');
$campaign->setData(array(
  CampaignFields::NAME => 'Product Catalog Sales Campaign',
  CampaignFields::OBJECTIVE => CampaignObjectiveValues::PRODUCT_CATALOG_SALES,
  CampaignFields::PROMOTED_OBJECT => array(
    'product_catalog_id' => <PRODUCT_CATALOG_ID>,
  ),
));

$campaign->create(array(
  Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
));
from facebookads.adobjects.campaign import Campaign

campaign = Campaign(parent_id='act_<AD_ACCOUNT_ID>')
campaign[Campaign.Field.name] = 'Product Catalog Sales Campaign'
objective = Campaign.Objective.product_catalog_sales
campaign[Campaign.Field.objective] = objective
campaign[Campaign.Field.promoted_object] = {
    'product_catalog_id': <PRODUCT_CATALOG_ID>,
}

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
Campaign campaign = new AdAccount(act_<AD_ACCOUNT_ID>, context).createCampaign()
  .setName("Product Catalog Sales Campaign Group")
  .setObjective(Campaign.EnumObjective.VALUE_PRODUCT_CATALOG_SALES)
  .setPromotedObject("{\"product_catalog_id\":\"" + <PRODUCT_CATALOG_ID> + "\"}")
  .setStatus(Campaign.EnumStatus.VALUE_PAUSED)
  .execute();
String campaign_id = campaign.getId();
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/v2.11/act_<AD_ACCOUNT_ID>/campaigns

ขั้นตอนที่ 2 สร้างชุดโฆษณา

เมื่อคุณมีแคมเปญและ campaign_id แล้ว คุณจะสามารถสร้างชุดโฆษณาได้ โดยชุดโฆษณาจะกำหนดตัวเลือกการประมูลและการกำหนดเป้าหมายให้กับโฆษณาของคุณ

การกำหนดเป้าหมายซ้ำ

หากต้องการกำหนดเป้าหมายซ้ำให้กับผู้เข้าชมเว็บไซต์หรือแอพ ให้ใช้กลุ่มเป้าหมายแบบไดนามิกประเภทเดียวกับชุดสินค้าที่คุณกำลังโปรโมท เช่น โปรโมทชุดโรงแรมสำหรับกลุ่มเป้าหมายโรงแรม ชุดเที่ยวบินสำหรับกลุ่มเป้าหมายเที่ยวบิน และชุดปลายทางสำหรับกลุ่มเป้าหมายปลายทาง

การขายพ่วงสินค้าและต่อยอดการขาย

หากต้องการขายพ่วงสินค้าและต่อยอดการขายกับผู้ที่ได้ซื้อในเว็บไซต์และ/หรือแอพของคุณ ให้ใช้กลุ่มเป้าหมายแบบไดนามิกที่มีผู้ที่ทำการซื้อรวมอยู่ด้วย และโปรโมทตัวเลือกการท่องเที่ยวจากแค็ตตาล็อกอื่นให้กับบุคคลเหล่านี้ เช่น กำหนดเป้าหมายไปที่กลุ่มเป้าหมายที่ซื้อเที่ยวบินโดยใช้ชุดโรงแรมหรือชุดเที่ยวบินอื่นโดยเน้นการเลือกที่นั่ง

การหาลูกค้ารายใหม่

  • สร้างกลุ่มเป้าหมายโดยใช้การกำหนดเป้าหมายตามข้อมูลพื้นฐานทางประชากรศาสตร์ เช่น ผู้หญิงในสหรัฐฯ ที่อายุมากกว่า 18 ปี
  • รวมลูกค้าที่กำหนดเป้าหมายตามแคมเปญการกำหนดเป้าหมายซ้ำที่มีอยู่ แต่เลือกคัดผู้ที่ได้ทำการซื้อในช่วง 10 วันที่ผ่านมาออกไป
  • ใช้ชุดสินค้าแบบกว้างๆ ที่มีโรงแรมมากกว่า 100 แห่ง
  • ปรับให้เหมาะสมสำหรับ OFFSITE_CONVERSIONS โดยใช้สัญญาณแสดงความประสงค์ที่ชัดเจนยิ่งขึ้น เช่น Purchase หรือ InitiateCheckout

โปรดดูโฆษณาแค็ตตาล็อก Advantage+, การกำหนดกลุ่มเป้าหมายแบบกว้างประกอบ

สร้างตัวอย่างชุดโฆษณา

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 => 'Product Catalog Sales Adset',
  AdSetFields::BID_AMOUNT => 3000,
  AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
  AdSetFields::OPTIMIZATION_GOAL =>
    AdSetOptimizationGoalValues::OFFSITE_CONVERSIONS,
  AdSetFields::DAILY_BUDGET => 15000,
  AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
  AdSetFields::TARGETING => array(
    TargetingFields::GEO_LOCATIONS => array(
      'countries' => array('US'),
    ),
    TargetingFields::DYNAMIC_AUDIENCE_IDS => array(<DYNAMIC_AUDIENCE_ID>),
  ),
  AdSetFields::PROMOTED_OBJECT => array(
    'product_set_id' => <PRODUCT_SET_ID>,
  ),
));

$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=ad_account_id)
adset[AdSet.Field.name] = 'Product Catalog Sales Adset'
adset[AdSet.Field.bid_amount] = 3000
adset[AdSet.Field.billing_event] = AdSet.BillingEvent.impressions
adset[AdSet.Field.optimization_goal] = \
    AdSet.OptimizationGoal.offsite_conversions
adset[AdSet.Field.daily_budget] = 15000
adset[AdSet.Field.campaign_id] = campaign_id
adset[AdSet.Field.targeting] = {
    Targeting.Field.geo_locations: {
        Targeting.Field.countries: ['US'],
    },
    Targeting.Field.dynamic_audience_ids: [
        dynamic_audience_id,
    ],
}
adset[AdSet.Field.promoted_object] = {
    'product_set_id': product_set_id,
}

adset.remote_create()
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
  .setName("Product Catalog Sales Adset")
  .setBidAmount(3000L)
  .setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
  .setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_OFFSITE_CONVERSIONS)
  .setDailyBudget(15000L)
  .setCampaignId(<CAMPAIGN_ID>)
  .setTargeting(
    new Targeting()
      .setFieldDynamicAudienceIds(Arrays.asList(<DYNAMIC_AUDIENCE_ID>))
      .setFieldGeoLocations(
        new TargetingGeoLocation()
          .setFieldCountries(Arrays.asList("US"))
      )
  )
  .setPromotedObject("{\"product_set_id\":\"" + <PRODUCT_SET_ID> + "\"}")
  .setStatus(AdSet.EnumStatus.VALUE_PAUSED)
  .execute();
String ad_set_id = adSet.getId();
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/v2.11/act_<AD_ACCOUNT_ID>/adsets

โฆษณาการท่องเที่ยวไม่รองรับข้อมูลจำเพาะของการกำหนดกลุ่มเป้าหมายแบบไดนามิกแบบอินไลน์ในชุดโฆษณา คุณจะต้องสร้างกลุ่มเป้าหมายแยกต่างหากก่อน

ขั้นตอนที่ 3 สร้างชิ้นงานโฆษณา

คุณสามารถใช้แท็กเทมเพลตในชิ้นงานโฆษณาของคุณสำหรับโฆษณาการท่องเที่ยวได้ เมื่อ Facebook แสดงโฆษณาของคุณ เราจะแทนที่แท็กเทมเพลตด้วยตัวเลือกการท่องเที่ยวจริงของบุคคลนั้นๆ คุณสามารถใช้แท็กเทมเพลตในตัวโฆษณาและใน URL ที่ผู้คนจะเห็นเมื่อคลิกโฆษณาได้

ใช้ช่อง template_url_spec เพื่อระบุ URL ที่จะปรากฏหลังจากที่มีคนคลิกโฆษณา หากคุณไม่ได้ระบุหรือเราไม่ได้รับข้อมูลดังกล่าว เมื่อเราเรนเดอร์โฆษณา เราจะแสดง URL จากแค็ตตาล็อก สำหรับโฆษณาเที่ยวบิน คุณจำเป็นต้องกรอกช่องนี้หากคุณไม่ได้ระบุ URL ในแค็ตตาล็อก

คุณสามารถแสดงสินค้าชิ้นเดียวหรือภาพสไลด์ที่มีสินค้าหลายชิ้นก็ได้ สำหรับโฆษณาสินค้าชิ้นเดียว คุณจะสามารถแสดงรูปภาพของสินค้าเดียวกันในภาพสไลด์ได้หลายภาพ โดยจะถือว่าแค็ตตาล็อกของคุณมีรูปภาพหลายรูปสำหรับสินค้าแต่ละชิ้น อีกทั้งยังสามารถแสดงการ์ดแบบนิ่งผสมกับการ์ดแบบไดนามิกได้อีกด้วย โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกชิ้นงานโฆษณาที่โฆษณาแค็ตตาล็อก Advantage+, การสร้างเทมเพลตชิ้นงานโฆษณา

ตัวอย่างต่อไปนี้แสดงวิธีสร้างชิ้นงานโฆษณาแบบภาพสไลด์สำหรับโฆษณาโรงแรมโฆษณาปลายทางและโฆษณาเที่ยวบินจะมีการตั้งค่าที่คล้ายคลึงกัน

use FacebookAds\Object\AdCreative;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\Fields\AdCreativeLinkDataFields;
use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields;
use FacebookAds\Object\Values\AdCreativeCallToActionTypeValues;
use FacebookAds\Object\AdCreativeObjectStorySpec;
use FacebookAds\Object\AdCreativeLinkData;

$object_story_spec = new AdCreativeObjectStorySpec();
$object_story_spec->setData(array(
  AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>,
  AdCreativeObjectStorySpecFields::TEMPLATE_DATA =>
    (new AdCreativeLinkData())->setData(array(
      AdCreativeLinkDataFields::MESSAGE =>
        'Book your upcoming stay in {{hotel.city}}',
      AdCreativeLinkDataFields::NAME => '{{hotel.name | titleize}}',
      AdCreativeLinkDataFields::LINK => '<LINK>',
      AdCreativeLinkDataFields::DESCRIPTION =>
        '{{hotel.description}}',
      AdCreativeLinkDataFields::ADDITIONAL_IMAGE_INDEX => 0,
      AdCreativeLinkDataFields::CALL_TO_ACTION => array(
        'type' => AdCreativeCallToActionTypeValues::BOOK_TRAVEL,
      ),
    )),
));

$creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>');
$creative->setData(array(
  AdCreativeFields::NAME => 'Dynamic Ad Template Creative Sample',
  AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
  AdCreativeFields::TEMPLATE_URL_SPEC =>
    array(
      'config' => array(
        'app_id' => '123456789012345',
      ),
      'ios' => array(
        'url' => 'example://home/hotel'.
          '?id={{hotel.hotel_id | urlencode}}'.
          '&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}'.
          '&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}',
      ),
      'web' => array(
        'url' => 'http://www.example.com/hotel'.
          '?id={{hotel.hotel_id | urlencode}}'.
          '&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}'.
          '&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}',
      )
    ),
  AdCreativeFields::PRODUCT_SET_ID => <PRODUCT_SET_ID>,
));

$creative->create();
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativeobjectstoryspec \
    import AdCreativeObjectStorySpec

story = AdCreativeObjectStorySpec()
story[story.Field.page_id] = <PAGE_ID>
story[story.Field.template_data] = {
    'message': 'Book your upcoming stay in {{hotel.city}}',
    'name': '{{hotel.name | titleize}}',
    'link': '<LINK>',
    'description': '{{hotel.description}}',
    'additional_image_index': 0,
    'call_to_action': {
        'type': 'BOOK_TRAVEL',
    },
}

creative = AdCreative(parent_id='act_<AD_ACCOUNT_ID>')
creative[AdCreative.Field.name] = 'Dynamic Ad Template Creative Sample'
creative[AdCreative.Field.object_story_spec] = story
template_url = ('http://www.example.com/hotel.aspx?id={{hotel.hotel_id}}'
                '&startDate={{trip.checkin_date date_format:Y-m-d}}'
                '&endDate={{trip.checkout_date date_format:Y-m-d}}')
creative[AdCreative.Field.template_url] = template_url
creative[AdCreative.Field.product_set_id] = <PRODUCT_SET_ID>
creative.remote_create()
curl \
  -F 'name=Dynamic Ad Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "call_to_action": {"type":"BOOK_TRAVEL"}, 
      "description": "{{hotel.description}}", 
      "link": "<LINK>", 
      "message": "Book your upcoming stay in {{hotel.city}}", 
      "name": "{{hotel.name | titleize}}" 
    } 
  }' \
  -F 'template_url_spec={ 
    "config": {"app_id":"123456789012345"}, 
    "ios": { 
      "url": "example:\/\/home\/hotel?id={{hotel.hotel_id | urlencode}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/www.example.com\/hotel?id={{hotel.hotel_id | urlencode}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives

การต่อยอดการขายเที่ยวบิน (API เวอร์ชั่น 2.10 ขึ้นไปเท่านั้น)

หากต้องการต่อยอดการขายตัวเลือกต่างๆ เช่น ให้สิทธิ์กลุ่มเป้าหมายที่ซื้อเที่ยวบินได้เลือกที่นั่งหรือขึ้นเครื่องได้ก่อน ให้ทำดังนี้

  1. ระบุกลุ่มเป้าหมายโดยใส่เฉพาะเหตุการณ์ PURCHASE
  2. (แนะนำ) ใน recommender_settings ของชิ้นงานโฆษณา ให้ระบุเหตุการณ์ PURCHASE เพื่อแนะนำโฆษณา
curl \
  -F 'name=Advantage+ Catalog Ad Template Creative Up-sell Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "call_to_action": {"type":"LEARN_MORE"}, 
      "description": "{{flight.description}}", 
      "link": "<LINK>", 
      "message": "Book extra leg room on your flight from {{flight.origin_city}} to {{flight.destination_city}}", 
    } 
  }' \
  -F 'template_url_spec={ 
    "config": {"app_id":"<APP_ID>"}, 
    "ios": { 
      "url": "example:\/\/home\/flight?id={{flight.origin_airport}}&startDate={{trip.departing_departure_date date_format:Y-m-d | urlencode}}&endDate={{trip.returning_departure_date date_format:Y-m-d | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/www.example.com\/flight?id={{flight.origin_airport}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.returning_departure_date date_format:Y-m-d | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<FLIGHT_SET_ID>' \
  -F 'recommender_settings'={"preferred_events":["Purchase"]}\ 
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/VERSION/act_<AD_ACCOUNT_ID>/adcreatives

การออกแบบโอเวอร์เลย์

โอเวอร์เลย์จะช่วยให้ผู้ลงโฆษณาสามารถเพิ่มข้อมูลการกำหนดราคา (เป็นราคาโดยตรงหรือส่วนลดเป็นเปอร์เซ็นต์) สำหรับสินค้าแต่ละชิ้นภายในโฆษณาแค็ตตาล็อก Advantage+ ได้

ตัวเลือกโอเวอร์เลย์ตามประเภทแค็ตตาล็อก

คุณสามารถใช้โอเวอร์เลย์ประเภทต่อไปนี้ได้ โดยขึ้นอยู่กับประเภทแค็ตตาล็อกที่คุณใช้ในชุดโฆษณา

  • โรงแรม: price, strikethrough และ % off
  • ปลายทาง: price
  • เที่ยวบิน: price

หมายเหตุ: ตัวเลือกโอเวอร์เลย์ข้างต้นรองรับแท็กเทมเพลตที่เกี่ยวข้องกับราคาทั้งหมดสำหรับแค็ตตาล็อกแต่ละประเภท โปรดดูแท็กเทมเพลตสำหรับแค็ตตาล็อกแต่ละประเภทที่โรงแรมปลายทาง และเที่ยวบิน

ตัวเลือกการออกแบบโอเวอร์เลย์

ระบบจะดึงข้อมูลการกำหนดราคาแบบไดนามิกจากคอลัมน์ราคาและราคาพิเศษของฟีด ผู้ลงโฆษณาสามารถเลือกปรับแต่งโอเวอร์เลย์ของโฆษณาแค็ตตาล็อก Advantage+ ได้หลายแบบดังต่อไปนี้

  • รูปทรง: วงรี วงกลม และสามเหลี่ยม
  • ตำแหน่ง: มุมตายตัว 4 มุม ได้แก่ TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT และ BOTTOM_RIGHT ในกรณีที่ใช้รูปทรงสามเหลี่ยม ระบบจะรองรับเฉพาะ TOP_LEFT และ TOP_RIGHT
  • แบบอักษร: รายการแบบอักษรที่กำหนดไว้ล่วงหน้า เช่น Droid Serif, Open Sans และอื่นๆ
  • ประเภทโอเวอร์เลย์ที่รองรับ: price, strikethrough และ % offหมายเหตุ: strikethrough และ % off ใช้ได้กับโรงแรมเท่านั้น

เรียนรู้เพิ่มเติมเกี่ยวกับวิธีเพิ่มโอเวอร์เลย์

ตัวอย่างโอเวอร์เลย์ราคาที่มีการขีดทับสำหรับโฆษณาโรงแรม

curl \
  -F 'name=Test Templates in Overlay' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>",
    "template_data": {
      "description": "Description",
      "link": "<LINK>", 
      "name": "Name: {{hotel.name}}",
      "message" : "Come visit {{hotel.city}}!",
      "image_overlay_spec": {
        "overlay_template":"pill_with_text",
        "text_font":"droid_serif_regular",
        "text_type":"strikethrough_price",
        "position":"top_left",
        "theme_color":"background_e50900_text_ffffff",
        "float_with_margin":"true",
        "text_template_tags": ["{{hotel.price round}}", "{{hotel.sale_price round}}"],
      }
    }
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'template_url=http://www.example.com' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.10/act_897427477067185/adcreatives

หากต้องการสร้างโฆษณา ให้ใช้ ad_set_id และ creative_id

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/v21.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+ สำหรับแค็ตตาล็อกของคุณได้ด้วย API ภาพตัวอย่างโฆษณา ใส่พารามิเตอร์ product_item_ids เพื่อระบุรายการในแค็ตตาล็อกที่จะแสดงในภาพตัวอย่าง

สร้างภาพตัวอย่างโฆษณาของคุณด้วย API ภาพตัวอย่างโฆษณา ใส่ product_item_ids เพื่อระบุรายการในแค็ตตาล็อกที่จะปรากฏในภาพตัวอย่าง รวมถึง start_date และ end_date เพื่อระบุวันที่ที่ต้องการ

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/v21.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]

  • โรงแรม: รายการโทเค็น FBID ของโรงแรมหรือ ID ของโรงแรมที่เข้ารหัสแบบ Base64url โดยโทเค็นแต่ละรายการจะอยู่ในรูปแบบ hotel_catalog:{catalog_id}:{base64urlencode(hotel_id)}
  • ปลายทาง: รายการโทเค็น FBID ของปลายทางหรือ ID ของปลายทางที่เข้ารหัสแบบ Base64url โดยโทเค็นแต่ละรายการจะอยู่ในรูปแบบ destination_catalog:{catalog_id}:{base64urlencode(destination_id)}
  • เที่ยวบิน: โทเค็น FBID ของเที่ยวบินหรือ ID ของเที่ยวบินที่เข้ารหัสแบบ Base64url โดยโทเค็นแต่ละรายการจะอยู่ในรูปแบบ flight_catalog:{catalog_id}:{base64urlencode(destination_id)}

start_date

ประเภท: string

เรนเดอร์ภาพตัวอย่างโดยใช้สัญญาณแสดงความประสงค์ของผู้ใช้ เช่น 2016-12-24

  • สำหรับโรงแรม สัญญาณนี้จะเป็นค่าของ trip.checkin_date
  • สำหรับปลายทาง สัญญาณนี้จะเป็นค่าของ trip.travel_start
  • สำหรับเที่ยวบิน สัญญาณนี้จะเป็นค่าของ trip.departing_departure_date

end_date

ประเภท: string

เรนเดอร์ภาพตัวอย่างโดยใช้สัญญาณแสดงความประสงค์ของผู้ใช้ เช่น 2017-01-01

  • สำหรับโรงแรม สัญญาณนี้จะเป็นค่าของ trip.checkout_date
  • สำหรับปลายทาง สัญญาณนี้จะเป็นค่าของ trip.travel_end
  • สำหรับเที่ยวบิน สัญญาณนี้จะเป็นค่าของ trip.returning_departure_date

ดึงข้อมูลเชิงลึกและสถิติของโฆษณาการท่องเที่ยว

หากต้องการดึงข้อมูลเชิงลึกของโฆษณาสำหรับอ็อบเจ็กต์การท่องเที่ยว เช่น โรงแรม ให้ทำการเรียกใช้ GET ไปที่ /insightsหมายเหตุ: อย่าลืมเพิ่ม product_id ให้กับพารามิเตอร์ breakdown

สำหรับโรงแรมและปลายทาง ข้อมูลแยกย่อย product id จะแสดงสำหรับ hotel_id หรือ destination_id แต่ละรายการ สำหรับเที่ยวบิน ข้อมูลแยกย่อย product id จะแสดง origin_airport:destination_airport

ดึงข้อมูลความคิดเห็นและการกดถูกใจ

หากต้องการดึงข้อมูลความคิดเห็นหรือ "การกดถูกใจ" ของโฆษณาแค็ตตาล็อก Advantage+ ให้ใช้ API โพสต์แบบไดนามิก