Meta Business Extension (MBE) memungkinkan pengguna Anda dengan mudah mengunggah aset materi iklan di seluruh jajaran aplikasi Meta dengan menghubungkan dengan Pengelola Bisnis baru atau yang sudah ada. Menggunakan Pengelola Bisnis yang ditampilkan setelah menyelesaikan alur ini, mitra dapat mengunggah aset materi iklan ke Facebook atas nama klien mereka:
Dokumen ini menguraikan prasyarat utama untuk alur Materi Iklan MBE bersama dengan langkah-langkah yang diperlukan untuk menyelesaikan proses. Bacalah panduan Facebook Business Extension untuk detail spesifik tentang integrasi keseluruhan.
Contoh — Alur onboarding dari permukaan partner (Login Bisnis)
Daftar sebagai developer Meta untuk mengakses fitur-fitur developer kami dan membuat aplikasi Meta.
Jika belum, buatlah aplikasi Meta.
Aplikasi Meta Anda harus dimiliki oleh Pengelola Bisnis yang adalah bisnis terverifikasi. Pelajari selengkapnya tentang cara memverifikasi bisnis Anda.
Buat aplikasi uji dari gunakanlah untuk melakukan semua pengembangan dan pengujian. Pastikan untuk menetapkan Pengelola Bisnis yang berbeda ke aplikasi uji Anda.
Izin/Kemampuan Pribadi:
manage_business_extension
— Akses ke Meta Business Extension. Setelah kemampuan ini dikeluarkan untuk aplikasi Anda, Panel Developer MBE dapat ditemukan di bawah Produk.
Business_creative_asset_management
— Akses ke API pengelolaan aset terkait materi iklan. Setelah mendapatkan kemampuan ini, Anda memiliki akses ke izin berikut:
business_creative_insights
: Akses insight aset materi iklan bisnis.
business_creative_management
: Mengizinkan aplikasi Anda membuat, mengedit, dan membagikan folder baru dan mengunggah aset ke semua ini dalam konteks entitas bisnis Anda sendiri.
business_creative_insights_share
(dalam pengembangan): Izin opsional yang digunakan dalam alur berbagi folder. Jika diberikan oleh pengguna, aplikasi Anda akan dapat membagikan folder materi iklan ke bisnis lain dan memungkinkan mereka untuk melihat insight aset materi iklan.
Buat token akses partner:
Buat token akses pengguna sistem admin di bawah pengelola bisnis Anda dengan mengikuti petunjuk ini.
Pastikan token ini memiliki izin business_creative_insights
, business_creative_management
dan business_management
dipilih di langkah "cakupan yang tersedia".
Tombol ini digunakan untuk mengirim aset ke Galeri Media Facebook pengguna dari aplikasi Anda. Selama proses ini, aplikasi Anda harus mengizinkan pengguna untuk memilih atau membuat folder tujuan pengiriman aset.
Kami merekomendasikan dua pendekatan untuk melakukan hal ini:
1. (Minimal) Pengguna hanya memiliki opsi untuk memilih atau membuat folder level atas. Di bawah konteks bisnis yang dipilih, kueri semua folder level atas yang aksesnya dimiliki pengguna. Minta pengguna untuk memilih folder level atas yang ada atau membuat yang baru. Pengguna dapat menentukan nama folder atau menggunakan nama folder default <YourBusinessName>_<UserBusinessName>_<UserName>
. Unggah aset ke folder level atas yang dipilih atau baru. Pendekatan ini membutuhkan kerja UI minimal dan detail API dapat ditemukan di Langkah 3 di bawah.
2. (Opsional) Pengguna memiliki kontrol penuh atas navigasi folder dan subfolder. Di bawah konteks bisnis yang dipilih, kueri semua folder level atas yang dapat diakses pengguna dan minta pengguna untuk memilih folder level atas yang ada atau membuat yang baru. Untuk folder baru, minta pengguna untuk memberi nama folder atau gunakan nama default <YourBusinessName>_<UserBusinessName>_<UserName>
. Di bawah folder level atas yang dipilih, pengguna memiliki opsi untuk menavigasi ke subfolder yang ada, membuat subfolder baru, atau mengunggah aset. Dengan opsi ini, Anda perlu menerapkan navigasi folder di UI Anda. Instruksi integrasi API dapat ditemukan di Langkah 3 dan Langkah 4 di bawah.
Langkah-langkah khusus yang diperlukan untuk menerapkan alur ini adalah sebagai berikut:
Saat pengguna mengirim aset materi iklan ke Facebook untuk pertama kalinya, Anda perlu meminta Facebook Business Extension untuk meminta pengguna mengautentikasi dan memberikan aplikasi Anda izin dan akses yang diperlukan ke aset, dalam bentuk token akses, untuk mengakses data mereka di Facebook. Lihat Facebook Business Extension: Memulai untuk menerapkan Facebook Business Extension ke dalam aplikasi Anda. Ikuti panduan Aplikasi Bisnis untuk mengaktifkan aplikasi Anda ke permukaan di Aplikasi Bisnis.
Untuk mendorong alur Materi Iklan:
business_creative_management
dan business_creative_insights
business_creative_insights_share
VIEW_INSIGHTS
Dengan menggunakan token akses pengguna yang dikembalikan dari permintaan ini, Anda dapat melakukan panggilan API atas nama pengguna.
Kolom | Jenis | Deskripsi |
---|---|---|
| pengaturan | Wajib Pengaturan Facebook penjual, seperti pengidentifikasi unik mereka ( |
| business_config | Wajib Objek konfigurasi yang digunakan Ekstensi Bisnis Facebook untuk mengonfigurasi alur kerja Facebook Business Extension. Lihat detail objek |
| boolean | Wajib Atur nilai ini ke |
Gunakan objek ini untuk menentukan pengaturan kehadiran Facebook pengguna akhir
Kolom | Deskripsi |
---|---|
| Wajib. |
| Wajib. |
| Wajib. |
| Wajib. |
| Wajib.
|
| Opsional. |
Gunakan objek ini untuk mengonfigurasi pengaturan bisnis untuk pengguna akhir. Ini termasuk CTA, kartu Layanan, dan lainnya. Setiap kolom menyertakan "jenis" yang ditautkan ke tabel masing-masing di bawah ini.
Kolom | Deskripsi |
---|---|
| Wajib. |
Gunakan objek ini untuk mengonfigurasi nama bisnis.
Kolom | Deskripsi |
---|---|
| Wajib. |
Setelah pengguna menyelesaikan alur onboarding MBE di atas, Anda akan menerima ID Pengelola Bisnis pengguna dan token akses baik dari API Penginstalan MBE maupun notifikasi Webhooks.
Pengguna dapat mengunggah aset ke folder level atas atau membuat subfolder di bawah folder level atas.
Pertama, periksa folder level atas mana yang izinnya dimiliki pengguna untuk tugas CREATE_CONTENT
, dengan membuat permintaan ke endpoint <business_id>/creative_folders
(dalam pengembangan).
Permintaan
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<user_business_id>/creative_folders?filtering=[{field:"permitted_tasks", operator: "EQUAL", value:"create_content"}]
Tanggapan
{ "id": "<folder_id>" }
Minta pengguna untuk memilih folder level atas yang ada atau buat folder level atas yang baru dalam konteks Pengelola Bisnis pengguna. Untuk folder level atas yang baru, Anda dapat meminta pengguna untuk menamai folder tersebut, atau gunakan default <YourBusinessName>_<UserBusinessName>_<UserName>
. Jika pengguna membagikan kembali folder tersebut kepada Anda, folder tersebut akan terlihat oleh bisnis Anda dan bisnis pengguna di galeri aset Facebook.
Catatan: Nama bisnis pengguna dapat diperoleh dengan membuat permintaan GET
ke endpoint {business-id}
dengan ketentuan {business-id}
adalah ID bisnis pengguna.
Permintaan
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>
Tanggapan
{ "id": {business-id} "name": {user-business-name} }
Permintaan
curl -X POST \ -F "name={folder_name}" -F "description={description}" -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders
Tanggapan
{ "id": {top-level-folder-id} }
Jika Anda ingin mendukung alur navigasi folder lengkap, minta pengguna untuk memilih subfolder yang ada atau buat yang baru di bawah folder level atas dengan permintaan berikut:
business_creative_management
Permintaan
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<parent_folder_id>/subfolders?fields=name
Tanggapan
{ "data": [ { "name": "<subfolder_name>", "id": "<subfolder_id>" } ] }
business_creative_management
Permintaan
curl -X POST \ -F "name={folder_name}" -F "description={description}" -F "parent_folder_id={parent-folder-id}" -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders
Tanggapan
{ "id": {sub-folder-id} }
Folder dan subfolder dapat dihapus dengan mengirimkan permintaan DELETE
ke endpoint <folder_id>
atau <subfolder_id>
.
Unggah aset materi iklan pengguna ke subfolder.
business_creative_management
Permintaan
curl -X POST \ -F 'bytes={image-content-in-bytes-format}' \ -F 'name={image-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ https://graph.facebook.com/{version}/{business-id}/images
Tanggapan
{ "images":{ "{image-name}":{ "id":"{business-creative-image-id}", "hash":"{hash}", "url":"{image-url}" } } }
Unggah video dalam satu permintaan jika ukurannya kurang dari beberapa MB, atau unggah dalam beberapa bagian (lihat bagian selanjutnya di bawah). Buat panggilan API untuk unggahan video di graph-video.facebook.com
dan bukan graph.facebook.com
.
Contoh — Kirim POST
ke {business-id}/video
dan sertakan nama video Anda, sumber, dan ID subfolder.
Permintaan
curl -X POST \ -F 'name={video-name}' \ -F 'source='@{video-path}'' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ https://graph-video.facebook.com/{version}/{business-id}/videos
Tanggapan
{ "success": true, "business_video_id": "<business_video_id>" }
Untuk video yang lebih besar, kirim satu permintaan awal, satu atau beberapa permintaan transfer, dan satu permintaan penyelesaian.
Untuk membuat permintaan awal dan membuat sesi unggah video, kirim permintaan POST
ke /{business-id}/videos
, atur kolom upload_phase
untuk memulai, dan tentukan file_size
, dalam bita
Permintaan
curl -X POST \ -F 'title={video-name}' \ -F 'creative_folder_id={subfolder-id}' \ -F 'access_token={user-access-token}' \ -F 'upload_phase=start' \ -F 'file_size={video_file_size_in_bytes}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Tanggapan
{ "upload_session_id": "{session-id}", "video_id": "{video-id}", "start_offset": "0", "end_offset": "52428800" }
Untuk mengunggah [0, 52428800] dari video Anda, potong file menjadi beberapa bagian sesuai dengan offset awal dan akhir, lalu kirim potongan tersebut dengan permintaan transfer. Kami mengirimkan Anda offset baru untuk setiap bagian -- gunakan offset baru ini untuk mengunggah setiap bagian.
Contoh: Mengirimkan potongan pertama
Permintaan
curl -X POST \ -F 'title={video-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ -F 'upload_phase=transfer' \ -F 'upload_session_id={session-id}' \ -F 'start_offset=0' \ -F 'video_file_chunk=@{binary-chunk-filename}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Tanggapan
Jika berhasil, kami menanggapi dengan offset untuk bagian Anda berikutnya
{ "start_offset": "52428800", //Start byte position of the next file chunk "end_offset": "104857601" //End byte position of the next file chunk }
Potong dan unggah bagian kedua dengan kisaran [52428800, 104857601] dari file Anda dan kirimkan:
Permintaan
curl -X POST \ -F 'title={video-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ -F 'upload_phase=transfer' \ -F 'start_offset=52428801' \ -F 'upload_session_id={your-upload-sesson-id}' \ -F 'video_file_chunk={binary-chunk-filename}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Tanggapan
Kirim semua potongan tambahan sampai start_offset
sama dengan end_offset
:
{ "start_offset": "152043520", "end_offset": "152043520" }
Tanggapan di atas berarti Anda mengunggah seluruh file. Sekarang Anda perlu memposting video ini dan menutup sesi unggah.
Permintaan
curl -X POST \ -F 'title={video-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={business-creative-folder-id}' \ -F 'upload_phase=finish' \ -F 'upload_session_id={session-id}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Jika Anda menemui kesalahan selama mengunggah, Anda dapat mencoba mengunggah potongan itu lagi. Biasanya kesalahan disebabkan oleh masalah tanggapan. Ulangi unggahan Anda untuk bagian yang gagal. Untuk informasi selengkapnya tentang kesalahan, lihat:
Aplikasi Anda harus memberi tahu pengguna bahwa unggahan telah berhasil, dan menampilkan tautan dalam ke materi iklan ini di balik ajakan bertindak "Lihat materi iklan di galeri aset Facebook saya". Tautan dalam dari folder atau aset tersebut adalah:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}
(dalam pengembangan)
Tautan ini mengarahkan pengguna ke halaman pemilihan bisnis jika pengguna memiliki beberapa Pengelola Bisnis. Untuk menghilangkan ambiguitas bisnis, Anda dapat memberikan konteks bisnis di URL sebagai berikut:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}&business_id={client_business_id}
URL tautan dalam juga dapat diperoleh dengan membuat permintaan GET
pada endpoint:
curl -X GET \ /<folder_id or asset_id> ?fields=['media_library_url'] &access_token=<user_access_token>
Tautan memungkinkan pengguna untuk langsung ke folder atau aset di bawah galeri aset Facebook.
Anda dapat meminta folder level atas untuk dibagikan dengan Anda jika Anda ingin mengelola folder atau melihat insight untuk aset. Kirim permintaan POST
ke: {business-creative-folder-id}/agencies
dan tetapkan permitted_tasks
ke CREATE_CONTENT
.
Catatan: Anda juga dapat menetapkan tugas yang diizinkan VIEW_INSIGHTS
, jika pengguna memberikan business_creative_insights_share
ke aplikasi Anda (dalam pengembangan).
business_creative_management
Permintaan
curl -X POST \ -F 'permitted_tasks=['CREATE_CONTENT','VIEW_INSIGHTS']' \ -F 'business={partner-business-id} ' \ -F 'access_token={user-access-token}' https://graph.facebook.com/<API_VERSION>/<BUSINESS_CREATIVE_FOLDER_ID>/agencies
Tanggapannya ada di salah satu dari dua jenis bergantung pada peran pengguna dalam organisasi bisnis mereka:
API akan membuat perjanjian kemitraan antara bisnis pengguna dan bisnis klien.
Tanggapan
Jika ada perjanjian kemitraan yang mapan antara bisnis pengguna dan bisnis Anda (bisnis pengguna berbagi folder dengan Anda, dan Anda menerima permintaan berbagi sebelumnya):
{ "success": true }
Jika Anda belum menerima permintaan berbagi apa pun dari bisnis pengguna:
{ "success": true, "share_status": "In Progress" }
Dalam skenario ini, bisnis Anda harus menerima permintaan berbagi sebelum bisnis Anda dapat mengakses semua kapabilitas yang diaktifkan oleh berbagi (lihat, buat, dan sebagainya).
Untuk mendapatkan daftar semua perjanjian kemitraan yang menunggu persetujuan, kirim permintaan ke {business-id}/received_sharing_agreements
menggunakan token akses partner Anda dan atur request_status
ke IN_PROGRESS
. Izin business_creative_management
dan business_management
diperlukan untuk tindakan ini.
Daftar Semua Perjanjian Kemitraan
Permintaan
curl -i -X GET https://graph.facebook.com/<API_VERSION>/<PARTNER_BUSINESS_ID>/received_sharing_agreements ?request_status=IN_PROGRESS &access_token={partner-access-token}"
Anda dapat menerima permintaan berbagi dengan mengirimkan POST
ke business_sharing_agreement_request_id
dan mengatur request_status
ke APPROVE
. Anda hanya perlu melakukan ini saat pertama kali seseorang berbagi folder dengan bisnis Anda. Izin business_management
diperlukan untuk tindakan ini:
Terima Perjanjian Kemitraan
Permintaan
curl -X POST \ -F 'request_status=APPROVE' \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_SHARING_AGREEMENT_REQUEST_ID>
Tanggapan
{ "success": true }
Alternatifnya, Anda dapat menyetujui permintaan berbagi yang tertunda di UI Pengelola Bisnis. Untuk melihat permintaan yang tertunda di Pengelola Bisnis, buka Pengaturan > Permintaan > Permintaan Diterima, tempat Anda dapat melihat informasi selengkapnya tentang permintaan tersebut.
API memicu alur kerja Notifikasi untuk mengirim notifikasi email ke admin bisnis untuk menyetujui permintaan.
Tanggapan
{ "success": true, "share_status": "Pending" }
Menanggapi status ini, aplikasi Anda harus memberi tahu pengguna bahwa:
Untuk mendapatkan daftar semua perjanjian tertunda yang telah dimulai di bisnis pengguna, kirim permintaan ke {business-id}/attempted_sharing_agreements
dan atur request_status
ke IN_PROGRESS
, atur requesting_business_id
ke ID Pengelola Bisnis pengguna. Izin business_creative_management
dan business_management
diperlukan untuk tindakan ini.
Daftar Semua Persetujuan Berbagi Folder yang Tertunda
Permintaan
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<PARTNER_BUSINESS_ID>/attempted_sharing_agreements ?request_status=IN_PROGRESS &requesting_business_id=<user_business_id> &access_token={partner-access-token}
Daftar Semua Persetujuan Berbagi Folder Tertunda dengan ID Permintaan
Alternatifnya, jika Anda memiliki ID permintaan, Anda bisa langsung mendapatkan status dengan mengirimkan permintaan ke {request_id}
.
business_creative_management
Permintaan
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<REQUEST_ID>?fields=status
Saat admin bisnis menyetujui permintaan, status berubah menjadi APPROVE
dan folder tersebut dibagikan kembali ke Pengelola Bisnis Anda jika bisnis pengguna dan bisnis Anda telah menjalin hubungan persetujuan berbagi (bisnis pengguna berbagi folder dengan Anda, dan Anda menerima permintaan berbagi sebelumnya). Jika tidak, share_status
diperbarui menjadi IN_PROGRESS
. Anda dapat mencantumkan semua perjanjian kemitraan dengan status IN_PROGRESS
dan menerimanya melalui API atau di UI Pengelola Bisnis.
Saat pengguna membagikan folder kepada Anda dengan izin untuk tugas VIEW_INSIGHTS
, Anda dapat membaca insight gambar dan video bisnis di bawah folder bersama dengan membuat permintaan GET
pada endpoint <business_asset_id>/insights
.
business_creative_management
dan business_creative_insights
.Permintaan
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ASSET_ID>/insights ?breakdowns=["age","gender"] &fields=impressions,inline_link_clicks,age,gender,date_start, &time_range={"since":"2019-08-01","until":"2019-08-22"} &access_token={partner-access-token}"
Tanggapan
{ "data": [ { "impressions": 99, "inline_link_clicks": 1, "age": "18-24", "gender": "female", "date_start": "2019-08-01", "date_end": "2019-08-22" }, { "impressions": 198, "inline_link_clicks": 2, "age": "18-24", "gender": "male", "date_start": "2019-08-01", "date_end": "2019-08-22" }, { "impressions": 464, "inline_link_clicks": 2, "age": "25-34", "gender": "female", "date_start": "2019-08-01", "date_end": "2019-08-22" }, ] }
Perincian dapat dengan:
gender
age
country
publisher_platform
platform_position
device_platform
ad_id
objective
optimization_goal
time_range
(memerlukan tanggal dalam format "TTTT-BB-HH", yang artinya dari awal tengah malam pada hari itu.)Untuk partner layanan terkelola, Anda dapat mengelola folder level atas dengan token akses partner jika folder telah dibagikan lagi dengan Anda bersama tugas yang diizinkan, yang memberikan:
CREATE_CONTENT
di folder, yang memungkinkan aplikasi Anda membuat subfolder dan mengunggah gambar dan video ke folder.VIEW_INSIGHTS
, yang dapat digunakan aplikasi Anda untuk melihat insight kinerja dari setiap aset materi iklan yang disimpan dalam folder ini.Panggil endpoint <business_id>/creative_folders
untuk mendapatkan semua folder induk yang dibagikan kepada Anda di bawah bisnis pengguna.
business_creative_management
Mendapatkan folder dari bisnis pengguna
Permintaan
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<partner_business_id>/creative_folders?filtering=[{field:"owner_business_id", operator:"EQUAL", value:"user_business_id"}]
Tanggapan
{ "data": [ { "id": "<shared_folder_id>" } ] }
Mendapatkan tugas yang diizinkan yang ada di folder
Permintaan
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<folder_id>/agencies
Tanggapan
{ "data": [ { "id": "<partner_business_id>", "name": "<partner business name>", "permitted_tasks": [ "VIEW_INSIGHTS", "VIEW_CONTENT", "CREATE_CONTENT", "MANAGE_CONTENT", "MANAGE_PERMISSIONS"] } ], }
CREATE_CONTENT
diperlukan untuk mengunggah gambar dan video ke folder bersamaVIEW_INSIGHTS
diperlukan untuk kueri insight materi iklan dari gambar atau video di bawah folder bersamaDengan izin tugas CREATE_CONTENT
di folder induk, Anda dapat membuat subfolder di folder bersama.
business_creative_management
Buat subfolder
Permintaan
curl -X POST \ -F "name={folder_name}" -F "description={description}" -F "parent_folder_id={parent-folder-id}" -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders
Tanggapan
{ "id": {subfolder-id} }
Ikuti langkah yang sama seperti yang tercantum di Langkah 5. Unggah gambar dan video ke subfolder dengan token partner.
Saat aplikasi Anda mengunggah gambar atau video ke galeri aset Facebook, API Facebook akan mengembalikan ID untuk aset tersebut.
Untuk memfasilitasi kelangsungan berkelanjutan, aplikasi Anda perlu melacak ID aset terhadap proyek/ruang kerja yang menghasilkan gambar/video ini di aplikasi Anda.
Ini akan memungkinkan kasus penggunaan "edit" dan "perbarui" yang efisien, yang akan didukung di masa mendatang, contoh:
media_library_url
aset gambar/video yang diunggahPermintaan
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<asset_id>?fields=media_library_url
&action=CREATE_AD
atau &action=CREATE_POST
di akhir tautan dalam dari langkah di atas.Contoh:
https://business.facebook.com/asset_library/business_creatives/?object_id=2838437832929622&action=CREATE_AD