Semua artikel
PlaybookWaktu baca 8 menit

Tandai setiap pembelian Google Play dengan obfuscated account id, atau chargeback datang tanpa cara untuk menelusurinya

Google Play memungkinkan Anda mencap id yang stabil dan di-hash pada setiap pembelian dan membacanya kembali saat sengketa muncul. Atur ini, dan tinjauan chargeback terhubung ke pengguna persis yang penggunaannya harus Anda laporkan. Lewatkan, dan Anda mencocokkan id pesanan telanjang dengan tebakan di bawah jam 24 jam.

Tangan seorang pengembang mengikatkan label kosong kecil pada struk pembelian kertas di samping ponsel Android, mewakili pencapan obfuscated account id Google Play pada sebuah pembelian

Poin utama

  • Obfuscated account id adalah string yang Anda lampirkan ke pembelian Google Play dengan setObfuscatedAccountId. Google Play menyimpannya bersama pesanan dan mengembalikannya nanti sebagai obfuscatedExternalAccountId, sehingga sebuah pembelian dapat ditelusuri kembali ke pengguna di sistem Anda yang melakukannya.
  • Dalam kata-kata Google, kolom ini memungkinkan Google Play mendeteksi aktivitas tidak wajar, seperti banyak perangkat yang melakukan pembelian pada akun yang sama dalam rentang waktu singkat. Mengaturnya memberi masukan pada penyaringan penipuan Google sendiri saat pembelian, sebelum transaksi selesai.
  • Pengenal ini dibatasi 64 karakter dan tidak boleh membawa informasi pribadi dalam teks jelas. Google mengatakan menyimpan PII seperti email di kolom ini mengakibatkan pembelian diblokir, dan merekomendasikan hash satu arah atau enkripsi sebagai gantinya.
  • Ketika chargeback bank memerlukan tinjauan Anda, Google Play mengirim PendingRefundReviewNotification yang menyebutkan sebuah pesanan, bukan seseorang. Obfuscated account id adalah kunci penggabung yang memetakan pesanan itu kembali ke catatan pengguna yang penggunaannya harus Anda laporkan.
  • Anda menjawab sengketa dengan memanggil orders.reviewrefund dalam 24 jam dengan refundPreference, flag sampleContentProvided, dan bukti konsumsi seperti consumptionPercentageMilliunits dan consumptionUsageEvents. Anda hanya bisa menyusun bukti itu setelah tahu pengguna mana yang memiliki pesanan tersebut.
  • Untuk pesanan Google Play yang dilakukan pada atau setelah 3 Agustus 2026, chargeback yang kalah menagih pengembang sebesar harga pembelian dikurangi biaya layanan Google, ditambah biaya chargeback bank. Sengketa yang tidak bisa Anda jawab karena tidak bisa mengidentifikasi pesanan kini adalah biaya langsung, bukan sekadar penjualan yang hilang.
  • Atur id pada setiap pembelian, bukan hanya langganan, dan bacalah kembali di sisi server. Di klien, id itu berasal dari Purchase.getAccountIdentifiers, dan di backend Anda ia adalah kolom obfuscatedExternalAccountId pada catatan pembelian.

Sebuah tinjauan chargeback Google Play muncul dengan menyebutkan sebuah pesanan dan token pembelian. Ia tidak memberi tahu Anda siapa pelanggannya. Jika Anda tidak pernah mencap pengenal Anda sendiri pada pembelian itu, sekarang Anda mencocokkan id pesanan telanjang dengan tabel pengguna Anda di bawah jam 24 jam, dan Anda harus menjawab dengan bukti konsumsi yang mungkin tak bisa Anda temukan. Obfuscated account id adalah solusinya. Ia adalah string pendek yang Anda lampirkan saat checkout yang disimpan Google Play bersama pembelian dan dikembalikan kepada Anda nanti, sehingga setiap pesanan dapat ditelusuri ke pengguna persis yang melakukannya. Inilah apa itu kolom tersebut, mengapa ia menentukan apakah Anda bisa menjawab sengketa sama sekali, dan berapa biaya melewatkannya kini chargeback yang kalah adalah tagihan.

Apa sebenarnya obfuscated account id itu

Obfuscated account id adalah satu string opsional yang Anda teruskan ke alur penagihan Google Play saat pelanggan membeli sesuatu. Anda mengaturnya dengan setObfuscatedAccountId pada builder BillingFlowParams, dan Google menyimpannya di samping pembelian. Ia bukan nama pelanggan, bukan email mereka, dan bukan akun Google mereka. Ia adalah pengenal Anda sendiri untuk pengguna Anda sendiri, ditulis dalam bentuk yang bisa disimpan Google tanpa mengetahui siapa orang itu.

