โฆษณาการท่องเที่ยว - การจัดการกลุ่มเป้าหมาย

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

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

สร้างกลุ่มเป้าหมายการท่องเที่ยวใน 2 ขั้นตอน ดังนี้:

ขั้นตอนที่ 1: สร้างและแชร์กลุ่มที่มาของเหตุการณ์การท่องเที่ยว

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

use FacebookAds\Object\EventSourceGroup;
use FacebookAds\Object\Fields\EventSourceGroupFields;

$event_source_group = new EventSourceGroup(null, <BUSINESS_ID>);
$event_source_group->setData(array(
  EventSourceGroupFields::NAME => 'My Travel Company Events',
  EventSourceGroupFields::EVENT_SOURCES => array(
    <PIXEL_ID>,
    <APP_ID>,
  ),
));

$event_source_group->create();
from facebookads.adobjects.eventsourcegroup import EventSourceGroup

event_source_group = EventSourceGroup(parent_id=<BUSINESS_ID>)
event_source_group[EventSourceGroup.Field.name] = 'My Travel Company Events'
event_source_group[EventSourceGroup.Field.event_sources] = [
    <PIXEL_ID>,
    <APP_ID>,
]

event_source_group.remote_create()
curl \
  -F 'name=My Travel Company Events' \
  -F 'event_sources=["<PIXEL_ID>","<APP_ID>"]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<BUSINESS_ID>/event_source_groups

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

use FacebookAds\Object\EventSourceGroup;

$event_source_group = new EventSourceGroup(<EVENT_SOURCE_GROUP_ID>);
// ad account id without 'act_'
$event_source_group->createSharedAccount(array(), array(
  'accounts' => array(
    '<ACCOUNT_ID_WITHOUT_ACT>',
  ),
));
from facebookads.adobjects.eventsourcegroup import EventSourceGroup

event_source_group = EventSourceGroup(<EVENT_SOURCE_GROUP_ID>)
# ad account id without 'act_'
response = event_source_group.create_shared_account(
    params={
        'accounts': ['<ACCOUNT_ID_WITHOUT_ACT>'],
    },
)
print(response)
curl \
  -F 'accounts=["<ACCOUNT_ID_WITHOUT_ACT>"]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<EVENT_SOURCE_GROUP_ID>/shared_accounts

ขั้นตอนที่ 2: สร้างกลุ่มเป้าหมายการท่องเที่ยว

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

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

หากต้องการสร้างกลุ่มเป้าหมายการท่องเที่ยวใหม่ ให้สร้าง HTTP POST เป็น /act_<AD_ACCOUNT_ID>/customaudiences

พารามิเตอร์กลุ่มเป้าหมาย

ช่องและประเภทคำอธิบาย

claim_objective

ประเภท: enum {TRAVEL}

จำเป็นต้องระบุ

วัตถุประสงค์ของกลุ่มเป้าหมาย

ต้องตั้งค่าเป็น TRAVEL

content_type

ประเภท: enum {HOTEL, FLIGHT, DESTINATION}

จำเป็นต้องระบุ

ระบุประเภทสัญญาณที่ควรใช้สำหรับสร้างกลุ่มเป้าหมายนี้

ต้องตั้งค่าเป็น HOTEL, FLIGHT หรือ DESTINATION

event_sources

ประเภท: json string

อาร์เรย์ JSON ของการจับคู่ id และ type ช่อง id เป็น ID ที่มาของเหตุการณ์เดียว และช่อง type เป็นพิกเซล แอพ หรือ offline_events ตัวอย่างเช่น:

"event_sources": [
 {
 "type": "pixel",
 "id": "562030684179932"
 },
 {
 "type": "app",
 "id": "562030684179934"
 }
] 

ต้องระบุหากคุณไม่ได้ป้อน event_source_group หากระบุช่องนี้แล้ว โปรดอย่าป้อน event_source_group ด้วยกัน

event_source_group

ประเภท: id

ระบุกลุ่มที่มาของเหตุการณ์ซึ่งเหตุการณ์ในกลุ่มนั้นจะรองรับการสร้างกลุ่มเป้าหมาย ต้องระบุหากคุณไม่ได้ป้อน event_sources

