API event server-ke-server untuk aplikasi seluler (S2S-seluler)

Sekilas: Kirim event dari server Anda ke AppsFlyer untuk mengukur event seluler yang muncul di luar aplikasi.

S2S_us-en.png

API event server-ke-server untuk aplikasi seluler

Untuk aplikasi iOS, mulai iOS 14, Anda harus mengirimkan parameter os (sistem operasi). 

Platform AppsFlyer mengatribusi dan mencatat event aplikasi seluler yang dikirim oleh AppsFlyer SDK dan oleh API. Gunakan S2S API untuk melaporkan event yang terjadi di luar aplikasi; misalnya, pengguna memperbarui langganan menggunakan antarmuka web Anda. Event S2S, setelah direkam, tersedia di seluruh platform, termasuk dasbor, data lengkap, dan analitik. Untuk event web PBA, lihat Web S2S untuk PBA.

AppsFlyer mengisi event S2S dengan:

  • Nilai yang dikirim dalam pesan S2S
  • Beberapa AppsFlyer menginstal nilai atribusi seperti, waktu penginstalan dan sumber media.

Petunjuk penggunaan API

Buat panggilan API Anda menggunakan informasi yang terdapat di bagian berikut. 

Fakta API S2S

Titik Akhir API

https://api2.appsflyer.com/inappevent/app_id

  • app_id: Pengenal aplikasi yang digunakan di dasbor AppsFlyer. Masukkan persis seperti yang muncul di dasbor.
  • Aplikasi iOS: Pastikan awalan dengan id .Tidak melakukan hal tersebut menghasilkan kode pengembalian 200 OK yang valid; tanpa merekam event.
  • Windows: Dapatkan ID aplikasi dari Microsoft App Store.
  • Contoh Android: https://api2.appsflyer.com/inappevent/com.appsflyer.myapp
    iOS:https://api2.appsflyer.com/inappevent/id123456789
    Windows:https://api2.appsflyer.com/inappevent/a1b2c3d4e5f6
Metode HTTP POST
Jenis konten yang diterima aplikasi/json
Otorisasi

--header 'authentication: dev_key'

  • dev_key adalah token autentikasi di header. 
  • Untuk mendapatkan kode pengembang (dev key), di AppsFlyer, buka, Pengaturan Aplikasi > Dev Key
Beri izin server untuk mendapatkan pesan tanggapan

 Jika server Anda dilindungi firewall, Anda harus mengizinkan domain appsflyer.com agar Anda mendapatkan pesan tanggapan. 

Batas payload JSON 

Ukuran payload JSON: hingga 1KB

Batasan tingkat

Volume batasan POST: 60,000 POST per menit. Untuk meningkatkan batas ini, hubungi CSM Anda.

Instruksi penyandian (coding)
Menyandikan URL