Ia adalah string yang Anda atur saat checkout, bukan sebuah nama

Dalam kata-kata Google, setObfuscatedAccountId menentukan string obfuscated opsional yang secara unik terkait dengan akun pengguna pembeli di aplikasi Anda. Kata obfuscated benar-benar bermakna di sini. Google tidak menginginkan id pengguna mentah Anda atau apa pun yang mengidentifikasi orangnya. Ia menginginkan token stabil yang memetakan satu-ke-satu ke seorang pengguna di sisi Anda, tidak lebih. Kolom ini dibatasi 64 karakter, yang menampung sebuah hash dengan nyaman dan tidak banyak lagi.

Google membacanya lebih dulu untuk penyaringan penipuannya sendiri

Sebelum berguna bagi Anda, kolom ini menjalankan tugas untuk Google. Dokumentasi penagihan mengatakan Google Play dapat menggunakan nilai ini untuk mendeteksi aktivitas tidak wajar, seperti banyak perangkat yang melakukan pembelian pada akun yang sama dalam rentang waktu singkat, dan bahwa Google menggunakan data ini untuk mendeteksi perilaku mencurigakan dan memblokir beberapa jenis transaksi penipuan sebelum diselesaikan. Jadi imbalan pertama dari mengaturnya ada di hulu, dalam pembelian yang lebih bersih dan lebih sedikit pembelian penipuan yang kemudian berubah menjadi pembatalan dan sengketa. Google mendaftarkan obfuscated account id dan Voided Purchases API bersama-sama sebagai dua alat inti anti penyalahgunaannya bukan tanpa alasan.

Mengapa ini penting saat tinjauan chargeback tiba

Pengembalian dana yang bisa Anda lihat datangnya itu mudah. Kasus sulitnya adalah chargeback bank, karena ia tidak dimulai dari pelanggan Anda berbicara kepada Anda. Ia dimulai dari bank, dan Google Play meneruskannya kepada Anda sebagai tinjauan dengan jam yang menyertainya.

Sengketa menyebutkan sebuah pesanan, bukan seseorang

Ketika pelanggan menyengketakan sebuah tagihan dengan banknya dan Google memerlukan masukan Anda, Google Play mengirim PendingRefundReviewNotification. Pesan itu mengidentifikasi pesanan. Ia tidak membawa id pengguna Anda, karena Google tidak pernah memiliki id pengguna Anda. Ia hanya memiliki apa pun yang Anda cap pada pembelian. Jika itu tidak ada, sekarang Anda menelusuri balik id pesanan telanjang dan token pembelian terhadap catatan Anda sendiri, berharap Anda mencatat token saat pembelian dan berharap kecocokannya tidak ambigu. Jika Anda mengatur obfuscated account id, pembelian membawa hash Anda sendiri, Anda mencari pengguna dalam satu kueri, dan Anda beralih ke menyusun bukti alih-alih berburu identitas.

Apa yang sebenarnya diminta oleh orders.reviewrefund

Menjawab sengketa berarti memanggil metode orders.reviewrefund dalam 24 jam. Google mencatat panggilan pertama Anda dan mengabaikan sisanya, sehingga jawaban pertama adalah satu-satunya jawaban. Inilah kolom yang diinginkannya, dan setiap kolom bukti mengasumsikan Anda sudah tahu pengguna mana yang memiliki pesanan tersebut.

KolomWajibApa yang dibawanya
pendingRefundTokenYaToken dari PendingRefundReviewNotification yang Anda jawab
refundPreferenceYaAPPROVE, DECLINE, atau NEUTRAL, rekomendasi Anda apakah Play harus mengembalikan dana
sampleContentProvidedYaApakah Anda memberikan sampel gratis, uji coba, atau deskripsi fitur sebelum pembelian
consumptionPercentageMilliunitsOpsionalBerapa banyak pembelian yang dikonsumsi pelanggan, 0 hingga 100,000 milliunits
consumptionUsageEventsOpsionalDaftar peristiwa, masing-masing sebuah kejadian di mana pengguna mengonsumsi atau menggunakan apa yang mereka beli
Label kertas kosong kecil yang diikat dengan tali terletak di atas laporan bank tercetak di samping ponsel pintar yang menampilkan daftar transaksi yang buram, mewakili penandaan pembelian Google Play agar sengketa berikutnya bisa ditelusuri ke seorang pengguna

Berapa sebenarnya biaya melewatkannya