inclusions

ประเภท: object[]

จำเป็นต้องระบุ

อาร์เรย์อ็อบเจ็กต์ JSON ที่ระบุสัญญาณความประสงค์แต่ละรายการซึ่งจะทำให้บัญชีในศูนย์บัญชีมีสิทธิ์อยู่ในกลุ่มเป้าหมายนี้ โปรดดูตารางพารามิเตอร์อ็อบเจ็กต์การรวมที่ด้านล่าง

description

ประเภท: string

คำอธิบายเพิ่มเติมของกลุ่มเป้าหมาย

exclusions

ประเภท: object[]

อาร์เรย์อ็อบเจ็กต์ JSON ที่ระบุสัญญาณความประสงค์แต่ละรายการซึ่งจะยกเว้นไม่ให้บัญชีในศูนย์บัญชีมีสิทธิ์อยู่ในกลุ่มเป้าหมายนี้ โปรดดูตารางพารามิเตอร์อ็อบเจ็กต์การยกเว้นที่ด้านล่าง

rule

ประเภท: object

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

พารามิเตอร์อ็อบเจ็กต์การรวม

ชื่อและประเภทของช่องคำอธิบาย

event

ประเภท: enum {Search, ViewContent, InitiateCheckout, Purchase}

จำเป็นต้องระบุ

ชื่อเหตุการณ์ของสัญญาณที่คุณต้องการใช้พิจารณาในการรวม

ตัวอย่าง: {"event": "Search", …}

retention

ประเภท: object

จำเป็นต้องระบุ

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

โปรดดูตารางพารามิเตอร์อ็อบเจ็กต์อัตราการใช้งานต่อเนื่องที่ด้านล่าง

ตัวอย่าง: {…, "retention": {"min_seconds": 0, "max_seconds": 259200}, …}

booking_window

ประเภท: object

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

โปรดดูตารางพารามิเตอร์อ็อบเจ็กต์ช่วงการจองที่ด้านล่าง

ตัวอย่าง:

  • {"booking_window": {"min_seconds": 0, "max_seconds": 259200}}
  • {"booking_window": {"max_seconds": 0}}

count

ประเภท: ตัวดำเนินการ JSON

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

ตัวอย่าง: {…"count": {"lte": 3}, …}

พารามิเตอร์อ็อบเจ็กต์อัตราการใช้งานต่อเนื่อง

ชื่อและประเภทของช่องคำอธิบาย

max_seconds

ประเภท: int

จำเป็นต้องระบุ

ระยะเวลาสูงสุด (เป็นวินาที) นับตั้งแต่ได้รับเหตุการณ์

ตัวอย่าง: 259200

min_seconds

ประเภท: int

ระยะเวลาต่ำสุด (เป็นวินาที) นับตั้งแต่ได้รับเหตุการณ์

ตัวอย่าง: 0

พารามิเตอร์อ็อบเจ็กต์ช่วงการจอง

ชื่อและประเภทของช่องคำอธิบาย

min_seconds

ประเภท: int

จำเป็นต้องระบุ

ระยะเวลาต่ำสุด (เป็นวินาที) ระหว่างวันที่ปัจจุบันและวันที่ผู้ใช้ต้องการเช็คอิน

ตัวอย่าง: 172800

max_seconds

ประเภท: int

จำเป็นต้องระบุ

ระยะเวลาสูงสุด (เป็นวินาที) ระหว่างวันที่ปัจจุบันและวันที่ต้องการเช็คอิน

ตัวอย่าง: 604800

พารามิเตอร์อ็อบเจ็กต์การยกเว้น

ชื่อและประเภทของช่องคำอธิบาย

event

ประเภท: enum { Search, ViewContent, InitiateCheckout, Purchase }

จำเป็นต้องระบุ

ชื่อเหตุการณ์ของสัญญาณที่คุณต้องการใช้พิจารณาในการยกเว้น

ตัวอย่าง: {"event": "Search", …}

retention

ประเภท: object

