Keamanan

Cara AdOps menangani data Anda

AdOps menyimpan Meta access token Anda di servernya sendiri dan memakainya untuk memanggil Graph API atas nama Anda. Setiap permintaan ke API AdOps membutuhkan bearer token, definisi aturan dan catatan eksekusi tersimpan di MongoDB, dan memutus koneksi Facebook menghapus token tersimpan dalam satu tindakan.

Halaman ini menjelaskan mekanisme yang ada hari ini. Ia tidak menjanjikan apa pun tentangnya, dan tidak mengklaim sertifikasi, audit independen, maupun angka uptime.

Akses

Siapa yang bisa menjangkau akun Anda?

Satu skema autentikasi, dua peran, dan default yang menutup endpoint baru alih-alih membukanya.

Bearer token pada tiap permintaan
Login menerbitkan JSON Web Token berisi id pengguna, username, roles, dan status akun, dengan masa berlaku 24 jam. Sebuah guard yang didaftarkan secara global memverifikasi token itu pada tiap permintaan lalu memuat data penggunanya.
Rute publik ditandai eksplisit
Hanya rute yang ditandai publik yang melewati guard: login, pendaftaran, konfirmasi email, callback pembayaran, dan health check. Selebihnya membutuhkan token secara default.
Dua peran: USER dan ADMIN
Tiap akun membawa array roles. Endpoint daftar untuk aturan, custom metric, dan invoice memaksa kueri ke id akun pemanggilnya sendiri kecuali pemanggilnya ADMIN, dan dashboard membaca token yang sama untuk membatasi kontrol khusus admin.
Aturan password saat mendaftar
Password harus 8 sampai 128 karakter dan memuat huruf besar, huruf kecil, angka, serta simbol, dengan field konfirmasi yang harus sama. Email konfirmasi membawa token 64 karakter dan cooldown kirim ulang 60 detik.
Status akun membatasi produk
Sebuah akun berstatus TRIAL, ACTIVE, atau SUSPEND. Akun yang di-suspend tetap menyimpan datanya tetapi melihat kunci di atas Rules, Custom Metrics, Ad Accounts, Activity, dan Integrations sampai invoice-nya dibayar.

Meta token

Di mana Meta access token Anda berada.

Menghubungkan Facebook menyimpan satu access token pada record pengguna Anda di server AdOps. Setiap panggilan Graph API yang dibuat AdOps untuk Anda — membaca campaign, membaca Insights, mengubah budget, menjeda campaign — dikirim dengan token itu pada header Authorization. Tidak ada kredensial bersama: aturan Anda berjalan dengan otorisasi Facebook milik Anda sendiri.

Proses menghubungkan memverifikasi tokennya lebih dulu. AdOps memanggil endpoint /me milik Meta untuk memastikan tokennya bekerja dan mengambil nama profil, email, serta foto yang ditampilkan di layar Integrations, jadi token yang salah atau kedaluwarsa gagal saat dihubungkan, bukan diam-diam beberapa hari kemudian.

Endpoint profil dan status koneksi mengembalikan flag terhubung beserta metadata non-sensitif itu — id, nama, email, foto, tanggal terhubung, tanggal verifikasi terakhir — bukan tokennya.

Memutus koneksi, dari layar Integrations dan lewat konfirmasi, menghapus seluruh record ad account milik akun Anda serta menyetel token tersimpan, flag terhubung, dan metadata profil Facebook menjadi null dalam satu panggilan yang sama.

Ad account yang ditemukan dari Meta disimpan dalam keadaan nonaktif. Sebuah aturan tidak bisa menargetkan ad account, dan tidak ada spend yang dibaca darinya, sampai akun itu Anda aktifkan secara eksplisit.

Disimpan
Di sisi server pada record pengguna Anda
Dikirim ke
Meta Graph API sebagai bearer header, atas nama Anda
Token sesi AdOps
24 jam masa berlaku JWT
Putus koneksi
Satu tindakan menghapus ad account, membersihkan token