Selama sebagian besar sejarah Google Play, chargeback yang tak bisa Anda bela adalah penjualan yang hilang dan sebuah gerakan mengangkat bahu. Itu berubah. Untuk pesanan yang dilakukan pada atau setelah 3 Agustus 2026, chargeback yang kalah menagih pengembang sebesar harga pembelian dikurangi biaya layanan Google, ditambah biaya chargeback bank. Sengketa yang tak bisa Anda jawab kini adalah item baris.

Mari telusuri satu pesanan. Seorang pelanggan menyengketakan pembelian $9.99 dengan banknya. Google Play mengirim tinjauan, dan Anda punya 24 jam. Jika Anda menandai pembelian, Anda menemukan pengguna, melihat mereka mengonsumsi sebagian besar dari yang mereka beli, dan menjawab reviewrefund dengan preferensi DECLINE dan bukti konsumsi, memberi Google perkara nyata untuk melawan sengketa yang tidak sah. Jika Anda tidak menandainya, Anda entah tidak bisa mengidentifikasi pesanan tepat waktu atau menjawab tanpa apa pun, sengketa diputuskan tanpa pihak Anda, dan pada pesanan pasca 3 Agustus Anda membayar kembali $9.99 dikurangi biaya Google, ditambah biaya chargeback bank tetap yang sering mendekati $20. Pada penjualan kecil, biaya tetap itu sendiri bisa lebih besar dari yang Anda peroleh bersih.

  • Hasil yang hilang: bagian bersih Anda dari penjualan, dibalik.
  • Biaya chargeback bank: biaya tetap yang ditetapkan jaringan kartu, ditagihkan di atasnya pada pesanan yang dilakukan setelah 3 Agustus 2026, yang tidak pernah dibawa oleh pengembalian dana biasa.
  • Pengeluaran yang terbuang: komputasi, panggilan API pihak ketiga, dan penyimpanan yang sudah digunakan akun, hilang entah Anda bisa menjawab atau tidak.
  • Pola yang tak bisa Anda lihat: tanpa id akun yang stabil Anda juga tak bisa tahu bahwa pengguna yang sama menyengketakan lagi dan lagi, sehingga penyalahgunaan berantai terbaca sebagai kerugian sekali-jalan yang tak berkaitan.

Cara mengaturnya tanpa membuat pembelian diblokir

Dua aturan mencakup hampir setiap kesalahan yang dibuat tim dengan kolom ini. Hash id-nya, dan atur di mana-mana.

Hash id pengguna Anda, jangan pernah kirim PII

Jangan menaruh email, nomor telepon, atau detail pribadi mentah apa pun di kolom ini. Google tegas bahwa menyimpan PII seperti email dalam teks jelas mengakibatkan pembelian diblokir, dan ia merekomendasikan hash satu arah atau enkripsi untuk menghasilkan nilainya. Pola yang bersih adalah hash satu arah dari id pengguna internal Anda, dihitung dengan cara yang sama setiap kali sehingga pengguna yang sama selalu menghasilkan string 64 karakter yang sama. Jangan pula gunakan id akun Google orang tersebut atau id pengembang Anda. Nilai itu harus bermakna hanya bagi sistem Anda.

Atur pada setiap pembelian, dan baca kembali di server Anda

Lampirkan id ke setiap alur penagihan, produk satu kali maupun langganan, sehingga tidak ada pembelian yang pernah tak berlabel. Setelah pembelian, bacalah kembali di dua tempat. Di klien, Purchase.getAccountIdentifiers mengembalikan objek yang getObfuscatedAccountId-nya memberi Anda string yang Anda atur. Di backend Anda, catatan pembelian sisi server membawanya sebagai kolom obfuscatedExternalAccountId, dan salinan server adalah yang harus dipercaya, karena sengketa tiba di server Anda, bukan di perangkat.

Gunakan setObfuscatedProfileId ketika satu akun memiliki banyak profil

Jika aplikasi Anda memungkinkan satu akun memegang beberapa profil, rumah tangga streaming atau game dengan banyak karakter, atur juga setObfuscatedProfileId. Ia adalah string yang sama jenisnya, di-hash, 64 karakter, tanpa PII, tercakup pada profil yang melakukan pembelian. Google mencatat bahwa mengatur id profil juga meminta id akun untuk diteruskan, jadi kirim keduanya. Hasilnya adalah sebuah sengketa memetakan bukan hanya ke akun tetapi ke profil persis yang membelanjakan uang itu.

Padanan iOS-nya, dalam satu baris

