In-App Event
Overview
Peristiwa Dalam Aplikasi memberikan wawasan tentang apa yang terjadi di aplikasi Anda. Disarankan untuk meluangkan waktu dan menentukan peristiwa yang ingin Anda ukur untuk memungkinkan Anda mengukur ROI (Return on Investment/Laba atas Investasi) dan LTV (Lifetime Value/Nilai Periode Retensi).
Merekam peristiwa dalam aplikasi dilakukan dengan menelepon sendEvent
dengan nama peristiwa dan parameter nilai. Lihat dokumentasi untuk detail lebih lanjut.
Temukan info lebih lanjut tentang merekam peristiwa di sini.
Kirim Peristiwa
void sendEvent(string eventName, Dictionary<string, string> eventValues)
parameter | type | description |
---|---|---|
eventName | string | Nama peristiwa |
eventValues | Dictionary<string, string> | Nilai peristiwa yang dikirim bersama peristiwa |
Contoh:
Dictionary<string, string> eventValues = new Dictionary<string, string>();
eventValues.Add(AFInAppEvents.CURRENCY, "USD");
eventValues.Add(AFInAppEvents.REVENUE, "0.99");
eventValues.Add("af_quantity", "1");
AppsFlyer.sendEvent(AFInAppEvents.PURCHASE, eventValues);
Catatan
Jangan menambahkan simbol mata uang ke nilai pendapatan.
Validasi Pembelian Dalam-Aplikasi
Untuk Validasi Tanda Terima Pembelian Dalam Aplikasi, ikuti petunjuk sesuai dengan sistem operasi Anda.
Catatan
Memanggil validateReceipt secara otomatis menghasilkan file af_purchase
peristiwa dalam aplikasi, jadi Anda tidak perlu mengirimkan peristiwa ini sendiri.
Respons pembelian validasi dipicu di AppsFlyerTrackerCallbacks.cs
class.
void validateAndSendInAppPurchase(string productIdentifier, string price, string currency, string tranactionId, Dictionary<string, string> additionalParameters, MonoBehaviour gameObject)
//To get the callbacks
//AppsFlyer.createValidateInAppListener ("AppsFlyerTrackerCallbacks", "onInAppBillingSuccess", "onInAppBillingFailure");
AppsFlyer.validateReceipt(string publicKey, string purchaseData, string signature, string price, string currency, Dictionary additionalParametes);
using UnityEngine.Purchasing;
using AppsFlyerSDK;
public class AppsFlyerObject : MonoBehaviour, IStoreListener, IAppsFlyerValidateReceipt
{
public static string kProductIDConsumable = "com.test.cons";
void Start()
{
AppsFlyer.initSDK("devKey", "devKey");
AppsFlyer.startSDK();
}
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
string prodID = args.purchasedProduct.definition.id;
string price = args.purchasedProduct.metadata.localizedPrice.ToString();
string currency = args.purchasedProduct.metadata.isoCurrencyCode;
string receipt = args.purchasedProduct.receipt;
var recptToJSON = (Dictionary<string, object>)AFMiniJSON.Json.Deserialize(product.receipt);
var receiptPayload = (Dictionary<string, object>)AFMiniJSON.Json.Deserialize((string)recptToJSON["Payload"]);
var transactionID = product.transactionID;
if (String.Equals(args.purchasedProduct.definition.id, kProductIDConsumable, StringComparison.Ordinal))
{
#if UNITY_IOS
if(isSandbox)
{
AppsFlyeriOS.setUseReceiptValidationSandbox(true);
}
AppsFlyeriOS.validateAndSendInAppPurchase(prodID, price, currency, transactionID, null, this);
#elif UNITY_ANDROID
var purchaseData = (string)receiptPayload["json"];
var signature = (string)receiptPayload["signature"];
AppsFlyerAndroid.validateAndSendInAppPurchase(
"<google_public_key>",
signature,
purchaseData,
price,
currency,
null,
this);
#endif
}
return PurchaseProcessingResult.Complete;
}
public void didFinishValidateReceipt(string result)
{
AppsFlyer.AFLog("didFinishValidateReceipt", result);
}
public void didFinishValidateReceiptWithError(string error)
{
AppsFlyer.AFLog("didFinishValidateReceiptWithError", error);
}
}
Diperbarui 4 bulan yang lalu