অ্যাপ-মধ্যস্থ কেনাকাটা পরিমাপ করুন

প্ল্যাটফর্ম নির্বাচন করুন: iOS+ অ্যান্ড্রয়েড ইউনিটি


ইন-অ্যাপ পারচেজ (IAP) হলো ডিজিটাল কন্টেন্ট বা ফিচার, যা আপনি অ্যাপল অ্যাপ স্টোর বা Google Play মাধ্যমে একটি মোবাইল অ্যাপে বিক্রি করতে পারেন, ফলে আপনার অ্যাপকে কোনো আর্থিক লেনদেন করতে হয় না। ইন-অ্যাপ পারচেজের উদাহরণগুলোর মধ্যে রয়েছে সাবস্ক্রিপশন-ভিত্তিক কন্টেন্ট বা গেমের বিশেষ অংশ।

Analytics ইন-অ্যাপ পারচেজ রিপোর্টে IAP ইভেন্টগুলো দেখায়।

ইউনিটি অ্যাপের জন্য, Analytics এসডিকে আইওএস-এর অ্যাপল অ্যাপ স্টোর এবং অ্যান্ড্রয়েড-এর Google Play সাথে ইন্টিগ্রেট করে।

বেশিরভাগ ক্ষেত্রে, Analytics SDK আপনার অ্যাপে API কল করার প্রয়োজন ছাড়াই স্বয়ংক্রিয়ভাবে IAP ইভেন্ট সংগ্রহ করে। সেটআপের প্রয়োজনীয়তা এবং ট্র্যাকিংয়ের আচরণ টার্গেট প্ল্যাটফর্মের উপর নির্ভর করে:

  • অ্যান্ড্রয়েড : গুগল Google Play লিঙ্ক করার পর Google Play লেনদেন স্বয়ংক্রিয়ভাবে ট্র্যাক করা হয়। কোনো কোড পরিবর্তনের প্রয়োজন নেই।
  • iOS (StoreKit 1) : StoreKit 1 API ব্যবহার করে করা অ্যাপ স্টোর লেনদেনগুলো স্বয়ংক্রিয়ভাবে ট্র্যাক করা হয়। কোনো কোড পরিবর্তনের প্রয়োজন নেই।
  • iOS (StoreKit 2) : StoreKit 2 API ব্যবহার করে করা অ্যাপ স্টোর লেনদেনগুলি কাস্টম ইউনিটি API ব্যবহার করে ম্যানুয়ালি লগ করতে হবে।

শুরু করার আগে

বাস্তবায়ন

অ্যান্ড্রয়েড

অ্যান্ড্রয়েড অ্যাপের ক্ষেত্রে, Google Play এর সাথে লিঙ্ক করার সাথে সাথেই আপনি IAP ইভেন্টগুলো পরিমাপ করতে পারবেন। কেনাকাটা পরিমাপ করার জন্য আপনার ইউনিটি প্রজেক্টে কোনো কাস্টম কোড লেখার প্রয়োজন নেই।

আইওএস

iOS অ্যাপের ক্ষেত্রে, বাস্তবায়ন কৌশলটি নির্ভর করে আপনার অ্যাপটি StoreKit 1 নাকি StoreKit 2 ব্যবহার করে তার উপর:

স্টোরকিট ১

আপনার ক্রয় প্রক্রিয়ায় যদি StoreKit 1 ব্যবহৃত হয়, তাহলে অ্যানালিটিক্স SDK স্বয়ংক্রিয়ভাবে IAP ইভেন্টগুলো লগ করে। এই ক্রয়গুলো ট্র্যাক করার জন্য আপনাকে কোনো কাস্টম কোড যোগ করতে হবে না।

স্টোরকিট ২

আপনার ক্রয় প্রক্রিয়া যদি StoreKit 2 ব্যবহার করে, তাহলে আপনাকে অবশ্যই LogAppleTransactionAsync() ফাংশনে ট্রানজ্যাকশন আইডেন্টিফায়ার স্ট্রিংটি পাস করে যাচাইকৃত ট্রানজ্যাকশনগুলো ম্যানুয়ালি লগ করতে হবে।