App Store punya gagasan yang sama dengan nama berbeda. Di iOS Anda melampirkan appAccountToken, sebuah UUID, ke pembelian, dan ia kembali pada transaksi dan pada CONSUMPTION_REQUEST yang dikirim Apple saat pelanggan meminta pengembalian dana. Bentuk masalahnya identik di kedua toko. Alur sengketa atau pengembalian dana mereferensikan sebuah transaksi, dan pengenal Anda sendiri adalah yang mengaitkannya kembali ke seorang pengguna yang penggunaannya bisa Anda laporkan.

DetailGoogle PlayApp Store
Kolom yang Anda aturobfuscated account id via setObfuscatedAccountIdappAccountToken
FormatString di-hash, 64 karakter, tanpa PIIUUID
Di mana ia kembaliobfuscatedExternalAccountId pada pembelianappAccountToken pada transaksi
Jendela yang diberinya masukanorders.reviewrefund, 24 jamCONSUMPTION_REQUEST, 12 jam
Apa yang Anda laporkanPersentase konsumsi dan peristiwa penggunaanKolom konsumsi Apple

Tak satu pun dari ini sulit dibangun. Ia mudah dilewatkan, karena hari Anda menulis kode checkout bukanlah hari chargeback tiba, dan biaya melewatkannya tak terlihat sampai saat itu. RefundHalt mengatur dan melacak pengenal akun di kedua toko, menjaga tautan pembelian-ke-pengguna sehingga sebuah sengketa selalu terselesaikan ke pelanggan nyata, dan menjawab orders.reviewrefund Google Play dan CONSUMPTION_REQUEST Apple di dalam jendela mereka dengan bukti konsumsi yang direkam pada saat penjualan. Jam 24 jam bukanlah saat untuk menemukan bahwa Anda tak bisa menyebutkan siapa yang membeli barang itu.

Pertanyaan yang sering diajukan

Apa itu obfuscated account id dalam penagihan Google Play?
Ia adalah string opsional yang Anda lampirkan ke pembelian dengan setObfuscatedAccountId yang secara unik terkait dengan akun pengguna pembeli di aplikasi Anda. Google Play menyimpannya bersama pesanan, menggunakannya untuk mendeteksi aktivitas tidak wajar seperti banyak perangkat yang membeli pada satu akun, dan mengembalikannya kepada Anda nanti sebagai obfuscatedExternalAccountId sehingga Anda bisa mengaitkan sebuah pembelian kembali ke pengguna tertentu.
Bisakah saya menaruh email atau id pengguna di kolom obfuscated account id?
Tidak. Google mengatakan menyimpan informasi yang dapat mengidentifikasi pribadi seperti email dalam teks jelas di kolom ini mengakibatkan pembelian diblokir. Gunakan hash satu arah atau enkripsi untuk menghasilkan nilainya, jaga tetap dalam 64 karakter, dan jangan gunakan id akun Google orang tersebut atau id pengembang Anda.
Bagaimana obfuscated account id membantu dengan chargeback Google Play?
Sebuah tinjauan chargeback, yakni PendingRefundReviewNotification, menyebutkan pesanan, bukan pengguna Anda. Obfuscated account id adalah kunci penggabung yang memetakan pesanan itu ke catatan pengguna yang benar, sehingga Anda bisa menjawab orders.reviewrefund dalam 24 jam dengan bukti konsumsi nyata alih-alih menebak pelanggan mana yang memiliki pesanan tersebut.
Haruskah saya mengatur obfuscated account id pada langganan atau hanya pembelian satu kali?
Atur pada setiap pembelian, baik produk satu kali maupun langganan. Setiap pembelian tak berlabel adalah pembelian yang tak bisa Anda telusuri kembali ke pengguna saat sengketa atau pembatalan tiba, dan sengketa bisa muncul pada jenis pesanan apa pun.
Apa perbedaan antara obfuscated account id dan obfuscated profile id?
Account id memetakan pembelian ke akun pengguna di aplikasi Anda. Profile id memetakannya ke profil tertentu di dalam akun itu, untuk aplikasi di mana satu akun memegang beberapa profil atau karakter. Keduanya adalah string 64 karakter yang di-hash tanpa PII, dan Google mencatat bahwa mengatur id profil juga memerlukan pengiriman id akun.

Sumber dan bacaan lanjutan

RefundHalt

Autopilot refund untuk App Store dan Google Play

Baca selanjutnya

Permintaan refund berikutnya sudah menuju kepada Anda.

Siapkan RefundHalt dalam waktu yang dibutuhkan untuk membaca satu lagi email dukungan tentang refund yang tidak sempat Anda sengketakan.