Studi kasus

Mengelola banyak ad account klien dari satu set rule

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.

Diperbarui

Situasi

Apa yang berubah ketika AdOps yang memeriksa?

Masalah yang melatari panduan ini, dan bentuk akun setelah rule-nya berjalan.

Sebelum

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.

Sesudah

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

Rule apa saja yang dipakai panduan ini?

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.

  1. Bandingkan dengan target milik klien itu sendiri

    Live
    Applies to
    Campaign

    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}]

    Alasan rule ini

    Targetnya tinggal di satu baris Google Sheet yang dirawat account manager, jadi mengubah target klien cukup mengedit sel, bukan mengedit rule.

  2. Jaga plafon retainer

    Live
    Applies to
    Campaign

    When

    • Spend Bulan ini > custom metric monthly_cap

    Then

    • Pause campaign
    • Add to name Mode Append · [CAP-REACHED]

    Alasan rule ini

    Overspend retainer adalah satu-satunya kesalahan yang dibayar agency dari margin sendiri, dan plafonnya berbeda untuk setiap klien.

  3. Plafon untuk setiap campaign

    Live
    Applies to
    Campaign

    When

    • Daily Budget > Rp 2.000.000

    Then

    • Set budget ke Rp 2.000.000 Nominal tetap

    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.

  4. Kunci satu rule ke satu klien di dalam akun bersama

    Live
    Applies to
    Campaign
    Scope
    Campaign Name contains ACME

    When

    • Spend 3 hari terakhir > Rp 1.500.000
    • AND Purchases 3 hari terakhir = 0

    Then

    • Pause campaign
    • Add to name Mode Append · [NO-SALES {date}]

    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.

  5. Jadikan daftar campaign sebagai laporan mingguan

    Live
    Applies to
    Campaign

    When

    • Spend 7 hari terakhir > Rp 1.000.000

    Then

    • Add to name Mode Append · [ROAS {metric|purchase_roas.omni_purchase|last_7d}]

    Alasan rule ini

    Klien yang membuka Ads Manager melihat angka 7 hari yang sama dengan yang dilaporkan agency, tertulis langsung di campaignnya.

Daftar rule AdOps dengan tiga rule terpilih; baris select-all berganti menjadi bar aksi bertuliskan 3 selected dengan tombol Set live dan Turn off serta ikon duplikat, hapus, dan lainnya. Data contoh
Pilih beberapa rule sekaligus lalu setel live, matikan, duplikasi, atau hapus dalam satu langkah — kasus agensi. Baca detailnya

Fakta kunci

Berapa angka di balik panduan ini?

Pembagian pekerjaan
Satu job antrean per ad account Rule yang jatuh tempo dikirim oleh sweep yang berjalan setiap 10 detik
Sumber custom metric
Google Sheets Berisi spreadsheet id, nama sheet, kolom pencarian, dan kolom nilai, diselesaikan saat evaluasi
Cache custom metric
2 menit di memori, TTL sejak akses terakhir Jatuh ke baris terakhir yang tersimpan di MongoDB bila pengambilan live gagal
Field pre-filter
3 Campaign ID equal atau not equal, Campaign Name contains atau does not contain, Campaign Status is atau is not
Percobaan ambil data dari Meta
3 percobaan total, jeda 1 detik lalu 2 detik
Template rule bawaan
10, dalam 4 kategori budget, status, naming, monitoring

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.

Kenapa otomasi multi-akun mulai retak di klien kelima?

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.

Bagaimana custom metric menyimpan target tiap klien?

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.

Bagaimana memisahkan pekerjaan antar klien?

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.

Bagaimana pekerjaannya dibagi?

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.

Apa yang dilihat agency setelahnya?

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.

Apa yang belum diselesaikan AdOps untuk 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

Pertanyaan yang sering muncul soal studi kasus ini

Bisakah satu rule AdOps memakai threshold berbeda untuk tiap klien?

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.

Bagaimana AdOps menjaga campaign satu klien tidak kena rule klien lain?

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.

Apakah menambah ad account membuat otomasi jadi lambat?

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.

Seberapa baru angka yang dibaca dari Google Sheet?

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.

Bisakah agency membandingkan satu metric dengan metric lain, bukan dengan angka tetap?

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.

Bagian mana dari akun AdOps yang terkunci jika invoice belum dibayar?

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.

Bangun ulang panduan ini di akun Anda sendiri.

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.

Hubungi kami Lihat harga

Gratis 14 hari · tanpa kartu · ditagih dalam Rupiah

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