Pengali Tawaran

API ini tersedia secara terbatas untuk partner dan pengiklan yang masuk dalam daftar diizinkan. Hubungi perwakilan Meta Anda untuk menggunakannya.

Pengali tawaran memungkinkan pengiklan untuk mengurangi jumlah segmentasi pemirsa yang diperlukan karena memungkinkan mereka untuk mempertahankan strategi penawaran yang bernuansa dalam satu set iklan dengan satu pemirsa target. Contoh: pengiklan dapat membuat satu set iklan, lalu menggunakan pengali tawaran untuk menawar secara berbeda untuk setiap kelompok terbaru tersebut.

Pengiklan biasanya membuat set iklan sehingga mereka dapat menawar secara berbeda untuk berbagai segmen pemirsa. Contoh: pengiklan dapat membuat 3 set iklan yang sesuai dengan 3 grup usia yang berbeda: 18–25, 26–35, 36–65.

Pengiklan yang menjalankan iklan perumahan, ketenagakerjaan, dan kredit, yang berbasis di Amerika Serikat atau menayangkan iklan yang ditargetkan ke Amerika Serikat, memiliki beberapa set batasan yang berbeda. Satu subset kategori pemirsa tersedia untuk menyesuaikan tawaran. Kampanye perumahan, ketenagakerjaan, dan kredit tidak dapat menyesuaikan tawaran untuk kategori pemirsa age, gender, locale, home_location, user_bucket, dan yang serupa custom_audience (pemirsa khusus yang berasal dari pemirsa serupa). Lihat Kategori Iklan Khusus.

Mulai 30 Januari 2023, iklan yang menggunakan pengali tawaran dengan kategori data pihak ketiga (booking_window, custom_audience (termasuk pemirsa khusus serupa), lengthofstay, travelstartdate, travelstartdayofweek, user_recency, user_bucket) tidak akan lagi dikirimkan ke pengguna yang telah menolak.

Praktik Terbaik Pengali Tawaran

  • Gunakan strategi penawaran yang rumit dan disesuaikan tanpa harus membuat terlalu banyak segmen pemirsa atau set iklan. Ini membantu Anda mencapai penayangan iklan yang lebih baik sambil menghindari kampanye yang terlalu tersegmentasi ke dalam jumlah set iklan yang lebih besar dengan pemirsa yang relatif kecil.
  • Pengali tawaran tidak spesifik untuk suatu tujuan. Pengali kompatibel dengan pengoptimalan berikut: APP_INSTALLS, CLICKS, LANDING_PAGE_VIEWS, LEAD_GENERATION, OFFSITE_CLICKS, dan OFFSITE_CONVERSIONS.
  • Sebelumnya, Anda dapat membuat 3 set iklan yang sesuai dengan 3 grup usia yang berbeda. Anda kemudian dapat menawar secara terpisah untuk setiap set iklan ini. Anda sekarang dapat membuat satu set iklan dan menggunakan pengali tawaran untuk menawar secara berbeda untuk setiap kelompok usia tersebut; pengali tawaran berkisar dari 0,09 hingga 1,0.
  • Pengali tawaran harus ditentukan di bawah kode user_groups tunggal.

Catatan: Semua strategi tawaran didukung dengan pengali tawaran, khususnya: Batas Tawaran, Batas Biaya, dan Biaya Terendah.

Menyiapkan Kategori Pemirsa

Dengan pengali tawaran, Anda dapat menentukan kategori pemirsa dan menetapkan pengali tawaran untuk setiap kategori pemirsa. Kategori pemirsa ditentukan dengan informasi demografi pengguna, perangkat pengguna, dan data khusus pengiklan. Kampanye perumahan, ketenagakerjaan, atau kredit tidak dapat menetapkan tawaran untuk kategori pemirsa age, gender, locale, home_location, user_bucket, dan yang serupa custom_audience (pemirsa khusus yang berasal dari pemirsa serupa).

PrioritasDeskripsi

age

Tawar secara berbeda berdasarkan usia atau rentang usia. (Tidak tersedia untuk kampanye perumahan, ketenagakerjaan, dan kredit.)

booking_window

Tawar secara berbeda berdasarkan jumlah hari hingga dimulainya perjalanan.

custom_audience

Tawar berdasarkan custom_audience yang diikuti pengguna. Pemirsa serupa didukung untuk opsi ini, kecuali untuk kampanye perumahan, ketenagakerjaan, dan kredit.

device_platform

Tawar secara berbeda berdasarkan platform perangkat pengguna, seperti seluler atau desktop.

gender

Tawar secara berbeda berdasarkan jenis kelamin. (Tidak tersedia untuk kampanye perumahan, ketenagakerjaan, dan kredit.)

