টিউটোরিয়াল: iOS বিজ্ঞাপনের কনভার্সন পরিমাপ করা

ধাপ ৩: Google Analytics ব্যবহার করে অন-ডিভাইস কনভার্সন মেজারমেন্ট শুরু করা


ভূমিকা: iOS Ads কনভার্সন পরিমাপ করা
ধাপ ১: সাইন-ইন অভিজ্ঞতা প্রয়োগ করুন
ধাপ ২: ইন্টিগ্রেট Google Analytics

ধাপ ৩: Google Analytics ব্যবহার করে অন-ডিভাইস কনভার্সন পরিমাপ শুরু করুন

ধাপ ৪: সাধারণ সমস্যার সমাধান ও ম্যানেজ করা


এখন যেহেতু আপনি ব্যবহারকারীর ইমেল আইডি ও ফোন নম্বর সংগ্রহ করতে পারবেন এবং আপনার অ্যাপে Firebase SDK-এর Google Analytics আছে, তাই আপনি কনভার্সন পরিমাপ করা শুরু করতে এই দুটি ব্যবহার করতে পারবেন।

API কল করা

১ম ধাপে সম্মতি দেওয়া ইমেল আইডি বা ফোন নম্বর দিয়ে কনভার্সন পরিমাপ API কল করুন, এটি বিজ্ঞাপন কনভার্সন পরিমাপের জন্য ব্যবহার করা হয়, কোনও ব্যক্তিগতভাবে শনাক্তকরণযোগ্য তথ্যকে ব্যবহারকারীর ডিভাইস থেকে বেরিয়ে যেতে না দিয়েই এটি করা হয়।

দুটি উপায়ে পরিমাপ শুরু করা যায়:

ইমেল আইডি বা ফোন নম্বর ব্যবহার করা

Swift

FirebaseAnalytics মডিউল ইমপোর্ট করুন এবং initiateOnDeviceConversionMeasurement() API-তে ইমেল আইডি বা ফোন নম্বর দিন।

import FirebaseAnalytics

// ...
// If you're using an email address....
Analytics.initiateOnDeviceConversionMeasurement(emailAddress: "example@gmail.com")
// If you're using a phone number....
Analytics.initiateOnDeviceConversionMeasurement(phoneNumber: "+15555555555")

Objective-C

FirebaseAnalytics মডিউল ইমপোর্ট করুন এবং initiateOnDeviceConversionMeasurementWithEmailAddress: API-তে ইমেল আইডি অথবা initiateOnDeviceConversionMeasurementWithPhoneNumber: API-তে ফোন নম্বর দিন।

@import FirebaseAnalytics;

// ...
// If you're using an email address....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithEmailAddress:@"example@gmail.com"];
// If you're using a phone number....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithPhoneNumber:@"+15555555555"];

Unity

Firebase.Analytics নেমস্পেস ইমপোর্ট করুন এবং InitiateOnDeviceConversionMeasurementWithEmailAddress() API-তে ইমেল আইডি অথবা InitiateOnDeviceConversionMeasurementWithPhoneNumber() API-তে ফোন নম্বর দিন:

using Firebase.Analytics;

// ...
// If you're using an email address....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithEmailAddress("example@gmail.com");
// If you're using a phone number....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithPhoneNumber("+15555555555");

API কল করার পেশাদার পদ্ধতি

ডিভাইসে কনভার্সন পরিমাপ করার সঠিক ও একটানা প্রসেস নিশ্চিত করতে, নিম্নলিখিত কাজগুলির মধ্যে যেকোনও একটি করুন:

Firebase SDK ভার্সন 12.1.0 ও তার পরের ভার্সনের জন্য Google Analytics-এ অন-ডিভাইস কনভার্সন ট্র্যাক করার ক্ষেত্রে উন্নতি অন্তর্ভুক্ত। আপনার অ্যাপ আপডেট করার আগে থেকেই সাইন-ইন করে আছেন এমন ব্যবহারকারী সহ সব ব্যবহারকারীর ক্ষেত্রে এইসব উন্নতি যাতে প্রযোজ্য হয় তা নিশ্চিত করতে, অ্যাপ আপডেট করার পরে initiateOnDeviceConversionMeasurement API আবার কল করা অত্যন্ত গুরুত্বপূর্ণ।

বিশেষত, আপনার অ্যাপ SDK ভার্সন 12.1.0-এ আপডেট করার আগে সাইন-ইন করা ব্যবহারকারীদের জন্য আবার initiateOnDeviceConversionMeasurement API কল না করা পর্যন্ত তাদের উন্নত পরিমাপের আওতায় অন্তর্ভুক্ত করা হয় না। অ্যাপ আপডেট চেক না করলে, এটি শুধুমাত্র তখনই হবে যদি তারা সাইন-আউট করে আবার সাইন-ইন করে।