Menyandikan (persen) kode karakter khusus (https://tools.ietf.org/html/rfc3986#section-2.1) sebelum membentuk URL metode. 

TLS

Gunakan TLS 1.2 atau yang lebih tinggi. Cipher didukung

Fakta API S2S

Parameter payload

  • Parameter payload terdiri dari satu atau lebih pengenal perangkat (tergantung pada sistem operasinya).
  • Bagaimana jika saya tidak dapat mengirim pengenal perangkat?
    • Anda mungkin tidak dapat mengirim pengenal karena alasan di luar kendali Anda, misalnya, karena pengguna memiliki batas pelacakan iklan (LAT) atau menggunakan iOS 14, dan tidak memberikan persetujuan ATT. Jika IDFV tersedia, kirimkan. 
    • Tidak mengirimkan ID iklan/pengenal perangkat dapat menyebabkan:
      • Masalah postback: Sumber media akan menerima postback tetapi tanpa pengenal perangkat; akibatnya sumber media tidak dapat mengaitkannya dengan pengguna. 
      • Segmentasi audiens dan kegagalan aturan. Set aturan audiens membutuhkan pengenal. Kirim ID perangkat atau ID pengguna pelanggan sesuai dengan jenis ID yang digunakan set aturan Anda.
Sistem Operasi Nama pengenal Deskripsi

iOS

iconAFios.png

 

idfa 

Jika tersedia isi dengan IDFA perangkat

Format: String

Misalnya: "idfa": "9876F1SS-2983-3855-27RR-2R626772VFNB"

idfv

Jika tersedia, isi dengan IDFA perangkat.

Format: String
Misalnya: "idfv": "95C9BD22-4A4C-41C8-9548-ED07C5C8C145"

Android

iconAFand.png

advertising_id

Jika tersedia, isi dengan perangkat GAID (ID iklan)

Format: String

Misalnya: "advertising_id": "9c9a82fb-d5de-4cd1-90c3-527441c11828"

oaid

Format: String

Misalnya: "oaid": "1fe9a970-efbb-29e0-0bdd-f5dbbf751ab5"

amazon_aid

Format: String

imei

Format: String

Misalnya: "imei": "AA-BBBBBB-CCCCCC-D"

Pengenal perangkat
Parameter Wajib Deskripsi

appsflyer_id

Ya

Pengenal unik, yang dibuat oleh  AppsFlyer, saat aplikasi diluncurkan untuk pertama kalinya. 

  • Format: String
  • Misalnya: "appsflyer_id": "1415211453000-6513894"

customer_user_id

Tidak

ID pengguna pelanggan, pengenal pengguna unik yang ditetapkan oleh pemilik aplikasi.

  • Format: String. 
  • Misalnya: "customer_user_id": "my_customer_number1234" 

att

Tidak

iOS status otorisasi ATTrackingManager

  • Jika versi OS perangkat adalah iOS 14 atau lebih baru, isi attdengan ATTrackingManager.
    • Format: Bilangan bulat satu digit. Jangan menyertakan nilai di ""
    • Misalnya: 1
  • Nilai iOS untuk ATTrackingManager adalah:
    • 0: Tidak ditentukan
    • 1: Dibatasi
    • 2: Ditolak
    • 3: Otorisasi

Catat! 

Kami merekomendasikan Anda untuk mengisi att dengan nilai ATTrackingManager karena ini memengaruhi pengenal mana yang dibagikan dengan mitra sesuai dengan pengaturan Privasi Lanjutan Anda. 

 

ip

Tidak

Alamat IP perangkat seluler selama terjadinya event.

  • Jika terkirim, alamat IP digunakan untuk mengisi bidang lokasi.
  • Jika tidak terkirim, AppsFlyer mengisi bidang lokasi menggunakan nilai dari event atribusi penginstalan. Alamat IP tidak diisi.
  • Format: String yang berisi alamat IPv4 atau IPv6
  • Misalnya: "ip": "192.0.2.1
af_events_api tidak digunakan lagi
  • Tidak digunakan lagi sejak 6 Juli 2020.
  • Parameter ini tidak diperlukan, Anda dapat berhenti mengirimnya. Melakukan hal tersebut tidak memengaruhi atribusi dengan cara apa pun. 

eventName

Ya

Tentukan nama event. Pastikan nama event sesuai dengan persyaratan pemasar.

  • Format: String
  • Misalnya: "eventName": "af_purchase"

nilai event

Ya

Jika Anda mengirim event tanpa nilai, kirim: "eventValue":""

  • Nilai event harus dikirim tanpa simbol atau pemformatan tambahan. 
  • Untuk af_revenue titik desimal dapat digunakan. Nilai negatif harus didahului dengan -
  • Format: String JSON
  • Contoh: "eventValue": "{ \"af_revenue\": \"6\", \"af_currency\": \"USD\" \"af_content_type\": \"wallets\", \"af_content_id\": \"15854\", \"your_custom_attribute\" :\"456.123\" }"
  • Instruksi TikTok Untuk Bisnis Eksplisit.

app_version_name

Tidak

Versi atau pengenal aplikasi Anda.

  • Format: String
  • Misalnya: "app_version_name": "my_app_version"

app_store

Tidak

Sama dengan AF_STORE di aplikasi Android. Toko tempat aplikasi diunduh. 

  • Bidang data lengkap: Install App Store
  • Format: String
  • Misalnya: my_android_store_is_best

Event Time

Tidak

Waktu terjadinya event menggunakan zona waktu UTC.

  • Default: Jika tidak adaeventTimeyang dikirim, waktu diatur ke waktu kedatangan pesan HTTP.
  • Format: string yyyy-mm-dd hh:mm:ss.sss waktu harus dalam zona waktu UTC.
  • Misalnya: "eventTime":"2019-05-15 12:17:01.123" artinya 12:17:01 UTC. 

Penutupan hari:

  • Jika Anda menerapkan eventTime event tersebut harus diterima AppsFlyer selambat-lambatnya pukul 02:00 pada hari berikutnya. Artinya, jika event terjadi pada hari Senin pukul 17:00 UTC, ini harus diterima server AppsFlyer paling lambat hari Selasa pukul 02:00 UTC. 
  • Event yang diterima setelah tutup hari distempel dengan waktu kedatangan yang sebenarnya.
  • Event yang memiliki waktu mendatang, artinya setelah waktu kedatangan, distempel dengan waktu kedatangan. 

Contoh

  • Waktu dalam UTC
  • Sebuah event dikirim dengan eventTime = Senin 21:00.
Waktu tiba Waktu yang direkam oleh AppsFlyer Catatan
Selasa 01:00 Senin 21:00 Tiba sebelum akhir hari.
Rabu 09:00  Rabu 09:00 Tiba setelah akhir hari. Waktu diatur ke waktu kedatangan. 

eventCurrency

Tidak

Kode mata uang menggunakan kode 3 karakter ISO 4217 dan BCN (Bitcoin)

  • Default: USD
  • Misalnya: "eventCurrency": "ZAR"

Pengenal bundle

Tidak*

Pengenal aplikasi unik. Dalam data lengkap, parameter mengisi ID Paket. [Praktik terbaik] Selalu isi parameter ini. Banyak jaringan iklan membutuhkannya untuk pengoptimalan kampanye. 

  • Format: String
  • Misalnya: "bundleIdentifier": "com.myapp"

sharing_filter

Tidak

Filter berbagi memblokir berbagi event S2S melalui postback/API dengan mitra terintegrasi dan integrasi pihak ketiga lainnya. 

Gunakan filter untuk memenuhi persyaratan peraturan seperti GDPR dan CCPA, untuk mematuhi mekanisme nonpartisipasi pengguna, dan untuk alasan logika bisnis lainnya. 

sharing_filter memiliki opsi berikut:

  • semua: Semua mitra diblokir. Jangan berbagi event dengan siapa pun. Contoh: "sharing_filter": "all"
  • Daftar id mitra dalam larik. Format ["partnerid_1", "partnerid_2", "partnerid_n"] Contoh: "sharing_filter": ["googleadwords_int", "adcolony_int"]

Untuk daftar id mitra, hubungi dukungan CSM atau AppsFlyer Anda. 

custom_dimension

Tidak

Disimpan untuk penggunaan AppsFlyer di masa mendatang

app_type

Tidak

Untuk aplikasi iOS.

Nilai yang diizinkan: app_clip

Jika event pengguna terjadi di app_clip, kirim parameter. Dalam semua kasus lainnya, jangan kirim parameter.

custom_data

Tidak

Kirim data khusus ke platform AppsFlyer. Serupa dengan mengirim data dari SDK menggunakan setAdditionalData 

Dalam data lengkap: isi bidang custom_data.

Format: JSON, digambarkan pada contoh berikut. 

Contoh:

"custom_data" : {"key_group" : { 
"key_a1" : "value a1", 
"key_a2" : "value a2" 
},
"key_b" : "value b"
}

os

Tidak**

Versi sistem operasi perangkat. Anggap parameter ini sebagai wajib untuk semua platform.

Format: String

Misalnya: "os":"14.5.1"

Catat! 

Mulai 1 Juli 2021, untuk aplikasi iOS,  jika Anda tidak mengirim parameter ini, kami menganggap data tersebut berasal dari perangkat yang menjalankan iOS 14.5.

aie

Tidak

Gunakan tanda ini untuk menunjukkan apakah pengguna memilih untuk tidak membagikan ID pengiklan mereka. 

Gunakan bidang ini untuk perangkat yang menjalankan Android (semua versi), atau versi iOS sebelum 14. Perhatikan! Untuk iOS 14.5+, gunakan parameter att

Isi bidang ini sebagai berikut: 

  • "true", jika pengguna setuju untuk membagikan ID pengiklan. Contoh: "aie":"true"
  • "false", jika pengguna mengaktifkan Pengukuran Iklan Terbatas (Limited Ad Tracking/LAT). Contoh: "aie":"false"

* Diperlukan oleh beberapa jaringan iklan untuk tujuan pengoptimalan

** Untuk mengaktifkan pemrosesan data yang benar, Anda harus mengirim parameter ini. Untuk alasan kompatibilitas mundur, kami tidak menerapkan ini, sehingga tidak ditandai sebagai wajib.

Contoh Curl

curl --location --request POST 'https://api2.appsflyer.com/inappevent/<app_id_placeholder>' \
--header 'authentication: <dev_key_placeholder>
' \
--header 'Content-Type: application/json' \
--data-raw '{
  "appsflyer_id": "9999999999999-9999999999999999999",
	"advertising_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
	"customer_user_id" : "example_customer_id_123",
	"ip": "199.0.2.1",
	"app_version_name" : "example_version_name",
	"eventTime" : "2020-02-25 12:00.000",
	"eventName": "af_purchase",
	"eventCurrency": "ZAR",
"os" : "14.6",
"att" : 3, "eventValue": "{ \"af_revenue\": \"1006\", \"af_content_type\": \"wallets\", \"af_content_id\": \"15854\", \"af_quantity\" :\"1\" }" } '

Kode Respons

Kode Respons  Pesan Cara Menangani
200 OK

Saat menerima pesan, dilakukan validasi data minimum. Dengan demikian, Anda bisa mendapatkan respons OK meskipun event tersebut mungkin tidak sepenuhnya direkam di AppsFlyer. Untuk men-debug event:

  • Menggunakan contoh CURL dalam artikel ini"
    • Perbarui id aplikasi dan detail kode pengembang.
    • Ubah parameter appsflyer_id, dan eventTime. Gunakan waktu saat ini dan appsflyer_id yang baru-baru ini diatribusikan sebagai non-organik.
  • Kirim panggilan.
    • Pesan tanggapannya seharusnya 200 OK.
    • Periksa untuk melihat apakah event direkam dengan benar termasuk pendapatan
    • Buat perubahan tambahan sesuai kebutuhan dan lakukan pengujian ulang.
400 Gagal Mengautentikasi Pastikan bahwa kode autentikasi sudah benar.
400  appsflyer_id adalah bidang yang wajib diisi
  •  Pastikan Anda sudah mengirimkan ID AppsFlyer yang tepat di file JSON.
  • Nilai event telah diubah menjadi string JSON dan formatnya sudah benar.
401 Tidak berwenang Jika kode yang dicantumkan di header autentikasi bukan <dev_key> untuk aplikasi ini.
400 Bad request (permintaan bermasalah).

Ketika permintaan gagal setidaknya pada salah satu dari kriteria validasi.

400  Payload tidak ditemukan atau gagal di-parse
  • Pastikan nilai event telah diubah menjadi string JSON dan formatnya sudah benar.
  • Jika lebih dari satu event disertakan dalam payload JSON. Pastikan untuk mengirim satu event per permintaan.
500  Error Server Internal  Pastikan nilai event telah diubah menjadi string JSON dan formatnya sudah benar.

Pengujian

Pertimbangkan: 

  • Untuk pengujian, gunakan ID AppsFlyer dari penginstalan non-organik sehingga menguji atribusi event secara waktu aktual. Atribusi event organik dengan penundaan beberapa jam.
  • Beberapa bidang event diisi menggunakan event atribusi penginstalan pengguna. Misalnya, waktu penginstalan dan sumber media. 

Untuk mengatribusikan perangkat uji sebagai penginstalan non-organik:

  1. Siapkan tautan atribusi kustom untuk menguji pesan S2S. Atur parameter sumber media di tautan ke s2s_test dan atur id iklan (GAID, IDFA, etc) di tautan seperti yang diilustrasikan di deskripsi contoh tautan atribusi
  2. Daftarkan perangkat uji
  3. Uninstall aplikasi dari perangkat uji.
  4. Kirim tautan ke perangkat uji.
  5. Klik link yang dikirimkan
  6. Instal dan kemudian luncurkan aplikasi.
  7. Di dasbor, periksa untuk melihat bahwa penginstalan diatribusikan.
  8. Gunakan ID AppsFlyer di pesan S2S Anda.

Untuk mengirim pesan uji S2S:

  1. Siapkan pesan S2S menggunakan ID AppsFlyer yang dialokasikan. Lihat contoh kode berikut.
  2. Kirim pesan.
  3. Lakukan salah satu hal berikut untuk melihat bagaimana pesan direkam di AppsFlyer:
  4. Periksa dan lihat bahwa:
    • Nilai yang dikirim dalam pesan S2S mengisi laporan dengan benar. Perhatikan dengan cermat pada bidang tanggal Event, Mata uang Event, Pendapatan Event, dan Nilai Event.
    • Sumber atribusi dan waktu penginstalan diisi oleh AppsFlyer.
    • Nilai yang diberikan oleh SDK itu sendiri seperti versi SDK itu tidak diisi.

Contoh tautan atribusi

Android

https://app.appsflyer.com/<app_id>?pid=s2s_test&c=test&advertising_id=<GAID>

iOS

https://app.appsflyer.com/<app_id>?pid=s2s_test&c=test&idfa=<IDFA>

Contoh kode untuk mengirim pesan S2S

JavaPythonNode JSC#PHPGo
/* menggunakan paket okhttp 
 instal dari maven https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp */ 
 impor okhttp3.*; 
impor java.io.IOException; 

 public class SendRequest { 
 public static void main(String[] args) { 

 OkHttpClient client = new OkHttpClient(); 
 MediaType mediaType = MediaType.parse("application/json"); 

    RequestBody body = RequestBody.create(mediaType, " + 
 "{\r\n\t\"appsflyer_id\": \"<APPS_FLYER_ID>\"," + 
 "\r\n\t\"customer_user_id\": \"123456\",\r \n\t\"eventName\": \"af_purchase\",\r\n\t\" + 
 "eventValue\": \" {\\\"af_revenue\\\":\\\"6\\\" ,\\\"af_content_id\\\":\\\"15854\\\"} \",\r\n\t\" + 
 " af_currency\": \"USD\",\r\n\t\" + 
 "eventTime\": \"2018-08-10 4:17:00.000\",\r\n\t\"); 

    Request request = new Request.Builder()
        .url("https://api2.appsflyer.com/inappevent/<APP_ID>")
        .post(body)
        .addHeader("Content-Type", "application/json")
   .addHeader("authentication", "<YOUR_DEV_KEY>")
      .build();

    try {
      Response response = client.newCall(request).execute();
      System.out.println(response.code());
      System.out.println(response.body().string());
    } catch (IOException e) {
      e.printStackTrace();
    }
 }
}

Mengirim ID iklan/pengenal perangkat itu penting

  • ID iklan/pengenal perangkat wajib untuk memastikan postback ke SRN seperti Facebook dan Google Ads. Jika Anda tidak dapat mengirim ID, pertimbangkan bahwa postback tidak dapat dikirim.
  • Jika Anda hanya mengirim ID AppsFlyer, in-app event akan direkam dan diatribusikan dengan benar.

Mengisi parameter

Perbedaan antara organik dan non-organik

Saat AppsFlyer memproses in-app event S2S, bidang atribusi diisi dengan menggunakan ID AppsFlyer untuk mengidentifikasi event penginstalan terkait sebelum in-app event.

Artinya, beberapa data yang AppsFlyer kaitkan dengan kejadian dalam aplikasi S2S non-organik, tidak terkait dengan in-app event S2S organik.

 Contoh

Misalnya, jika Anda membandingkan laporan data lengkap dari in-app event S2S non-organik dan organik, event non-organik berisi data yang tidak dimiliki oleh in-app event organik.

In-app event non-organik mencakup data tentang sumber media, kampanye, jenis interaksi yang dikaitkan, dan waktu interaksi yang dikaitkan.

In-app event organik, di sisi lain, mengikuti penginstalan organik. Penginstalan organik tidak memiliki data yang terkait dengan kampanye, sumber media, jenis interaksi yang dikaitkan, dan waktu penginstalan.

Memetakan ID AppsFlyer dengan ID pengguna pelanggan (CUID)

Logika backend diperlukan untuk mendapatkan nilai guna mengisi parameter. Berikut ini menjelaskan cara untuk mendapatkan ID AppsFlyer:

  • ID AppsFlyer bersifat wajib dan digunakan untuk mengatribusikan event.
  • ID ini dibuat saat pengguna pertama kali menginstal aplikasi seluler.
  • Agar Anda dapat memetakan CUID Anda ke ID AppsFlyer, Anda harus mengatur CUID di aplikasi. 

Untuk memudahkan Anda mengetahui pengguna mana yang melakukan event mana, terapkan alur berikut:.

  • Tetapkan ID pengguna pelangganD saat pengguna menginstal aplikasi.
  • Laporan data lengkap AppsFlyer berisi CUID dan ID AppsFlyer. Gunakan salah satu alat pengiriman data untuk mendapatkan ini atau API Push AppsFlyer. 
  • Gunakan laporan data lengkap untuk mencocokkan CUID dengan ID AppsFlyer. 
  • ID AppsFlyer tersedia di SDK yang terintegrasi dengan aplikasi Anda (Android/iOS).
  • Petakan ID AppsFlyer ke ID pengguna pelanggan di sistem internal Anda (penting untuk penggunaan di kemudian hari).

Setelah Anda memetakan ID AppsFlyer dengan CUID, Anda dapat mencocokkan pengguna dengan event yang dilakukan. Anda kemudian dapat memperoleh nilai lain (nilai event, mata uang event, waktu event, dll.) dan mengirim server ke in-app event server. 

 Contoh kode permintaan di body

{
  "appsflyer_id": "1415211453000-6513894",
	"advertising_id": "38412345-8cf0-aa78-b23e-10b96e40000d",
	"eventName": "af_purchase",
	"eventValue": 
	"{
		\"af_revenue\": \"6\",
\"af_currency\" \"USD"\", \"af_content_type\": \"wallets\", \"af_content_id\": \"15854\", \"af_quantity\" :\"1\" }", "eventCurrency": "USD", "ip": "1.2.3.4", "eventTime": "2014-05-15 12:17:00.000" }


Dalam kasus seperti ini, AppsFlyer menerima event in-app S2S yang mewakili event pembelian dengan pendapatan serta properti tambahan seperti jenis konten, dll.

Mengambil ID AppsFlyer

appsflyer_idadalah parameter wajib di pesan event server-ke-server. AppsFlyer menggunakan parameter ini untuk mengatribusi event ke perangkat asli dan ke sumber media yang teratribusi. Anda bisa mendapatkan ID ini menggunakan salah satu metode berikut:

 Tips

Saat menguji pesan S2S, jika Anda menggunakan data mentah, cari catatan dengan sumber media "s2s_test". Ini adalah perangkat uji Anda dan ID Perangkat AppsFlyer-nya adalah ID yang Anda butuhkan.

Mengirim pendapatan negatif

Event yang memiliki nilai pendapatan negatif dapat dikirim. Misalnya, jika pembelian dibatalkan. Parameter af_revenue dapat memiliki nilai negatif jika mencatat nilai tersebut. 

Jika Anda mengisi af_quantity, Anda mungkin ingin mengisinya dengan nilai negatif tergantung pada logika sistem Anda. AppsFlyer tidak menggunakan af_quantity.

Contoh dengan pendapatan negatif

{
	"eventName": "cancel_purchase",
	"eventValue": 
	"{
		\"af_revenue\": \"-6\",
		\"af_content_type\": \"wallets\",
		\"af_content_id\": \"15854\",
		\"af_quantity\" :\"1\"
   }",
	"eventCurrency": "USD",
	
}

Pemecahan Masalah

Event tidak ditampilkan di dasbor

  • Titik akhir: Pastikan titik akhir yang digunakan sudah benar.
  • Pastikan bahwa payload berisi parameter wajib. Lihat di sini.
  • Pastikan bahwa ID AppsFlyer yang Anda gunakan untuk memulai event tersebut adalah id appsflyer asli dan benar-benar diinstal pada aplikasi tertentu. Bukan ID pengujian yang disediakan dalam dokumentasi. Lihat di sini.
  • Event S2S tidak mendukung multi-event dalam satu permintaan S2S. Setiap event harus dikirim sebagai event terpisah. 
  • Di dasbor tinjauan, rentang tanggal terkait dengan tanggal penginstalan aplikasi (LTV) dan bukan dengan tanggal event.
    • Pastikan Anda memilih rentang tanggal yang benar.
    • Pastikan rentang tanggal dasbor sesuai dengan tanggal penginstalan perangkat (appsflyer_id) dan bukan tanggal event.
  • Laporan data lengkap event: rentang tanggal berkaitan dengan tanggal event dan bukan tanggal penginstalan. 

Event tidak berisi pendapatan

Jika Anda mengirim event S2S tetapi pendapatannya tidak dicatat, pastikan bahwa JSON yang Anda kirim telah diubah menjadi string JSON. Bagian terpenting adalah parameter nilai event di JSON. Ini harus diubah menjadi string JSON seperti yang ditunjukkan pada contoh berikut.

"{\"af_revenue\":\"6\" ,\"af_content_type\":\"wallets\"}"

Jika nilai event tidak diubah menjadi string, maka nilai tidak akan diproses dengan tepat dan pendapatan tidak dapat dicatat.

Nilai pendapatan tidak boleh diformat dengan cara apa pun. Ini dapat berisi titik desimal. Jangan menyertakan simbol atau kode mata uang atau , pemisah. Pendapatan dapat diawali dengan -

  • Contoh nilai event yang valid adalah: 123, -123.45123.456 
  • Contoh nilai yang tidak valid: 1,234.561,234

Tidak semua bidang diisi dalam event S2S

Bidang data lengkap diisi menggunakan nilai yang dikirim dalam panggilan S2S dan beberapa bidang diisi menggunakan event penginstalan. Perilaku serupa tetapi tidak identik diamati untuk in-app event yang dilaporkan menggunakan AppsFlyer SDK. Ada beberapa perbedaan, khususnya, bidang berikut tidak diisi untuk event S2S:

  • wifi
  • Operator
  • bahasa
  • Jenis perangkat
  • Kategori Perangkat
  • Versi Aplikasi: Anda dapat menggunakan app_version_name
  • Nama aplikasi
Apakah artikel ini membantu?