Penyimpanan

Yang disimpan AdOps di MongoDB.

API pengelolaan dan dua layanan eksekusi berbagi satu database MongoDB. Ini isi yang ditinggalkan sebuah akun yang aktif dipakai.

Catatan Isinya
Definisi aturan Nama, ad account target, pre-filter, task beserta kondisi dan aksinya, jadwal, serta waktu eksekusi berikutnya dan terakhir.
Hasil eksekusi Satu dokumen per campaign, per task, per eksekusi: aksinya, apakah tereksekusi, parameter aksinya, nilai sebelum dan sesudah, tiap kondisi beserta angka hasilnya, waktu tiap langkah, dan waktu eksekusi berikutnya yang diizinkan.
Catatan batch Satu per pengiriman: aturannya, ad account-nya, waktu mulai dan selesai, berapa item yang diproses dan terpengaruh, serta status eksekusinya.
Metadata ad account Id akun, nama akun, flag aktif, dan snapshot spend beserta mata uang dan rentang tanggalnya.
Definisi custom metric Id spreadsheet, nama sheet, kolom pencarian, dan kolom nilai yang dibaca sebuah metric.
Baris spreadsheet yang di-cache Baris terakhir yang dibaca dari tiap Google Sheet, dikunci berdasarkan file id dan nama sheet, dipakai ketika pengambilan langsung gagal.
Record akun Nama lengkap, username, email, status konfirmasi, roles, status, tanggal uji coba, nama perusahaan, industri, dan rentang budget iklan bulanan — serta Meta access token.
Record error Nama fungsi, pesan error yang sudah dinormalkan, stack, parameter permintaan dan respons API, jumlah kemunculan, serta waktu pertama dan terakhir terjadi.
Log generasi AI Untuk tiap generasi aturan oleh AI: permintaannya, responsnya, waktu respons, skor confidence, dan aturan yang menaunginya.
Record email, pembayaran, dan invoice Email terkirim beserta template dan statusnya; panggilan payment gateway beserta body permintaan dan responsnya; invoice beserta jumlah, jatuh tempo, dan statusnya.

Satu-satunya data campaign yang dibaca AdOps dari Meta adalah nama entitas dan waktu pembuatannya, ditambah angka agregat Insights yang diminta kondisi Anda. AdOps tidak membaca maupun menyimpan materi kreatif iklan, daftar audiens, atau data pelanggan.

Detail log eksekusi AdOps: satu campaign, dua panel aksi berbadge Not Executed, masing-masing memuat parameter aksi dan setiap kondisi yang dievaluasi beserta nilai aktual, nilai yang diharapkan, dan badge Pass atau Fail. Data contoh
Alasan sebuah rule tidak melakukan apa-apa dicatat sama telitinya dengan alasan ia bertindak — aktual versus ekspektasi, kondisi demi kondisi. Baca detailnya

Kegagalan

Cara AdOps mencatat kegagalannya sendiri.

Error ditulis ke database bersama, bukan hanya ke konsol. Sebelum disimpan, pesannya dinormalkan: timestamp, UUID, alamat IP, id ad account, dan deretan sepuluh angka atau lebih diganti dengan penanda, sehingga kesalahan yang sama selalu terbaca sama.

Error kemudian dikelompokkan berdasarkan nama fungsi ditambah pesan yang sudah dinormalkan itu, dengan sidik jari MD5 disimpan di sebelahnya. Kemunculan berulang menambah penghitung dan memperbarui waktu terakhir terjadi alih-alih menambah baris baru, dan tiap kelompok menyimpan 10 sampel parameter permintaan serta 10 sampel respons API terakhir. Error yang sudah ditandai selesai lalu muncul lagi otomatis dibuka kembali.

Semua penulisan yang dilakukan AdOps ke Graph API melewati satu pembungkus, jadi perubahan budget, jeda, atau penggantian nama yang gagal tercatat lengkap dengan body permintaannya dan respons error dari Meta. Kalau jalur deduplikasinya sendiri gagal, satu catatan biasa tetap ditulis — masalah pencatatan tidak menghentikan worker.