จำเป็นต้องระบุ

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

โปรดดูตารางพารามิเตอร์อ็อบเจ็กต์อัตราการใช้งานต่อเนื่องที่ด้านล่าง

ตัวอย่าง: {…, "retention": {"min_seconds": 0, "max_seconds": 259200}, …}

พารามิเตอร์การท่องเที่ยวสำหรับอ็อบเจ็กต์กฎ

พารามิเตอร์แต่ละรายการสามารถใช้ร่วมกับตัวดำเนินการJSON แบบมาตรฐานตัวใดก็ได้ เหมือนกันกับพารามิเตอร์แบบดั้งเดิม

ชื่อและประเภทของช่องคำอธิบาย

hotel_set_id

ประเภท: int

จับคู่เฉพาะเหตุการณ์ที่มี content_id อย่างน้อย 1 รายการใน hotel_set_id ที่ระบุ

เฉพาะสำหรับกลุ่มเป้าหมายการท่องเที่ยวที่ตั้งค่า content_type เป็น HOTEL

ตัวอย่าง: {…, "hotel_set_id": {"eq": 123456789}, …}

destination_set_id

ประเภท: int

จับคู่เฉพาะเหตุการณ์ที่มี content_id อย่างน้อย 1 รายการใน destination_set_id ที่ระบุ

เฉพาะสำหรับกลุ่มเป้าหมายการท่องเที่ยวที่ตั้งค่า content_type เป็น DESTINATION

ตัวอย่าง: {…, "destination_set_id": {"eq": 123456789}, …}

flight_set_id

ประเภท: int

จำเป็นสำหรับโฆษณาเที่ยวบิน

จับคู่เฉพาะเหตุการณ์ที่มีเส้นทาง (origin_airport ถึง destination_airport) ใน flight_set_id ที่ระบุ

เฉพาะสำหรับกลุ่มเป้าหมายการท่องเที่ยวที่ตั้งค่า content_type เป็น FLIGHT

ตัวอย่าง: {…, "flight_set_id": {"eq": 123456789}, …}

length_of_stay

ประเภท: int

จำนวนคืนที่เข้าพักในระหว่างทริป

ตัวอย่าง: {… "length_of_stay": {"eq": 1}, …}

number_of_weekends

ประเภท: int

จำนวนวันสุดสัปดาห์ระหว่างวันที่เริ่มต้นและวันที่สิ้นสุด

ตัวอย่าง: {…, "number_of_weekends": {"gte": 5}, …}

num_travelers

ประเภท: int

จำนวนผู้เดินทางทั้งหมด

  • หากเป็น content_type ของ hotel หรือ destination ช่องจะเป็นค่า num_adults + num_children
  • หากเป็น content_type ของ flight ช่องนี้จะรวม num_infants ด้วย

ตัวอย่าง: {…, "num_travelers": {"gt": 1}, …}

ช่องวันที่:

โฆษณาโรงแรม

  • checkin_date
  • checkout_date

โฆษณาเที่ยวบิน

  • departing_departure_date
  • departing_arrival_date
  • returning_departure_date
  • returning_arrival_date

โฆษณาปลายทาง

  • travel_start
  • travel_end

ประเภท: string

ใช้ช่องวันที่ที่ตรงตาม content_type

ตัวอย่าง: {"checkin_date": {"gte": "2016-09-01"}}

itinerary_contains_date

ประเภท: string

ทริปที่ระบุวันที่เจาะจง

ตัวอย่าง: {"itinerary_contains_date": {"eq": "2016-12-25"}}

ตัวอย่างโค้ด

ผู้เดินทางคนเดียวที่ได้ทำการค้นหาอย่างน้อย 3 ครั้งในช่วง 5 วันที่ผ่านมาแต่ยังไม่ได้ทำการจอง:

use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;