home_location

Tawar berdasarkan home_location pengguna. Ini mewakili lokasi rumah mereka saat ini. Pengali home_location dapat diperinci menjadi kota, wilayah, dan negara. (Tidak tersedia untuk kampanye perumahan, ketenagakerjaan, dan kredit.)

lengthofstay

Tawar berdasarkan jumlah hari antara awal dan akhir perjalanan.

locale

Tawar secara berbeda berdasarkan bahasa seperti bahasa Inggris atau bahasa Spanyol. (Tidak tersedia untuk kampanye perumahan, ketenagakerjaan, dan kredit.)

position_type

Tawaran berdasarkan posisi mana iklan ditampilkan; Contoh: facebook_feed, facebook_marketplace, atau instagram_story.

publisher_platform

Tawar berdasarkan publisher_platform seperti facebook, instagram, audience_network, messenger.

travelstartdate

Tawar secara berbeda berdasarkan tanggal dimulainya perjalanan, contoh: 20181231 adalah 31 Desember 2018.

travelstartdayofweek

Tawar berdasarkan hari apa perjalanan dimulai. 0 adalah Senin; 6 adalah Minggu.

user_bucket

Tawar berdasarkan nilai user_bucket yang ditentukan dalam pengaktifan pixel atau peristiwa aplikasi pengiklan. Kolom user_bucket adalah parameter opsional yang dinyatakan dalam integer mulai dari 0 sampai 100. (Tidak tersedia untuk kampanye perumahan, ketenagakerjaan, dan kredit.)

user_device

Tawar berdasarkan user_device, seperti iPhone. Lihat user_device

user_os

Tawar berdasarkan user_os, seperti iOS atau Android.

user_recency

Tawaran berdasarkan kapan terakhir kali pengguna mengunjungi situs atau aplikasi.

age

Kelompokkan pengguna menurut rentang usia; contoh: 18-25, 26-35. Misalnya, untuk set iklan dengan tawaran maksimal USD5, tawaran USD2,5 untuk pengguna berusia antara 18 hingga 25 tahun, tawaran USD3,5 untuk pengguna berusia antara 26 dan 40 tahun, tawaran USD5 untuk semua pengguna lainnya. Catatan: Default-nya bersifat opsional. Anda dapat menerapkan 1.0 sebagai pengali.

Contoh

{
    "user_groups": {
      "age": {
        "18-25": 0.5,
        "26-40": 0.7,
        "default": 1.0
      }
    }
}

booking_window

Kemungkinan nilai perincian mencakup rentang integer yang lebih besar dari atau sama dengan 1. Contoh: 1-3, 4-9, dan seterusnya.

Contoh

curl -X POST \ 
  -F 'bid_adjustments=
     {"user_groups":{"booking_window":{"event_sources":["123456789"],"1-2":0.1,"3-5":0.2,"default":0.5}}}' \ 
  -F 'access_token='$access_token \ 
  https://graph.facebook.com/<API_VERSION>/<ad_set_id>

Lihat juga Contoh Pengali Perjalanan.

custom_audience

Mulai 30 Januari 2023, iklan yang menggunakan pengali tawaran dengan kategori data pihak ketiga (booking_window, custom_audience (termasuk pemirsa khusus serupa), lengthofstay, travelstartdate, travelstartdayofweek, user_recency, user_bucket) tidak akan lagi dikirimkan ke pengguna yang telah menolak.

Anda dapat menyesuaikan tawaran berdasarkan pemirsa khusus.

Contoh

curl -X POST \ 
  -F 'bid_adjustments=
     {"user_groups":{"custom_audience":{"<CUSTOM_AUDIENCE_ID>":0.8, "<CUSTOM_AUDIENCE_ID>":1.0, "default":0.5}}}' \ 
  -F 'access_token='$access_token \ 
  https://graph.facebook.com/<API_VERSION>/<ad_set_id>

device_platform

Kemungkinan nilai perincian:

  • mobile
  • desktop

Contoh

{
  "user_groups": {
    "device_platform": {
      "mobile": 0.7,
      "desktop": 0.9
    }
  }
}

gender

Kelompokkan pengguna berdasarkan jenis kelamin.

Contoh

{
  "user_groups": {
    "gender": {
      "male": 0.5,
      "female": 0.7,
      "default": 1.0
    }
  }
}

home_location

Kemungkinan nilai perincian:

  • city id
  • region id
  • Kode negara 2 digit

Anda dapat menemukan city id dan region id di API Pencarian. Anda dapat melakukan kueri dari Graph API Explorer atau dari terminal Anda.

Catatan:default hanya dapat diatur di bawah home_location, bukan cities, regions, atau countries.