পেশাদার পদ্ধতি হল, সাইন-ইন করা ব্যবহারকারীদের জন্য অ্যাপের প্রতিটি ভার্সনে অন্তত একবার API কল করা। অ্যাপ লঞ্চ করার সময় আপনি একটি চেক প্রয়োগ করতে পারেন যাতে API তখনই কল করা হয় যখন শেষ কলের পর থেকে অ্যাপের ভার্সন পরিবর্তন করা হয়েছে।

Swift

// On app launch if the app version has changed, call the API with the first-party data
// (for example: email address, phone number, hashed email address, hashed phone number).
let cachedAppVersion = UserDefaults.standard.string(forKey: "cachedAppVersion")
let currentAppVersion =
    Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String

if cachedAppVersion != currentAppVersion {
  let hashedEmailAddress = ...
  Analytics.initiateOnDeviceConversionMeasurement(hashedEmailAddress: hashedEmailAddress)
  UserDefaults.standard.set(currentAppVersion, forKey: "cachedAppVersion")
}

Objective-C

// On app launch if the app version has changed, call the API with the first-party data
// (for example: email address, phone number, hashed email address, hashed phone number).
NSString *cachedAppVersion =
    [[NSUserDefaults standardUserDefaults] stringForKey:@"cachedAppVersion"];
