Bandingkan dengan target milik klien itu sendiri
When
- Purchase ROAS 7 hari terakhir < custom metric target_roas
- AND Spend 7 hari terakhir > Rp 3.000.000
Then
- Pause campaign
- Add to name Mode Append · [BELOW-TARGET {date}]
Studi kasus
AdOps memungkinkan satu bentuk rule dipakai di semua ad account klien sementara tiap klien tetap punya angkanya sendiri. Sebuah kondisi bisa membandingkan metrik Meta yang hidup dengan custom metric yang AdOps ambil dari Google Sheet saat evaluasi, jadi mengubah target ROAS satu klien cukup lewat satu sel di spreadsheet.
Satu bentuk rule dipakai lintas ad account klien, dengan target ROAS dan batas bulanan tiap klien dibaca dari Google Sheet saat evaluasi.
Situasi
Masalah yang melatari panduan ini, dan bentuk akun setelah rule-nya berjalan.
Setiap klien punya target ROAS dan plafon bulanan berbeda, jadi rule yang sama harus ditulis ulang dan diperiksa per akun, dan satu threshold yang diubah Jumat sore baru ketahuan Senin.
Satu bentuk rule dipakai ulang di semua akun, angka per klien tinggal di Google Sheet yang dirawat account manager, dan setiap ad account mendapat job antrean serta log tersendiri.
Panduan
Tiap kartu adalah satu rule, ditulis seperti tampilan rule builder AdOps: kondisi di atas, action di bawah garis rambut.
Semua angka di bawah ini hanya contoh. Sesuaikan dengan akun Anda sebelum menyetel sebuah rule jadi live.
When
Then
Alasan rule ini
Targetnya tinggal di satu baris Google Sheet yang dirawat account manager, jadi mengubah target klien cukup mengedit sel, bukan mengedit rule.
When
Then
Alasan rule ini
Overspend retainer adalah satu-satunya kesalahan yang dibayar agency dari margin sendiri, dan plafonnya berbeda untuk setiap klien.
When
Then
Alasan rule ini
Engine membaca ulang Daily Budget live dari Meta sebelum menulis, jadi budget yang dinaikkan manual atau oleh tool lain ditarik kembali ke plafon yang disepakati.
When
Then
Alasan rule ini
Campaign Name adalah satu dari tiga field pre-filter, jadi konvensi penamaan yang sudah dipakai langsung menjadi batas antar klien tanpa daftar campaign ID.
When
Then
Alasan rule ini
Klien yang membuka Ads Manager melihat angka 7 hari yang sama dengan yang dilaporkan agency, tertulis langsung di campaignnya.
Data contoh Fakta kunci
AdOps memungkinkan agency memakai satu bentuk rule di banyak ad account Meta sambil tetap menghormati angka masing-masing klien. Sebuah kondisi dapat membandingkan metric Meta live terhadap custom metric yang diselesaikan AdOps dari Google Sheet saat evaluasi, sehingga target ROAS atau plafon bulanan klien diedit di spreadsheet, bukan di belasan rule terpisah.
Yang sulit bukan rulenya, melainkan angkanya. Sepuluh klien berarti sepuluh target ROAS, sepuluh plafon bulanan, dan sepuluh pendapat berbeda tentang kapan sebuah campaign layak di-pause, dan semuanya pasti berubah di tengah kuartal.
Menyalin rule per klien masih jalan sampai satu target bergeser. Setelah itu perubahannya harus dicari di akun yang benar, diterapkan ke rule yang benar, lalu diverifikasi, dan account manager yang menyepakati angka baru itu biasanya bukan orang yang mengedit rule.
Sebuah custom metric di AdOps menyebut spreadsheet id Google Sheets, nama sheet, kolom pencarian, dan kolom nilai. Saat evaluasi, engine menyelesaikan metric itu menjadi sebuah angka, dan kondisi yang diatur membandingkan terhadap metric akan memakai angka tersebut alih-alih threshold yang ditulis keras.
Bentuk praktisnya adalah satu sheet dengan satu baris per klien: kunci klien, target ROAS, plafon bulanan, budget dasar. Purchase ROAS 7 hari terakhir lebih kecil dari target_roas lalu berarti hal yang berbeda di setiap akun, dan memperbarui target klien cukup mengedit satu sel yang berlaku pada evaluasi berikutnya.
Dua batasannya perlu disebut terus terang. Baris disimpan di cache memori dengan TTL 2 menit sejak akses terakhir, dengan baris terakhir di MongoDB sebagai cadangan, sehingga sheet yang dibaca terus menerus bisa menyajikan salinan lama. Pencariannya juga membaca baris pertama yang cocok untuk tiap baris formula, jadi sheet sebaiknya memuat satu baris per kunci.
Setiap rule menempel pada satu ad account, dan itu batas pertamanya. Di dalam satu akun, tiga pre-filter mempersempit rule lebih jauh: Campaign ID dengan equal atau not equal, Campaign Name dengan contains atau does not contain, dan Campaign Status dengan is atau is not pada nilai ACTIVE serta PAUSED.
Campaign Name adalah yang paling terukur. Kalau satu akun bersama memakai prefix klien atau brand, rule dengan pre-filter Campaign Name contains akan otomatis menangkap campaign baru pada hari campaign itu dibuat.
Ad account juga dimulai dalam keadaan mati. Setiap akun yang ditemukan dari Meta disimpan sebagai tidak aktif, dan tidak ada yang dievaluasi sampai seseorang mengaktifkannya, yang berguna ketika akun klien baru dihubungkan di tengah minggu.
Dispatcher menyapu rule yang waktu eksekusi berikutnya sudah lewat, memakai cron 10 detik dengan pencegahan tumpang tindih, lalu memasukkan satu job per ad account ke antrean berbasis Redis. Worker mengambil job itu, melakukan satu pembacaan Meta Insights yang dibatch untuk metric yang dibutuhkan kondisi, mengevaluasi kondisinya, lalu menjalankan actionnya.
Pemisahan itu punya sifat yang layak diketahui saat Anda menyerahkan seluruh portofolio agency ke sebuah otomasi: dispatcher hanya melakukan pembacaan ke Meta Graph API. Semua perubahan budget, pause, dan penggantian nama terjadi di worker di belakangnya.
Pengambilan data entity dari Meta diulang sampai 3 percobaan total, dengan jeda 1 detik lalu 2 detik, sehingga satu error sementara di Graph API tidak diam-diam melewati satu akun.
Urutan pemeriksaannya juga bisa diatur per akun. Sebuah rule berjalan memakai timetable mingguan berisi hari dan jam, atau memakai check interval biasa dari 10 nilai antara 15 menit dan 72 jam, jadi akun klien berspend besar bisa diperiksa tiap 15 menit sementara akun retainer kecil cukup diperiksa tiap 6 jam tanpa menambah rule baru.
Setiap eksekusi menulis satu batch record dan satu hasil per campaign per task. Layar Rule Log Detail menampilkan badge Executed, Not Executed, atau Skipped per campaign, setiap kondisi bertanda Pass atau Fail di samping angka yang dibacanya, parameter yang dipakai action, waktu eksekusi dalam detik, dan jadwal eksekusi berikutnya.
Untuk laporan ke klien, action Add to name membawa shortcode live seperti {metric|purchase_roas.omni_purchase|last_7d} dan {date}, jadi nama campaign bisa membawa angka ROAS 7 harinya sendiri. Klien yang membuka Ads Manager membaca angka yang sama dengan laporan agency.
Tidak ada rule lintas akun: satu rule menempel pada satu ad account, jadi menjalankan kebijakan yang sama di seluruh portofolio berarti membuatnya per akun. Action berbentuk campaign, jadi rencanakan pada level budget campaign. AdOps saat ini terhubung ke Meta Ads saja, dengan TikTok Ads, Google Ads, dan Snapchat Ads tercantum sebagai coming soon, dan penagihan berjalan dalam Rupiah lewat Duitku.
Pertanyaan
Bisa, lewat custom metric. Sebuah custom metric menyebut spreadsheet id Google Sheets, nama sheet, kolom pencarian, dan kolom nilai, lalu sebuah kondisi dapat membandingkan metric Meta live terhadap nilai hasil pencarian itu, bukan terhadap angka tetap.
Setiap rule menempel pada satu ad account, dan bisa dipersempit lagi dengan tiga pre-filter: Campaign ID, Campaign Name, dan Campaign Status. Filter Campaign Name contains mengubah konvensi penamaan yang sudah ada menjadi batas antar klien.
AdOps menyebar pekerjaan sebagai satu job antrean per ad account, jadi tiap akun diproses sebagai job terpisah, bukan satu pass panjang. Dispatcher-nya sendiri hanya melakukan pembacaan ke Meta Graph API; semua penulisan terjadi di worker di belakangnya.
Baris sheet disimpan di cache memori dengan TTL 2 menit sejak akses terakhir, dan baris terakhir di MongoDB dipakai sebagai cadangan bila pengambilan live gagal. Baris yang terus menerus dibaca karena itu bisa menyajikan salinan cache, jadi perlakukan sheet sebagai daftar target, bukan sebagai feed real time.
Bisa. Sebuah kondisi dapat diatur untuk membandingkan terhadap metric, bukan terhadap value, dan metric pembandingnya membawa periode laporannya sendiri, sehingga satu rule bisa menguji Purchase ROAS hari ini terhadap Purchase ROAS 7 hari terakhir pada campaign yang sama.
Akun yang disuspend tetap menyimpan datanya tetapi menampilkan overlay Feature Lock pada Automation Rules, Ad Accounts, Activity Logs, dan Custom Metrics sampai invoice dibayar. Status akun yang tersedia adalah TRIAL, ACTIVE, dan SUSPEND.
Terkait
Semua rule di halaman ini tersusun dari kondisi dan action yang memang ada di AdOps. Arahkan ke satu ad account dan baca log-nya sebelum memperluas cakupan.
Di dalam produk
Sembilan layar dari dashboard yang berjalan — rule builder, metric picker, grid dayparting, dan log yang mencatat apa yang terjadi. Geser untuk melihat.
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