Contoh

{
  "user_groups": {
    "home_location": {
      "cities": {
         "2420605": 0.2
      },
      "regions": {
         "3847": 0.5
      },
      "countries": {
         "US": 0.2
      },
      "default": 0.8
     }
  }
}

length_of_stay

Kemungkinan nilai perincian mencakup rentang integer yang lebih besar dari atau sama dengan 1. Contoh: “1-3”, “4-9”, dan seterusnya.

Contoh

curl -X POST \ 
  -F 'bid_adjustments=
  {"user_groups":{"length_of_stay":{"event_sources":["123456789"],"1-2":0.1,"3-     5":0.2,"default":0.5}}}' \ 
  -F 'access_token='$access_token \ 
  https://graph.facebook.com/<API_VERSION>/<ad_set_id>

Lihat juga Contoh Pengali Perjalanan.

locale

Anda dapat menggunakan bahasa atau ID grup lokale, seperti6 untuk bahasa Inggris AS 5 untuk bahasa Jerman.

ID lokale dapat ditemukan di Pencarian Penargetan, Lokale dengan type=adlocale. Contoh:

{
  "user_groups": {
    "locale": {
      6: 0.8,
      5: 0.3
    }
  }
}

position_type

Kategori ini mirip dengan opsi posisi di API Penargetan. Kemungkinan nilai perincian:

PenempatanNilai

Kabar Facebook

facebook_feed

Facebook Marketplace

facebook_marketplace

Kabar video Facebook

facebook_suggested_video

Kolom kanan Facebook

facebook_right_hand_column

Facebook Business Explore

facebook_biz_disco_feed

Kabar Instagram

instagram_stream

Beranda profil Instagram

instagram_profile_feed

Jelajahi Instagram

instagram_explore

Beranda Jelajahi Instagram

instagram_explore_home

Kotak Masuk Messenger

messenger_messenger_home

Instagram Stories

instagram_story

Facebook Stories

facebook_story

Messenger Stories

messenger_story

Instagram Reels

instagram_reels

Facebook Reels

facebook_facebook_reels

Video in-stream Facebook

facebook_instream_video

Iklan di Facebook Reels

facebook_facebook_reels_overlay

Hasil pencarian di Facebook

facebook_search

Hasil pencarian di Instagram

instagram_ig_search

Pesan bersponsor Messenger

Tidak didukung

Native, banner, dan interstisial Audience Network

audience_network_classic

Video berhadiah Audience Network

audience_network_rewarded_video

Video in-stream Audience Network

Tidak didukung

Contoh

{
  "user_groups": {
    "position_type":{
        "facebook_feed":0.9,
        "messenger_messenger_home":0.7,
        "instagram_stream":0.8,
        "audience_network_classic":0.5,
        "default":0.4
    }
  }
}

publisher_platform

Kemungkinan nilai perincian:

  • facebook
  • instagram
  • audience_network
  • messenger

Contoh

{
  "user_groups": {
    "publisher_platform": {
      "facebook": 0.7,
      "instagram": 0.9,
      "default": 1.0 // We'll apply bid multiplier 1.0 if no default is specified anyway
    }
  }
}

travel_start_date

Kemungkinan nilai perincian mencakup rentang tanggal apa pun di format _yyyymmdd_-_yyyymmdd_.

Contoh

curl -X POST \ 
  -F 'bid_adjustments=
     {"user_groups":{"travel_start_date":{"event_sources":["123456789"],"20180901-20181001":0.2,"default":0.9}}}' \ 
  -F 'access_token='$access_token \ 
  https://graph.facebook.com/<API_VERSION>/<ad_set_id>

Lihat juga Contoh Pengali Perjalanan.

travel_start_day_of_week

Kemungkinan nilai perincian mencakup bilangan bulat antara 0 dan 6, inklusif. 0 adalah Senin; 6 adalah Minggu.

Contoh

curl -X POST \ 
  -F 'bid_adjustments=
  {"user_groups":{"travel_start_day_of_week":{"event_sources":        ["123456789"],"0":0.1,"2":0.2,"6":0.3,"default":0.9}}}' \ 
  -F 'access_token='$access_token \ 
  https://graph.facebook.com/<API_VERSION>/<ad_set_id>

Lihat juga Contoh Pengali Perjalanan.

user_bucket

Anda dapat mengirimkan kepada kami hasil pengklasifikasi pengguna Anda sendiri. Lalu kirimi kami parameter user_bucket dalam pengaktifan pixel atau peristiwa aplikasi. User_bucket adalah bilangan bulat mulai dari 0 hingga 100.