Operasional

Bagaimana AdOps dijalankan.

Fakta deployment, dipilih berdasarkan apa yang bisa dilakukan satu kesalahan.

Layanan dalam container
Layanan eksekusi dikirim sebagai image multi-stage di atas node:22-alpine, memasang dependensi produksi saja pada stage terakhir dan berjalan sebagai pengguna non-root, dengan tini sebagai proses init dan PM2 yang mengelola prosesnya.
Baca dan tulis dipisah ke layanan berbeda
Dispatcher yang menentukan aturan mana yang jatuh tempo hanya mengirim permintaan baca ke Graph API. Semua penulisan — budget, status, nama, duplikasi — terjadi di worker, proses yang berbeda.
Rem tingkat platform
Sebuah flag environment diperiksa di awal tiap sapuan dispatch. Kalau nilainya bukan true, sapuan langsung berhenti dan tidak ada aksi iklan otomatis yang dijalankan di mana pun.
Pengulangan antrean dan koneksi
Job diulang dengan backoff eksponensial mulai 1 detik, MongoDB menyambung ulang sampai 3 percobaan berjarak satu detik, dan Redis menyambung ulang dengan backoff maksimum 2 detik.
Panggilan keluar dibatasi
Klien HTTP worker memakai timeout 30 detik, begitu pula pengambilan Google Sheets. Dependensi yang menggantung berakhir sebagai error yang tercatat, bukan eksekusi yang macet.
Activity log AdOps dengan panel filter terbuka, menampilkan enam filter — nama event, ad account, nama rule, entity id, nama entity, dan action — dua di antaranya sudah terisi. Data contoh
Enam cara mempersempit ratusan ribu event menjadi satu perubahan yang sedang Anda telusuri.

Batas

Yang tidak diklaim halaman ini.

AdOps tidak memegang sertifikasi SOC 2, ISO 27001, atau yang setara, dan halaman ini tidak mengklaimnya. Tidak ada hasil penetration test pihak ketiga yang dipublikasikan. Tidak ada angka uptime yang dipublikasikan, dan tidak ada yang tersirat.

Tidak ada satu pun di halaman ini yang merupakan jaminan. Kewajiban kontraktual AdOps tertulis di Syarat Layanan dan Perjanjian Pemrosesan Data; kalau dokumen itu dan halaman ini berbeda, dokumen itulah yang berlaku.

Kalau ada pernyataan di sini yang menentukan keputusan Anda, minta kami menunjukkan mekanismenya sebelum Anda menyandarkan diri padanya.

Pelaporan

Melaporkan celah keamanan.

Kalau Anda menemukan masalah keamanan di AdOps, kirim detailnya ke support@adops.id lewat email.

Yang perlu disertakan

  • Apa yang Anda temukan, dan di mana.
  • Langkah untuk mereproduksinya.
  • Dampak yang menurut Anda ditimbulkannya.
  • Id akun, aturan, atau permintaan yang terkait.

Mohon uji hanya pada akun Anda sendiri. Jangan menjalankan uji denial-of-service, jangan mengirim trafik pemindaian otomatis, dan jangan mengakses data milik orang lain.

AdOps tidak menjalankan program bug bounty dan tidak membayar laporan.

Hubungkan satu ad account dan lihat apa yang terjadi.

Ad account masuk dalam keadaan nonaktif, aturan dimulai sebagai draft, dan tiap eksekusi menulis catatan. Anda bisa melihat seluruh jalurnya dengan satu akun menyala dan satu aturan live.

Hubungi kami Perjanjian pemrosesan data

Gratis 14 hari · putuskan koneksi kapan saja

Di dalam produk

Seperti apa layarnya sebenarnya