$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
  CustomAudienceFields::NAME => 'Travel Audience',
  CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
  CustomAudienceFields::CLAIM_OBJECTIVE =>
    CustomAudienceClaimObjectiveValues::TRAVEL,
  CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
  CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
  CustomAudienceFields::RULE => array(
    'num_travelers' => array('eq' => 1),
  ),
  'inclusions' => array(
    array(
      'event' => 'Search',
      'count' => array('gt' => 3),
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 432000),
    ),
  ),
  'exclusions' => array(
    array(
      'event' => 'Purchase',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience

audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
    CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
    'num_travelers': {'eq': 1},
}
audience['inclusions'] = [
    {
        'event': 'Search',
        'count': {'gt': 3},
        'retention': {'min_seconds': 0, 'max_seconds': 432000},
    },
]
audience['exclusions'] = [
    {
        'event': 'Purchase',
        'retention': {'min_seconds': 0, 'max_seconds': 432000},
    },
]

audience.remote_create()
curl \
  -F 'name=Travel Audience' \
  -F 'subtype=CLAIM' \
  -F 'claim_objective=TRAVEL' \
  -F 'content_type=HOTEL' \
  -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
  -F 'rule={"num_travelers":{"eq":1}}' \
  -F 'inclusions=[ 
    { 
      "event": "Search", 
      "count": {"gt":3}, 
      "retention": {"min_seconds":0,"max_seconds":432000} 
    } 
  ]' \
  -F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences

กลุ่มคนที่ได้ดูหรือเริ่มทำการจองโรงแรมในชุดโรงแรมในช่วง 2 วันที่ผ่านมา แต่ยังดำเนินการจองไม่เสร็จสิ้น:

use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;