Tentukan definisi grup user_bucket dengan format berikut:

  • event_sources - Sumber pengaktifan pixel atau peristiwa aplikasi untuk dilacak.
  • event_retention - Opsional. Waktu, dalam detik, mengabaikan nilai user_bucket.
  • events_dedup_mode - Opsional. Laporkan untuk menandai nilai user_bucket yang akan digunakan ketika satu sumber peristiwa mengirimkan nilai user_bucket yang berbeda untuk pengguna yang sama. Nilai default-nya adalah latest.
  • event_source_preference - Opsional. Laporkan untuk menandai user_bucket mana yang akan digunakan ketika beberapa sumber peristiwa mengirimkan nilai user_bucket yang berbeda untuk pengguna yang sama. Nilai default-nya adalah latest.

Contoh

{
  "user_groups": {
   "user_bucket": {
      "event_sources": [<pixel_id>,<app_id>,...],
      "event_retention": 604800, // optional, exclude old events
      
      //optional, useful when multiple event sources have user_bucket
      "events_dedup_mode": "max"|"min"|"latest",
      
      //optional, dedup user_bucket values sent from one single event source
      "event_source_preference": "max"|"min"|"latest",
      
      "1":0.7, // these are the bid multipliers
      "2":1.0,
     }
  }
}

user_device

Kemungkinan nilai perincian:

  • iPad
  • iPhone

Lihat kemungkinan nilai lainnya di API Pencarian Penargetan dengan type=adTargetingCategory dan class=user_device.

Contoh

{
  "user_groups": {
    "user_device": {
      "iPad": 0.7,
      "iPhone": 0.9,
      "default": 1.0
    }
  }
}

Contoh

curl
  -F 'name=Test BM Adset '$(date +%s) \
  -F 'bid_amount=3000' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=23843038336220329' \
  -F 'promoted_object={"product_set_id":"267888283975766"}' \
  -F 'targeting={
     "geo_locations": {"countries":["AQ"]},
     "dynamic_audience_ids": ["23842885952670329"],
     "publisher_platforms": ["facebook"]
    }' \
  -F 'bid_adjustments={"user_groups":{"user_device": {"iPad": 0.7, "iPhone": 0.9, "default": 1.0}}}' \
  -F 'status=PAUSED' \
  -F 'access_token='$access_token \
  https://graph.facebook.com/<API_VERSION>/act_1653439931385336/adsets

Contoh

curl
  -F 'name=Test BM Adset '$(date +%s) \
  -F 'bid_amount=3000' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=23843038336220329' \
  -F 'promoted_object={"product_set_id":"267888283975766"}' \
  -F 'targeting={
     "geo_locations": {"countries":["AQ"]},
     "dynamic_audience_ids": ["23842885952670329"],
     "publisher_platforms": ["facebook"]
     }' \
  -F 'bid_adjustments={"user_groups":{"user_device": {"iPad": 0.7, "iPhone": 0.9, "default": 1.0}}}' \
  -F 'status=PAUSED' \
  -F 'access_token='$access_token \
   https://graph.facebook.com/<API_VERSION>/act_1653439931385336/adsets
   {"id":"23843038339320329"}

Contoh

curl
  -F 'access_token='$access_token \
  https://graph.facebook.com/VERSION/ID?fields=bid_adjustments
  {"bid_adjustments":{"user_groups":"{\"user_device\":    {\"default\":1,\"iPad\":0.7,\"iPhone\":0.9}}"},"id":"ID"}

Lihat juga Contoh Lanjutan.

user_group_weight_spec

Kemungkinan nilai perincian:

  • age
  • gender
  • device_platform
  • publisher_platform
  • user_device
  • user_os

Lihat juga Contoh Tingkat Lanjut.

Contoh - user_group_weight_spec adalah struktur JSON dan terlihat seperti ini:

{
  <BREAKDOWN_NAME>: {
    <BREAKDOWN_VALUE_1>: <WEIGHT_VALUE> OR <NESTED_USER_GROUP_WEIGHT_SPEC>,
    <BREAKDOWN_VALUE_2>: <WEIGHT_VALUE> OR <NESTED_USER_GROUP_WEIGHT_SPEC>,
    <BREAKDOWN_VALUE_3>: <WEIGHT_VALUE> OR <NESTED_USER_GROUP_WEIGHT_SPEC>,
    ...
    "default": <WEIGHT_VALUE> OR <NESTED_USER_GROUP_WEIGHT_SPEC>, // optional, if not specified, we'll use 1.0
  }
}
{
  "age": {
    "18-25": 0.7,
    "26-35": {
      "gender": {
        "male": 0.9,
        "female": 1.0
      }
    },
    "default": 0.85
  }
}

