Facebook mengelola iklan dengan struktur 3 level: kampanye, set iklan, dan iklan. Di API, developer memiliki akses ke level keempat yang disebut materi iklan.
Objek ini berisi tujuan iklan Anda dan satu set iklan atau lebih. Hal ini membantu Anda mengoptimalkan dan mengukur hasil untuk setiap tujuan iklan.
Set iklan memiliki satu iklan atau lebih. Anda menentukan anggaran dan jadwal untuk setiap set iklan. Buat set iklan untuk setiap pemirsa target dengan tawaran Anda; iklan dalam set menarget pemirsa yang sama dengan tawaran yang sama. Hal ini membantu mengontrol jumlah pengeluaran untuk setiap pemirsa, menentukan kapan pemirsa akan melihat iklan Anda, dan menyediakan metrik untuk setiap pemirsa.
Berisi materi iklan. Buat beberapa iklan di setiap set iklan untuk mengoptimalkan penayangan iklan berdasarkan gambar, tautan, video, teks, atau penempatan yang berbeda.
Hanya berisi elemen visual iklan dan Anda tidak dapat mengubahnya setelah dibuat. Setiap akun iklan memiliki galeri materi iklan untuk menyimpan materi iklan agar dapat digunakan kembali dalam iklan.
Tujuan | Jadwal | Anggaran | Penawaran | Penargetan | Materi iklan | |
---|---|---|---|---|---|---|
Kampanye | ✓ | |||||
Set Iklan | ✓ | ✓ | ✓ | ✓ | ||
Iklan | ✓ |
Pemetaan antara penamaan objek yang dilihat publik dan endpoint API:
Penamaan yang dilihat publik | Endpoint API |
---|---|
Kampanye | /campaigns |
Set Iklan | /adsets |
Iklan | /ads |
Materi iklan | /adcreatives |
Kampanye adalah struktur organisasi level tertinggi dalam akun iklan dan harus mewakili satu tujuan untuk pengiklan, misalnya untuk mendorong interaksi postingan halaman. Penetapan tujuan kampanye mengharuskan adanya validasi pada setiap iklan yang ditambahkan ke kampanye itu untuk memastikan bahwa iklan tersebut juga memiliki tujuan yang benar.
Di pengelola iklan, kami menampilkan semua kampanye aktif dan dijeda dalam akun iklan.
Untuk membaca kampanye yang terkait dengan akun tertentu, Anda membuat permintaan ke koneksi akun iklan yang Anda gunakan. Secara default, kami hanya menampilkan kampanye yang statusnya adalah ACTIVE
atau PAUSED
, jadi Anda perlu menentukan status tambahan jika diperlukan:
curl -X GET \
-d 'effective_status=[
"ACTIVE",
"PAUSED"
]' \
-d 'fields="name,objective"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns
Kami juga menampilkan beberapa insight level tinggi, termasuk impresi, klik, dan jumlah yang dibelanjakan. Anda dapat mengambil ini dengan memanggil endpoint berikut, secara opsional menentukan waktu mulai dan/atau akhir:
use FacebookAds\Object\Campaign;
$campaign = new Campaign(<CAMPAIGN_ID>);
$insights = $campaign->getInsights(array(
AdsInsightsFields::IMPRESSIONS,
AdsInsightsFields::INLINE_LINK_CLICKS,
AdsInsightsFields::SPEND,
), array(
'end_time' => (new \DateTime('now'))->getTimestamp(),
));
from facebookads.adobjects.campaign import Campaign
from facebookads.adobjects.adsinsights import AdsInsights
import time
fields = [
AdsInsights.Field.impressions,
AdsInsights.Field.inline_link_clicks,
AdsInsights.Field.spend,
]
params = {
'end_time': int(time.time()),
}
campaign = Campaign(<CAMPAIGN_ID>)
insights = campaign.get_insights(fields=fields, params=params)
APINodeList<AdsInsights> adsInsightss = new Campaign(<CAMPAIGN_ID>, context).getInsights()
.setParam("end_time", end_time)
.requestField("impressions")
.requestField("inline_link_clicks")
.requestField("spend")
.execute();
curl -G \
-d 'end_time=1517287567' \
-d 'fields=impressions,inline_link_clicks,spend' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<CAMPAIGN_ID>/insights
Tujuan adalah tindakan yang Anda ingin orang lakukan saat mereka melihat iklan Anda. Anda perlu menentukan tujuan yang Anda pilih selama pembuatan kampanye.
Menetapkan tujuan secara eksplisit memiliki manfaat sebagai berikut:
Panggilan API minimum yang dibutuhkan untuk membuat kampanye adalah:
curl -X POST \
-F 'name="My First Campaign"' \
-F 'objective="OUTCOME_ENGAGEMENT"' \
-F 'status="PAUSED"' \
-F 'special_ad_categories=[]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns
Set iklan adalah grup iklan yang digunakan untuk mengonfigurasi anggaran dan periode penayangan iklan. Semua iklan yang ada dalam set iklan harus memiliki penargetan, anggaran, tagihan, tujuan pengoptimalan, dan durasi yang sama.
curl -X POST \
-F 'name="My First AdSet"' \
-F 'lifetime_budget=20000' \
-F 'start_time="2024-11-28T07:00:23-0800"' \
-F 'end_time="2024-12-05T07:00:23-0800"' \
-F 'campaign_id="<AD_CAMPAIGN_ID>"' \
-F 'bid_amount=500' \
-F 'billing_event="IMPRESSIONS"' \
-F 'optimization_goal="POST_ENGAGEMENT"' \
-F 'targeting={
"age_min": 20,
"age_max": 24,
"behaviors": [
{
"id": 6002714895372,
"name": "All travelers"
}
],
"genders": [
1
],
"geo_locations": {
"countries": [
"US"
],
"regions": [
{
"key": "4081"
}
],
"cities": [
{
"key": "777934",
"radius": 10,
"distance_unit": "mile"
}
]
},
"interests": [
{
"id": "<INTEREST_ID>",
"name": "<INTEREST_NAME>"
}
],
"life_events": [
{
"id": 6002714398172,
"name": "Newlywed (1 year)"
}
],
"facebook_positions": [
"feed"
],
"publisher_platforms": [
"facebook",
"audience_network"
]
}' \
-F 'status="PAUSED"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adsets
Anda dapat membuat daftar semua set iklan dalam kampanye dengan membuat permintaan ke jalur berikut, dengan menentukan kolom dan status yang Anda inginkan:
curl -X GET \
-d 'fields="name,start_time,end_time,daily_budget,lifetime_budget"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_CAMPAIGN_ID>/adsets
Sebuah objek berisi semua informasi yang diperlukan untuk menampilkan sebuah iklan di Facebook, termasuk materi iklan.
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
Untuk memeriksa pratinjau iklan, lihat panduan kami.
Terakhir, jika Anda ingin mendaftar semua iklan untuk set iklan, Anda dapat membuat permintaan ke jalur berikut, dengan menentukan kolom yang ingin Anda ambil:
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Values\ArchivableCrudObjectEffectiveStatuses;
use FacebookAds\Object\Fields\AdFields;
$adset = new AdSet(<AD_SET_ID>);
$ads = $adset->getAds(array(
AdFields::NAME,
AdFields::CONFIGURED_STATUS,
AdFields::EFFECTIVE_STATUS,
AdFields::CREATIVE,
), array(
AdFields::EFFECTIVE_STATUS => array(
ArchivableCrudObjectEffectiveStatuses::ACTIVE,
ArchivableCrudObjectEffectiveStatuses::PAUSED,
ArchivableCrudObjectEffectiveStatuses::PENDING_REVIEW,
ArchivableCrudObjectEffectiveStatuses::PREAPPROVED,
),
));
from facebookads.adobjects.adset import AdSet
from facebookads.adobjects.ad import Ad
fields = [
Ad.Field.name,
Ad.Field.configured_status,
Ad.Field.effective_status,
Ad.Field.creative,
]
params = {
Ad.Field.effective_status: [
'ACTIVE',
'PAUSED',
'PENDING_REVIEW',
'PREAPPROVED',
],
}
ad_set = AdSet(<AD_SET_ID>)
ads = ad_set.get_ads(fields=fields, params=params)
APINodeList<Ad> ads = new AdSet(<AD_SET_ID>, context).getAds()
.setEffectiveStatus("[\"ACTIVE\",\"PAUSED\",\"PENDING_REVIEW\",\"PREAPPROVED\"]")
.requestNameField()
.requestConfiguredStatusField()
.requestEffectiveStatusField()
.requestCreativeField()
.execute();
curl -G \
--data-urlencode 'effective_status=[
"ACTIVE",
"PAUSED",
"PENDING_REVIEW",
"PREAPPROVED"
]' \
-d 'fields=name,configured_status,effective_status,creative' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<AD_SET_ID>/ads
Anda mungkin menemukan jumlah total iklan lebih besar daripada jumlah yang ingin Anda tampilkan pada satu halaman. Dalam hal ini, Anda harus menentukan kolom limit
sebagai jumlah item yang ingin Anda ambil, lalu paginasi melalui item yang tersisa.
Paginasi dilakukan menggunakan kursor yang ditampilkan sebagai bagian dari tanggapan:
"paging": { "previous" : "https://graph.facebook.com/...", "next": "https://graph.facebook.com/...", "cursors": { "before": "NjAxNjc3NTU1ODMyNw==", "after": "NjAxMTc0NTU2MjcyNw==" }
Jika ada halaman tambahan yang diambil, tanggapan mencakup kolom previous
dan next
, serta URL ini dapat dipanggil untuk mengambil halaman data ini. Baca selengkapnya tentang paginasi berbasis kursor.