NSString *currentAppVersion = [[NSBundle mainBundle]
    objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

if (![cachedAppVersion isEqualToString:currentAppVersion]) {
  NSString *hashedEmailAddress = ...
  [FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress];
  [[NSUserDefaults standardUserDefaults] setObject:currentAppVersion
                                            forKey:@"cachedAppVersion"];
}

Unity

// On app launch if the app version has changed, call the API with the first-party data
// (for example: email address, phone number, hashed email address, hashed phone number).
string cachedAppVersion = PlayerPrefs.GetString("cached_app_version", "");
string currentAppVersion = Application.version;

if (cachedAppVersion != currentAppVersion) {
  byte[] hashedEmailAddress = ...
  FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress(
      hashedEmailAddress);
  PlayerPrefs.SetString("cached_app_version", currentAppVersion);
  PlayerPrefs.Save();
}

সাইন-ইন করার সাথে সাথেই কল করা

কোনও ব্যবহারকারী সফলভাবে সাইন-ইন করলে অথবা তার ইমেল আইডি বা ফোন নম্বর রেজিস্টার করলে, সঙ্গে সঙ্গে initiateOnDeviceConversionMeasurement API-কে কল করুন।

নতুন রেজিস্ট্রেশনের জন্য সময় সংক্রান্ত বিবেচনা

ব্যবহারকারী রেজিস্টার করার সাথে সাথেই কোনও গুরুত্বপূর্ণ কনভার্সন ইভেন্ট ঘটলে (এবং আপনি API কল করলে), API কল ও গুরুত্বপূর্ণ ইভেন্ট লগ করার মধ্যে কিছুটা বিলম্ব (যেমন, পাঁচ সেকেন্ড) করার কথা বিবেচনা করুন। এটি নিশ্চিত করতে সাহায্য করে যে, ইভেন্ট লগ করার আগে অন-ডিভাইস পরিমাপ সম্পূর্ণভাবে ইনিশিয়ালাইজ করা হয়েছে।

হ্যাশ করা ইমেল আইডি বা ফোন নম্বর ব্যবহার করা

API, SHA256-এর মাধ্যমে হ্যাশ করা ইমেল আইডি ও ফোন নম্বর গ্রহণ করবে। SDK-তে কল করার আগে আপনার কোডে হ্যাশিং পারফর্ম করে আপনি নিজের ব্যবহারকারীর ডেটা কন্ট্রোল করতে পারেন।

হ্যাশ করা ক্রেডেনশিয়াল ব্যবহার করতে, ঠিকানা ও নম্বরকে স্বাভাবিক করুন, SHA256-এর মাধ্যমে সেগুলিকে হ্যাশ করুন এবং তারপরে API কল করুন।

ইমেল আইডি ও ফোন নম্বরকে স্বাভাবিক করা

ইমেল আইডির ক্ষেত্রে, Google Analytics API ধরে নেয় যে SHA256 প্রয়োগ করার আগে নির্দিষ্ট কোনও নরমালাইজেশন করা হয়েছে, তাই আপনার ডেটা নরমালাইজ করতে এইসব ধাপ অনুসরণ করুন:

  1. সম্পূর্ণ ইমেল আইডি ছোট হাতের অক্ষরে কনভার্ট করুন।

  2. ইমেল আইডির শেষে ডোমেন @googlemail.com থাকলে, @googlemail.com ডোমেনের জায়গায় @gmail.com লিখুন।

  3. @gmail.com ডোমেন দিয়ে শেষ হওয়া ইমেল আইডির জন্য (আগের ধাপে পরিবর্তিত ইমেল আইডি সহ):

    1. ইউজারনেমের অংশ থেকে সব পূর্ণচ্ছেদ সরিয়ে দিন।

    2. ইউজারনেম অংশে নিম্নলিখিত পরিবর্তন করুন:

      • I বা i অক্ষর অথবা ১ সংখ্যার পরিবর্তে l অক্ষর ব্যবহার করুন
      • ০ সংখ্যার পরিবর্তে অক্ষর 'o' ব্যবহার করুন
      • ২-এর জন্য, z অক্ষরটি ব্যবহার করুন
      • ৫ সংখ্যার জন্য, s অক্ষরটি ব্যবহার করুন

যেমন, স্বাভাবিক করার পরে:

  • an.email.user0125@googlemail.com, anemalluserolzs@gmail.com হয়ে যায়
  • CAPSUSER0125@provider.net, capsuser0125@provider.net হয়ে যায়

ফোন নম্বরের ক্ষেত্রে, SHA256-এর মাধ্যমে হ্যাশ করার আগে নম্বরগুলিকে অবশ্যই E.164 ফর্ম্যাটে (অর্থাৎ, + দিয়ে শুরু, কান্ট্রি কোডের জন্য ১-৩টি সংখ্যা, গ্রাহক নম্বরের জন্য সর্বাধিক ১২টি সংখ্যা) রাখতে হবে।

মনে রাখবেন, হ্যাশ করা SHA256 ইমেল বা ফোন নম্বর অবশ্যই ৩২ বাইট দীর্ঘ হতে হবে এবং হেক্সাডেসিমেল স্ট্রিং হলে চলবে না।

হ্যাশ করা ক্রেডেনশিয়াল দিয়ে API কল করা

Swift

FirebaseAnalytics মডিউল ইমপোর্ট করুন এবং initiateOnDeviceConversionMeasurement() API-তে ইমেল আইডি বা ফোন নম্বর দিন।

import FirebaseAnalytics

// ...
// If you're using an email address....
Analytics.initiateOnDeviceConversionMeasurement(hashedEmailAddress: hashedEmailAddress)
// If you're using a phone number....
Analytics.initiateOnDeviceConversionMeasurement(hashedPhoneNumber: hashedPhoneNumber)

Objective-C

FirebaseAnalytics মডিউল ইমপোর্ট করুন এবং initiateOnDeviceConversionMeasurementWithHashedEmailAddress: API-তে ইমেল আইডি অথবা initiateOnDeviceConversionMeasurementWithHashedPhoneNumber: API-তে ফোন নম্বর দিন।

@import FirebaseAnalytics;

// ...
// If you're using an email address....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress];
// If you're using a phone number....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:hashedPhoneNumber];

Unity

Firebase.Analytics নেমস্পেস ইমপোর্ট করুন এবং InitiateOnDeviceConversionMeasurementWithHashedEmailAddress() API-তে ইমেল আইডি অথবা InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber() API-তে ফোন নম্বর দিন:

using Firebase.Analytics;

// ...
// If you're using an email address....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress(hashedEmailAddress);
// If you're using a phone number....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber(hashedPhoneNumber);

ইন্টিগ্রেশন যাচাই করা

ডিবাগ মোড চালু করুন। ইনিশিয়েট মেজারমেন্ট API কল করার পরে, নিশ্চিত করুন যে Xcode ডিবাগ কনসোলে নিম্নলিখিত লগ মেসেজের মতো কোনও মেসেজ দেখা যাচ্ছে:

[FirebaseAnalytics][I-ACS023225] Initiated on-device conversion measurement

আপনি যদি ডিবাগ মোড চালু করে থাকেন এবং -DebugOnDeviceConversionMeasurement লঞ্চ আর্গুমেন্ট যোগ করে থাকেন, তাহলে initiateOnDeviceConversionMeasurement() API কল করলে একটি ম্যাচ সিমুলেট করা হবে।

[FirebaseAnalytics][I-ACS023229] On-device conversion measurement found a match




ধাপ ২: ইন্টিগ্রেট করা Google Analytics ধাপ ৪: সাধারণ সমস্যা সমাধান ও ম্যানেজ করা