* For users between the ages of 18 and 25, we apply bid multiplier 0.7.
* For male users between the ages of 26 and 35, we apply bid multiplier 0.9.
* For female users between the ages of 26 and 35, we apply bid multiplier 1.0.
* For all other users, we apply bid multiplier 0.85.

Nilai perincian adalah rentang usia dalam bilangan bulat. Contoh: 18-25, dengan usia minimum 18 dan rentang tidak boleh tumpang tindih.

Contoh

{
  "user_groups": {
    "age": {
      "18-25": 0.7,
      "30-40": 1.0,
      "default": 0.3
    }
  }
}

Contoh Lanjutan

> curl 
    -F 'bid_adjustments={"user_groups":{"user_device":{"iPad":0.3,"iPhone":{"user_os":{"Android":0.3,"iOS":{"age":{"18-35":0.3,"35-45":0.4}}}}}}}' -F access_token=$token https://graph.intern.facebook.com/v2.12/6089875504114
{"success":true}%
> curl -G 
   -d access_token=$token https://graph.intern.facebook.com/v2.12/6089875504114\?  fields\=bid_adjustments
{"bid_adjustments":{"user_groups":"{\"user_device\":{\"iPad\":0.3,\"iPhone\":{\"user_os\":{\"Android\":0.3,\"iOS\":{\"age\":{\"18-35\":0.3,\"35-45\":0.4}}}}}}"},"id":"6089875504114"}%

Contoh Pengali Perjalanan

curl -X POST \
  -F 'bid_adjustments={"user_groups":{"travel_start_day_of_week":{"event_sources":["1862565504034757"],"1":0.1,"3":0.1,"default":0.9}}}' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/<ADSET_ID>

  Length of Stay 'bid_adjustments={"user_groups":{"length_of_stay":{"event_sources":["1862565504034757"],"1-2":0.1,"3-7":0.2,"default":0.5}}}'
  Booking window 'bid_adjustments={"user_groups":{"booking_window":{"event_sources":["1862565504034757"],"1-2":0.1,"3-7":0.2,"default":0.5}}}'
  Travel start date: 'bid_adjustments={"user_groups":{"travel_start_date":{"event_sources":["1862565504034757"],"20180918-20190101":0.1,"default":0.5}}}'
  Day of week: 'bid_adjustments={"user_groups":{"travel_start_day_of_week":{"event_sources":["1862565504034757"],"1":0.1,"2":0.1,"0":0.2,"default":0.5}}}'

user_os

Kemungkinan nilai perincian:

  • iOS
  • Windows

Lihat kemungkinan nilai lainnya di API Pencarian Penargetan dengan type=adTargetingCategory dan class=user_os.

Nilai yang didukung saat ini:

  • Android
  • Windows
  • Windows Phone
  • iOS

Contoh

{
  "user_groups": {
    "user_os": {
      "Android": 0.7,
      "iOS": 0.9,
      "default": 1.0
    }
  }
}

Dampak iOS14

Apakah pengali tawaran untuk kampanye konversi situs web akan terpengaruh oleh perubahan kebijakan iOS 14?

Ya, kami mengantisipasi hilangnya sinyal dan atribusi yang kurang dapat diidentifikasi dari perubahan iOS 14, sehingga menghasilkan lebih sedikit sinyal per set iklan. Meskipun sebagian besar kategori yang dapat Anda tawar harus terus berfungsi seperti biasa, pengali untuk keterkinian, pemirsa khusus, dan user_bucket, akan terpengaruh jika menargetkan pengguna iOS 14.5, karena pengali tersebut bergantung pada peristiwa yang diukur oleh Meta Pixel atau Conversions API. Semua pengali lainnya berasal dari data di tempat dan tidak bergantung pada Meta Pixel atau Conversions API.

user_recency

Kelompokkan pengguna berdasarkan waktu karena mereka memiliki pengaktifan pixel atau peristiwa aplikasi. Anda harus menentukan sumber peristiwa mana yang akan dilacak dan periode waktu.

Contoh

Contoh ini menunjukkan cara menerapkan pengali tawaran 1.0 untuk pengguna yang memiliki pengaktifan pixel atau peristiwa aplikasi dalam 86400 detik, dan seterusnya.

{
  "user_groups": {
    "user_recency": {
      "event_sources": [<pixel_id>,<app_id>,...],
      "0-86400": 1.0,
      "86401-172800": 0.7,
      "default": 0.5
    }
  }
}

Kaskade Beberapa Perincian