$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
  CustomAudienceFields::NAME => 'Travel Audience',
  CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
  CustomAudienceFields::CLAIM_OBJECTIVE =>
    CustomAudienceClaimObjectiveValues::TRAVEL,
  CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
  CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
  CustomAudienceFields::RULE => array(
    'hotel_set_id' => array('eq' => <HOTEL_SET_ID>),
  ),
  'inclusions' => array(
    array(
      'event' => 'ViewContent',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
    array(
      'event' => 'InitiateCheckout',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
  'exclusions' => array(
    array(
      'event' => 'Purchase',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience

audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
    CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
    'hotel_set_id': {'eq': <HOTEL_SET_ID>},
}
audience['inclusions'] = [
    {
        'event': 'ViewContent',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
    {
        'event': 'InitiateCheckout',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]
audience['exclusions'] = [
    {
        'event': 'Purchase',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]

audience.remote_create()
curl \
  -F 'name=Travel Audience' \
  -F 'subtype=CLAIM' \
  -F 'claim_objective=TRAVEL' \
  -F 'content_type=HOTEL' \
  -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
  -F 'rule={"hotel_set_id":{"eq":"<HOTEL_SET_ID>"}}' \
  -F 'inclusions=[ 
    {"event":"ViewContent","retention":{"min_seconds":0,"max_seconds":172800}}, 
    { 
      "event": "InitiateCheckout", 
      "retention": {"min_seconds":0,"max_seconds":172800} 
    } 
  ]' \
  -F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.10/act_<AD_ACCOUNT_ID>/customaudiences

กลุ่มคนที่ได้เริ่มดำเนินการชำระเงินหรือซื้อตั๋วเที่ยวบินในช่วง 5 วันที่ผ่านมา และช่วงการจองเที่ยวบินอยู่ระหว่าง 2-7 วัน:

use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;

$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
  CustomAudienceFields::NAME => 'Travel Audience',
  CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
  CustomAudienceFields::CLAIM_OBJECTIVE =>
    CustomAudienceClaimObjectiveValues::TRAVEL,
  CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::FLIGHT,
  CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
  'inclusions' => array(
    array(
      'event' => 'InitiateCheckout',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 432000),
      'booking_window' => array('min_seconds'=> 172800, 'max_seconds'=> 604800),
    ),
    array(
      'event' => 'Purchase',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 432000),
      'booking_window' => array('min_seconds'=> 172800, 'max_seconds'=> 604800),
    ),
  ),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience

audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
    CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.flight
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience['inclusions'] = [
    {
        "event": "InitiateCheckout",
        "retention": {"min_seconds": 0, "max_seconds": 432000},
        "booking_window": {"min_seconds": 172800, "max_seconds": 604800},
    },
    {
        "event": "Purchase",
        "retention": {"min_seconds": 0, "max_seconds": 432000},
        "booking_window": {"min_seconds": 172800, "max_seconds": 604800},
    },
]

audience.remote_create()
curl \
  -F 'name=Travel Audience' \
  -F 'subtype=CLAIM' \
  -F 'claim_objective=TRAVEL' \
  -F 'content_type=FLIGHT' \
  -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
  -F 'inclusions=[ 
    { 
      "event": "InitiateCheckout", 
      "retention": {"min_seconds":0,"max_seconds":432000}, 
      "booking_window": {"min_seconds":172800,"max_seconds":604800} 
    }, 
    { 
      "event": "Purchase", 
      "retention": {"min_seconds":0,"max_seconds":432000}, 
      "booking_window": {"min_seconds":172800,"max_seconds":604800} 
    } 
  ]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences

กลุ่มคนที่ได้ทำการค้นหาโรงแรมใน "นิวยอร์กซิตี้" มากกว่า 3 ครั้งในช่วง 2 วันที่ผ่านมาแต่ยังไม่ได้ทำการจอง:

use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;

$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
  CustomAudienceFields::NAME => 'Travel Audience',
  CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
  CustomAudienceFields::CLAIM_OBJECTIVE =>
    CustomAudienceClaimObjectiveValues::TRAVEL,
  CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
  CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
  CustomAudienceFields::RULE => array(
    'destination' => array('i_contains' => 'New York City'),
  ),
  'inclusions' => array(
    array(
      'event' => 'Search',
      'count' => array('gt' => 3),
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
  'exclusions' => array(
    array(
      'event' => 'Purchase',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience

audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
    CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
    'destination': {'i_contains': 'New York City'},
}
audience['inclusions'] = [
    {
        'event': 'Search',
        'count': {'gt': 3},
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]
audience['exclusions'] = [
    {
        'event': 'Purchase',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]

audience.remote_create()
curl \
  -F 'name=Travel Audience' \
  -F 'subtype=CLAIM' \
  -F 'claim_objective=TRAVEL' \
  -F 'content_type=HOTEL' \
  -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
  -F 'rule={"destination":{"i_contains":"New York City"}}' \
  -F 'inclusions=[ 
    { 
      "event": "Search", 
      "count": {"gt":3}, 
      "retention": {"min_seconds":0,"max_seconds":172800} 
    } 
  ]' \
  -F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences

กลุ่มคนที่ได้ทำการค้นหาโรงแรมระหว่าง checkin_date และ checkout_date ที่เฉพาะเจาะจงในช่วง 2 วันที่ผ่านมาแต่ยังไม่ได้ทำการจอง:

use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;

$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
  CustomAudienceFields::NAME => 'Travel Audience',
  CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
  CustomAudienceFields::CLAIM_OBJECTIVE =>
    CustomAudienceClaimObjectiveValues::TRAVEL,
  CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
  CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
  CustomAudienceFields::RULE => array(
    'and' => array(
      array(
        'checkin_date' => array(
          'gte' => (new \DateTime("+3 day"))->format('Y-m-d')
        ),
      ),
      array(
        'checkout_date' => array(
          'lte' => (new \DateTime("+6 day"))->format('Y-m-d')
        ),
      ),
    ),
  ),
  'inclusions' => array(
    array(
      'event' => 'Search',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
  'exclusions' => array(
    array(
      'event' => 'Purchase',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
import datetime

audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
    CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
    'and': [
        {
            "checkin_date": {
                "gte": str(datetime.date.today() + datetime.timedelta(days=3)),
            },
        },
        {
            "checkout_date": {
                "gte": str(datetime.date.today() + datetime.timedelta(days=6)),
            },
        },
    ],
}
audience['inclusions'] = [
    {
        'event': 'Search',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]
audience['exclusions'] = [
    {
        'event': 'Purchase',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]

audience.remote_create()
curl \
  -F 'name=Travel Audience' \
  -F 'subtype=CLAIM' \
  -F 'claim_objective=TRAVEL' \
  -F 'content_type=HOTEL' \
  -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
  -F 'rule={ 
    "and": [ 
      {"checkin_date":{"gte":"2018-02-02"}}, 
      {"checkout_date":{"lte":"2018-02-05"}} 
    ] 
  }' \
  -F 'inclusions=[{"event":"Search","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences

กลุ่มคนที่ได้ค้นหาโรงแรมเข้าพักซึ่งรวมวันที่ระบุไว้ (เช่น วันคริสต์มาส) ในช่วง 2 วันที่ผ่านมาแต่ยังไม่ได้ทำการจอง:

use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceSubtypeValues;
use FacebookAds\Object\Values\CustomAudienceClaimObjectiveValues;
use FacebookAds\Object\Values\CustomAudienceContentTypeValues;

$custom_audience = new CustomAudience(null, 'act_<AD_ACCOUNT_ID>');
$custom_audience->setData(array(
  CustomAudienceFields::NAME => 'Travel Audience',
  CustomAudienceFields::SUBTYPE => CustomAudienceSubtypeValues::CLAIM,
  CustomAudienceFields::CLAIM_OBJECTIVE =>
    CustomAudienceClaimObjectiveValues::TRAVEL,
  CustomAudienceFields::CONTENT_TYPE => CustomAudienceContentTypeValues::HOTEL,
  CustomAudienceFields::EVENT_SOURCE_GROUP => <EVENT_SOURCE_GROUP_ID>,
  CustomAudienceFields::RULE => array(
    'itinerary_contains_date' => array(
      'eq' => (new \DateTime())->setDate(Date('Y'), 12, 25)->format('Y-m-d')
    ),
  ),
  'inclusions' => array(
    array(
      'event' => 'Search',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
  'exclusions' => array(
    array(
      'event' => 'Purchase',
      'retention' => array('min_seconds'=> 0, 'max_seconds'=> 172800),
    ),
  ),
));
$custom_audience->create();
from facebookads.adobjects.customaudience import CustomAudience
import datetime

audience = CustomAudience(parent_id='act_<AD_ACCOUNT_ID>')
audience[CustomAudience.Field.name] = 'Travel Audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.claim
audience[CustomAudience.Field.claim_objective] = \
    CustomAudience.ClaimObjective.travel
audience[CustomAudience.Field.content_type] = CustomAudience.ContentType.hotel
audience[CustomAudience.Field.event_source_group] = <EVENT_SOURCE_GROUP_ID>
audience[CustomAudience.Field.rule] = {
    "itinerary_contains_date": {
        "eq": str(datetime.date(datetime.date.today().year, 12, 25)),
    },
}
audience['inclusions'] = [
    {
        'event': 'Search',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]
audience['exclusions'] = [
    {
        'event': 'Purchase',
        'retention': {'min_seconds': 0, 'max_seconds': 172800},
    },
]

audience.remote_create()
curl \
  -F 'name=Travel Audience' \
  -F 'subtype=CLAIM' \
  -F 'claim_objective=TRAVEL' \
  -F 'content_type=HOTEL' \
  -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
  -F 'rule={"itinerary_contains_date":{"eq":"2018-12-25"}}' \
  -F 'inclusions=[{"event":"Search","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences

กลุ่มคนที่สร้างกลุ่มเป้าหมายสำหรับเที่ยวบินแบบเที่ยวเดียว:

curl \
  -F 'name=Travel Audience' \
  -F 'claim_objective=TRAVEL' \
  -F 'content_type=FLIGHT' \
  -F 'event_source_group=<EVENT_SOURCE_GROUP_ID>' \
  -F 'rule={"and":[{"returning_departure_date":{"exists":false]}}' \
  -F 'inclusions=[ 
    { 
      "event": "Search", 
      "count": {"gt":3}, 
      "retention": {"min_seconds":0,"max_seconds":432000} 
    } 
  ]' \
  -F 'exclusions=[{"event":"Purchase","retention":{"min_seconds":0,"max_seconds":172800}}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/customaudiences

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