using Firebase.Analytics;

// Call this method once you have completed a StoreKit 2 transaction
// and have the transaction identifier.
public void LogPurchase(string transactionId) {
    FirebaseAnalytics.LogAppleTransactionAsync(transactionId).ContinueWith(task => {
        if (task.IsFaulted || task.IsCanceled) {
            Debug.LogError("Failed to log Apple purchase transaction: " + task.Exception);
        } else {
            Debug.Log("Successfully logged Apple purchase transaction");
        }
    });
}
ইউনিটি আইএপি ব্যবহার করে ট্রানজ্যাকশন আইডি পুনরুদ্ধার করুন।

আপনার প্রজেক্টে যদি ইউনিটির স্ট্যান্ডার্ড ইন-অ্যাপ পারচেজিং প্যাকেজ ( UnityEngine.Purchasing ) ব্যবহৃত হয়, তাহলে ট্রানজ্যাকশন আইডি পাওয়ার পদ্ধতিটি আপনার ব্যবহৃত ইউনিটি আইএপি এপিআই ভার্সনের উপর নির্ভর করে।

ইউনিটি আইএপি ভি৫.২+ ব্যবহার করে নিশ্চিতকরণ কলব্যাক

ইউনিটি আইএপি v5.2 এবং তার পরবর্তী সংস্করণগুলিতে, আপনি কনফার্মেশন কলব্যাকে Order অবজেক্ট থেকে সরাসরি অ্যাপল-নির্দিষ্ট লেনদেনের তথ্য অ্যাক্সেস করতে পারেন। আপনি LogAppleTransactionAsync() ফাংশনে OriginalTransactionID অথবা বর্তমান ট্রানজ্যাকশন আইডি পাস করতে পারেন।

using UnityEngine.Purchasing;
using Firebase.Analytics;
using Firebase.Extensions;

// Example using Unity IAP v5.2+ Order confirmation
void OnPurchaseConfirmed(Order order) {
    #if UNITY_IOS
    if (order is ConfirmedOrder confirmedOrder) {

        var appleInfo = confirmedOrder.Info.Apple;
        if (appleInfo != null) {

            string transactionId = appleInfo.OriginalTransactionID;

            if (!string.IsNullOrEmpty(transactionId)) {
                // Log the StoreKit 2 transaction with Firebase Analytics
                FirebaseAnalytics.LogAppleTransactionAsync(transactionId).ContinueWithOnMainThread(task => {
                    if (task.IsFaulted || task.IsCanceled) {
                        Debug.LogError($"Failed to log Apple purchase transaction: {task.Exception}");
                    } else {
                        Debug.Log("Successfully logged Apple purchase transaction");
                    }
                });
            } else {
                Debug.LogWarning("Apple OriginalTransactionID is null or empty. Skipping Firebase logging.");
            }
        }
    } else if (order is FailedOrder failedOrder) {
        Debug.Log($"Purchase confirmation bypassed due to failure: {failedOrder.FailureReason}");
    }
    #endif
}
লিগ্যাসি ProcessPurchase কলব্যাক

আপনি যদি লিগ্যাসি ProcessPurchase কলব্যাকটি ব্যবহার করেন, তাহলে আপনি ক্রয়কৃত পণ্য থেকে ট্রানজ্যাকশন আইডেন্টিফায়ারটি বের করতে পারেন:

using UnityEngine.Purchasing;
using Firebase.Analytics;
using Firebase.Extensions;

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) {
    // Extract the transaction ID from the purchased product
    string transactionId = args.purchasedProduct.transactionID;

    #if UNITY_IOS
    // Log the StoreKit 2 transaction with Firebase Analytics
    FirebaseAnalytics.LogAppleTransactionAsync(transactionId).ContinueWithOnMainThread(task => {
        if (task.IsFaulted || task.IsCanceled) {
            Debug.LogError($"Failed to log Apple purchase transaction: {task.Exception}");
        } else {
            Debug.Log("Successfully logged Apple purchase transaction");
        }
    });
    #endif

    return PurchaseProcessingResult.Complete;
}