Anda juga dapat menentukan grup pengguna dengan beberapa perincian dengan mengganti angka pengali tawaran floating dengan spesifikasi perincian lebih lanjut. Contoh: iklan dengan tawaran maksimal USD5 dan konfigurasi di bawahnya akan terlihat seperti ini:

  • tawar USD4,5 untuk pengguna laki-laki
  • tawar USD3,5 untuk pengguna perempuan berusia antara 18 dan 25
  • tawar USD4,0 untuk pengguna perempuan berusia antara 26 dan 35
  • tawar USD5,0 untuk semua pengguna lainnya
{
  "user_groups": {
    "gender": {
      "male": 0.9,
      "female": {
        "age": {
          "18-25": 0.7,
          "26-35": 0.8
        }
      }
    }
  }
}

Persyaratan Penggunaan

  • Nilai pengali tawaran dapat berkisar dari 0.09 sampai 1.0.

Panggilan API

Mendapatkan

curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/<ADSET_ID>?fields=bid_adjustments

Memperbarui

curl \
  -F 'bid_adjustments={"user_groups":<USER_GROUP_WEIGHT_SPEC>}' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/<PRODUCT_CATALOG_ID>/<ADSET_ID>

Membuat atau Memperbarui Pengali Tawaran untuk Set Iklan

Di bawah ini adalah contoh panggilan API untuk memperbarui set iklan yang ada. (Anda perlu mengganti ID set iklan, token akses, sumber peristiwa, dan pengali tawaran yang Anda inginkan.)