Sembilan layar dari dashboard yang berjalan — rule builder, metric picker, grid dayparting, dan log yang mencatat apa yang terjadi. Geser untuk melihat.

  • Performance Dashboard AdOps menampilkan kartu Purchase ROAS 2,380x dan Aggregated ROAS 2,088x yang keduanya berbadge Profitable, kartu Monthly Budget Rp 155jt, dan Spend Breakdown yang mengurutkan lima ad account teratas dengan bar budget utilization di 45,5 persen.
    Performance Dashboard. Dua angka ROAS hingga tiga desimal, meteran budget, dan spend yang diurutkan per ad account — untuk Today, Last 7 days, Last 30 days, atau This month.
  • Daftar rule AdOps menampilkan dua belas rule otomatisasi, masing-masing dengan toggle aktif/nonaktif, ad account yang dikelolanya, dan kapan terakhir kali dipicu — sebagian beberapa menit lalu, sebagian dengan timestamp bertanggal.
    Rule List. Semua rule, apa yang dikelolanya, dan kapan terakhir berjalan. Hanya toggle yang memisahkan draft dari live.
  • Condition builder AdOps menampilkan satu task dengan kondisi jam terhadap tujuh tag hari, satu grup AND bersarang berisi kondisi spend lifetime di bawah 400.000, dan task kedua dengan empat kondisi metrik bertumpuk.
    Kondisi. Metrik, periode, operator, nilai — digabung dengan AND atau OR dan bisa bersarang, sehingga satu rule bisa menyatakan hal yang tak bisa dinyatakan dropdown.
  • Pemilih metrik AdOps terbuka di atas satu baris kondisi: panel dengan tab Meta Ads dan Custom metrics, kotak pencarian, dan daftar metrik yang dapat digulir dengan Spend terpilih.
    Pemilih metrik. Empat puluh lima metrik Meta dan kolom sheet Anda sendiri dalam satu daftar, masing-masing membawa periode pelaporan dan enam pilihan operator.
  • Timetable dayparting AdOps: grid jam terhadap tujuh hari, dengan jam siang terisi navy untuk semua hari serta jam malam dan sore akhir pekan dibiarkan kosong.
    Grid dayparting. Atau gambar jamnya. Apa pun di luar bentuk yang Anda isi tidak akan berjalan.
  • Detail log eksekusi AdOps: satu campaign, dua panel aksi berbadge Not Executed, masing-masing memuat parameter aksi dan setiap kondisi yang dievaluasi beserta nilai aktual, nilai yang diharapkan, dan badge Pass atau Fail.
    Detail Rule Log. Alasan sebuah rule tidak melakukan apa-apa dicatat sama telitinya dengan alasan ia bertindak — aktual versus ekspektasi, kondisi demi kondisi.
  • Activity log AdOps memuat kenaikan budget dan penggantian nama campaign, tiap baris menyebut campaign yang terdampak lewat id-nya, rule penyebabnya, dan berapa lama lalu kejadiannya.
    Activity Log. Satu baris untuk setiap perubahan yang AdOps lakukan di akun Anda, menyebut campaign dan rule yang bertanggung jawab.
  • Daftar ad account AdOps: delapan belas ad account Meta dengan toggle aktif/nonaktif, id akun, badge Active atau Inactive, dan spend bulan ini dalam rupiah.
    Ad Accounts. Akun yang ditemukan dari Meta masuk dalam keadaan mati. Tidak ada yang dibaca, dan tidak ada yang diubah, sampai Anda menyalakannya.
  • Editor custom metric AdOps yang memetakan Google Spreadsheet: id spreadsheet, nama sheet, kolom untuk mencocokkan campaign, dan kolom yang memuat nilainya.
    Custom metric. Arahkan AdOps ke sebuah sheet, sebutkan kolom pencocok dan kolom nilainya, lalu angka Anda sendiri masuk ke daftar metrik.

Semua gambar dibangun ulang dari antarmuka produk dan diisi data fiktif — tidak ada nama pelanggan, ad account, atau angka spend asli di seluruh situs ini. Lihat cara satu run bekerja