curl -X POST \ -F 'bid_adjustments={ "user_groups": { "user_bucket": { "event_sources": [ "<PIXEL_ID>", "<APP_ID>" ], "1": 0.1, "2": 0.2, "3": 0.3, "default": { "gender": { "male": 0.99, "female": 0.12 } } } } }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/<AD_SET_ID>/
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdSet = bizSdk.AdSet; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_SET_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 = { 'bid_adjustments' : {'user_groups':{'user_bucket':{'event_sources':['<pixelID>','<appID>'],'1':0.1,'2':0.2,'3':0.3,'default':{'gender':{'male':0.99,'female':0.12}}}}}, }; const sample_code = (new AdSet(id)).update( fields, params ); logApiCallResult('sample_code api call complete.', sample_code);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdSet; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_SET_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'bid_adjustments' => array('user_groups' => array('user_bucket' => array('event_sources' => array('<pixelID>','<appID>'),'1' => 0.1,'2' => 0.2,'3' => 0.3,'default' => array('gender' => array('male' => 0.99,'female' => 0.12))))), ); echo json_encode((new AdSet($id))->updateSelf( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adset import AdSet from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_SET_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'bid_adjustments': {'user_groups':{'user_bucket':{'event_sources':['<pixelID>','<appID>'],'1':0.1,'2':0.2,'3':0.3,'default':{'gender':{'male':0.99,'female':0.12}}}}}, } print AdSet(id).update( 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_SET_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdSet(id, context).update() .setBidAdjustments(\"{\\"user_groups\\":{\\"user_bucket\\":{\\"event_sources\\":[\\"<pixelID>\\",\\"<appID>\\"],\\"1\\":0.1,\\"2\\":0.2,\\"3\\":0.3,\\"default\\":{\\"gender\\":{\\"male\\":0.99,\\"female\\":0.12}}}}}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_SET_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_set = FacebookAds::AdSet.get(id) ad_set.bid_adjustments = {'user_groups':{'user_bucket':{'event_sources':['<pixelID>','<appID>'],'1':0.1,'2':0.2,'3':0.3,'default':{'gender':{'male':0.99,'female':0.12}}}}} ad_set.save

Menyiapkan Kampanye Pengujian

Buat kampanye tes Anda menggunakan peningkatan konversi atau pengujian split (uji A/B), bekerja dengan tim akun Meta Anda dan prospek pengukuran. Untuk menilai kinerja, kami menyarankan sel-sel berikut dalam pengujian split 3 arah:

  • Sel 1 (Kontrol A), Kampanye 1 - 1 set iklan dengan 1 tawaran untuk semua pengguna target
  • Sel 2 (Kontrol B), Kampanye 2 - Beberapa set iklan tempat kami membuat satu set iklan untuk setiap grup pengguna. (Anda dapat menggunakan aturan Pemirsa Khusus Situs Web/Seluler untuk membuat segmentasi berdasarkan parameter pixel/aplikasi).
  • Sel 3 (Tes), Kampanye 3 - 1 set iklan, dengan pengali tawaran yang berbeda untuk grup pengguna yang berbeda. Pastikan tawaran yang disesuaikan untuk setiap grup pengguna di sini sama dengan tawaran level set iklan untuk set iklan yang sesuai di Sel 2.

Menyiapkan Tes Split

Pada titik ini, Anda harus menyiapkan pengujian split (uji A/B) dan grup kontrol untuk memverifikasi kinerja menggunakan pengali tawaran. Kami menjalankan pengujian selama 1-2 minggu, dan tidak memerlukan anggaran minimum. Siapkan pengujian split (uji A/B) seperti berikut:

  • Sel 1, Kontrol A Harus berisi satu set iklan dengan satu jumlah tawaran dan penargetan harus didasarkan pada semua user_bucket.
  • Sel 2, Kontrol B Harus berisi beberapa set iklan, dengan satu set iklan per user_bucket. Setiap set iklan harus menargetkan user_bucket terpisah dan tawaran yang sesuai. Anda dapat menggunakan aturan Pemirsa Khusus situs web atau seluler untuk membuat segmentasi pemirsa lebih lanjut berdasarkan parameter Meta Pixel atau Peristiwa Aplikasi lainnya. Lihat Pemirsa Khusus Situs Web dan Pemirsa Khusus Aplikasi Seluler.
  • Sel 3, Tes Berisi satu set iklan dengan properti bid_adjustment Anda untuk menentukan tawaran yang berbeda bagi setiap user_bucket. Pengali Anda harus sesuai dengan tawaran set iklan individual untuk Sel 2, Kontrol B.

Untuk informasi selengkapnya, lihat Tes Split.

Menyiapkan Kampanye Tes

Siapkan kampanye iklan seperti pada kampanye biasa. Hubungi perwakilan Meta Anda untuk mendapatkan bantuan dalam menyiapkan penyesuaian tawaran Anda.

Menyiapkan user_groups dan pengali tawaran yang berbeda untuk setiap grup. Grup Anda didasarkan pada properti demografi, seperti usia, jenis kelamin, dan properti tertentu, seperti skor pengguna atau program loyalitas. Contoh:

{
   "user_bucket":{
      "business_id":253286871795863,
      "1":0.7,
      "2":1.0,
      "3":{
         "gender":{
            "male":1.0,
            "female":0.8
         }
      },
      "default": 0.9
   }
}

Dalam contoh ini:

  • Untuk orang dengan nilai loyalty_program1, terapkan pengali tawaran 0,7
  • Untuk orang dengan nilai loyalty_program2, terapkan pengali tawaran 1,0
  • Untuk laki-laki dengan nilai loyalty_program3, terapkan pengali tawaran 1,0
  • Untuk perempuan dengan nilai loyalty_program3, terapkan pengali tawaran 0,8
  • Untuk orang dengan loyalty_program selain 1, 2 atau 3, terapkan pengali tawaran 0,9
  • Untuk semua lainnya, terapkan pengali tawaran 1,0

Sekarang, Anda dapat membuat kampanye iklan:

curl -X POST \ -F 'name="My Adset with bid multiplier"' \ -F 'campaign_id="<AD_CAMPAIGN_ID>"' \ -F 'daily_budget=3000' \ -F 'billing_event="IMPRESSIONS"' \ -F 'optimization_goal="OFFSITE_CONVERSIONS"' \ -F 'bid_amount=500' \ -F 'bid_adjustments={ "user_groups": { "gender": { "male": 0.8, "female": 1 } } }' \ -F 'promoted_object={ "product_set_id": "<PRODUCT_SET_ID>", "custom_event_type": "ADD_TO_CART" }' \ -F 'targeting={ "facebook_positions": [ "feed" ], "geo_locations": { "countries": [ "US" ] } }' \ -F 'status="PAUSED"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const AdSet = bizSdk.AdSet; 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 Adset with bid multiplier', 'campaign_id' : '<adCampaignLinkClicksID>', 'daily_budget' : '3000', 'billing_event' : 'IMPRESSIONS', 'optimization_goal' : 'OFFSITE_CONVERSIONS', 'bid_amount' : '500', 'bid_adjustments' : {'user_groups':{'gender':{'male':0.8,'female':1}}}, 'promoted_object' : {'product_set_id':'<productSetID>','custom_event_type':'ADD_TO_CART'}, 'targeting' : {'facebook_positions':['feed'],'geo_locations':{'countries':['US']}}, 'status' : 'PAUSED', }; const adsets = (new AdAccount(id)).createAdSet( fields, params ); logApiCallResult('adsets api call complete.', adsets);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\AdSet; 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 Adset with bid multiplier', 'campaign_id' => '<adCampaignLinkClicksID>', 'daily_budget' => '3000', 'billing_event' => 'IMPRESSIONS', 'optimization_goal' => 'OFFSITE_CONVERSIONS', 'bid_amount' => '500', 'bid_adjustments' => array('user_groups' => array('gender' => array('male' => 0.8,'female' => 1))), 'promoted_object' => array('product_set_id' => '<productSetID>','custom_event_type' => 'ADD_TO_CART'), 'targeting' => array('facebook_positions' => array('feed'),'geo_locations' => array('countries' => array('US'))), 'status' => 'PAUSED', ); echo json_encode((new AdAccount($id))->createAdSet( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.adset import AdSet 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 Adset with bid multiplier', 'campaign_id': '<adCampaignLinkClicksID>', 'daily_budget': '3000', 'billing_event': 'IMPRESSIONS', 'optimization_goal': 'OFFSITE_CONVERSIONS', 'bid_amount': '500', 'bid_adjustments': {'user_groups':{'gender':{'male':0.8,'female':1}}}, 'promoted_object': {'product_set_id':'<productSetID>','custom_event_type':'ADD_TO_CART'}, 'targeting': {'facebook_positions':['feed'],'geo_locations':{'countries':['US']}}, 'status': 'PAUSED', } print AdAccount(id).create_ad_set( 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).createAdSet() .setName(\"My Adset with bid multiplier\") .setCampaignId(\"<adCampaignLinkClicksID>\") .setDailyBudget(3000L) .setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS) .setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_OFFSITE_CONVERSIONS) .setBidAmount(500L) .setBidAdjustments(\"{\\"user_groups\\":{\\"gender\\":{\\"male\\":0.8,\\"female\\":1}}}\") .setPromotedObject(\"{\\"product_set_id\\":\\"<productSetID>\\",\\"custom_event_type\\":\\"ADD_TO_CART\\"}\") .setTargeting( new Targeting() .setFieldFacebookPositions(Arrays.asList(\"feed\")) .setFieldGeoLocations( new TargetingGeoLocation() .setFieldCountries(Arrays.asList(\"US\")) ) ) .setStatus(AdSet.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) adsets = ad_account.adsets.create({ name: 'My Adset with bid multiplier', campaign_id: '<adCampaignLinkClicksID>', daily_budget: '3000', billing_event: 'IMPRESSIONS', optimization_goal: 'OFFSITE_CONVERSIONS', bid_amount: '500', bid_adjustments: {'user_groups':{'gender':{'male':0.8,'female':1}}}, promoted_object: {'product_set_id':'<productSetID>','custom_event_type':'ADD_TO_CART'}, targeting: {'facebook_positions':['feed'],'geo_locations':{'countries':['US']}}, status: 'PAUSED', })

Setelah Anda membuat set iklan, atur bid_adjustments di set iklan melalui API. Parameter seharusnya terlihat seperti ini:

{
  "user_groups": {
    "user_bucket": {
      "event_sources": [<pixel_id>,<app_id>,...],
      "event_source_preference": "max"|"min"|"latest", //optional, useful when multiple event sources have user_bucket
      "events_dedup_mode": "max"|"min"|"latest", //optional, dedup user_bucket values sent from one single event source
      "event_retention": 604800, // optional, exclude old events
      "1":0.7, // these are the bid multipliers
      "2":1.0,
      "default": { // used in the case that we don't have user_bucket for that user
         gender:{ // this is a nested example, but you could just do "default": 1.0,
            "male": {
              home_location: {
                  cities: { // city id, can be found in search API, eg: search?type=adgeolocation&q=Menlo Park&limit=10
                    "2420605": 0.2,
                  },
                  regions: {
                    "3847": 0.5
                  },
                  countries: {
                    "US": 0.2
                  }
                }
              }
            },
            "female": {
              "user_recency": {
                "event_sources": [<pixel_id>,<app_id>,...],
                "0-86400": 0.5,
                "86400-172800": 0.7,
                "default": 0.2
              }
            }
         },
      },
   },
}

Saat ini kami tidak memvalidasi parameter ini. Kirim ID set iklan Anda ke perwakilan Meta Anda dan kami dapat memeriksanya secara manual.

Untuk setiap sumber peristiwa, user_bucket terbaru yang diterima pengguna itu akan digunakan. Namun, jika beberapa sumber peristiwa ditentukan (misal: pixel dan aplikasi), dan 2 atau lebih dari sumber tersebut memiliki rekaman user_bucket miliknya sendiri, kami dapat mengambil maksimal dari semuanya.

Berikut adalah contoh panggilan untuk memperbarui set iklan yang ada. Anda harus memberikan ID set iklan, token akses, sumber peristiwa, dan pengali tawaran Anda sendiri:

curl -X POST 
  -F access_token=<access_token> \
  -F 'bid_adjustments={"user_groups": {"user_bucket": {"event_sources": [<pixel_id>,  <app_id>,...], "1": 0.1, "2": 0.2, "3": 0.3, "default": {"gender": {"male": 0.99, "female": 0.1}} }} }' \ 
  https://graph.facebook.com/<VERSION>/<ad-set-id>