آموزش گام‌به‌گام: سنجش تبدیل‌های «تبلیغات iOS»

مرحله ۳: سنجش تبدیل درون‌دستگاهی را بااستفاده از Google Analytics آغاز کنید


مقدمه: سنجش تبدیل‌های «تبلیغات» iOS
مرحله ۱: پیاده‌سازی تجربه ورود به سیستم
مرحله ۲: ادغام Google Analytics

مرحله ۳: شروع کردن سنجش تبدیل درون‌دستگاهی بااستفاده از Google Analytics

مرحله ۴: عیب‌یابی و رسیدگی به مشکلات رایج


اکنون که می‌توانید نشانی‌های ایمیل و شماره تلفن کاربران را جمع‌آوری کنید و برنامه شما Google Analytics را برای «کیت توسعه نرم‌افزار Firebase» دارد، می‌توانید از این دو برای شروع اندازه‌گیری تبدیل‌ها استفاده کنید.

فراخوانی میانای برنامه‌سازی کاربردی

«میانای برنامه‌سازی کاربردی اندازه‌گیری تبدیل» را با نشانی ایمیل یا شماره تلفن موافقت‌شده در «مرحله ۱» که برای اندازه‌گیری تبدیل آگهی‌ها استفاده می‌شود فراخوانی کنید، بدون اینکه اجازه دهید هیچ‌گونه اطلاعات شناسایی شخصی از دستگاه کاربر خارج شود.

دو روش برای شروع اندازه‌گیری وجود دارد:

استفاده از نشانی ایمیل یا شماره تلفن

Swift

واحد FirebaseAnalytics را وارد کنید و نشانی ایمیل یا شماره تلفن را به میانای برنامه‌سازی کاربردی initiateOnDeviceConversionMeasurement() ارسال کنید.

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: یا شماره تلفن را به میانای برنامه‌سازی کاربردی initiateOnDeviceConversionMeasurementWithPhoneNumber: ارسال کنید.

@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() یا شماره تلفن را به میانای برنامه‌سازی کاربردی InitiateOnDeviceConversionMeasurementWithPhoneNumber() ارسال کنید:

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

برای اطمینان از سنجش تبدیل درون‌دستگاهی دقیق و پیوسته، یکی از کارهای زیر را انجام دهید:

‫Google Analytics برای کیت توسعه نرم‌افزار Firebase نسخه 12.1.0 و نسخه‌های جدیدتر شامل بهبودهایی در اندازه‌گیری تبدیل در دستگاه است. برای اطمینان از اینکه این بهبودها برای همه کاربران، ازجمله کاربرانی که قبل‌از به‌روزرسانی برنامه شما وارد سیستم شده‌اند، اعمال می‌شود، لازم است پس‌از به‌روزرسانی برنامه، دوباره با initiateOnDeviceConversionMeasurement API تماس بگیرید.

به‌طور دقیق، کاربرانی که قبل‌از به‌روزرسانی برنامه شما به نسخه ۱۲.۱.۰ کیت توسعه نرم‌افزار به سیستم وارد شده‌اند تا زمانی که initiateOnDeviceConversionMeasurement میانای برنامه‌سازی کاربردی دوباره برای آن‌ها فراخوانی شود در محدوده اندازه‌گیری بهبودیافته قرار نمی‌گیرند. بدون بررسی به‌روزرسانی برنامه، این اتفاق فقط درصورتی می‌افتد که از سیستم خارج شوند و دوباره به سیستم وارد شوند.

روال مطلوب این است که حداقل یک‌بار در هر نسخه برنامه، 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 و ثبت رویداد کلیدی، تأخیر کوچکی (مثلاً پنج ثانیه) اعمال کنید. این کار کمک می‌کند مطمئن شویم اندازه‌گیری درون‌دستگاهی قبل‌از ثبت رویداد به‌طور کامل مقداردهی اولیه شده است.

از شماره تلفن یا نشانی ایمیل درهم‌سازی‌شده استفاده کنید

این «میانای برنامه‌سازی کاربردی» نشانی‌های ایمیل و شماره‌های تلفن درهم‌سازی‌شده با SHA256 را می‌پذیرد. می‌توانید با انجام درهم‌سازی در کد خود قبل‌از تماس با «کیت توسعه نرم‌افزار»، کنترل داده‌های کاربرتان را حفظ کنید.

برای استفاده از اطلاعات اعتباری درهم‌سازی‌شده، نشانی‌ها و شماره‌ها را عادی‌سازی کنید، آن‌ها را با SHA256 درهم کنید، سپس میانای برنامه‌سازی کاربردی را فراخوانی کنید.

عادی‌سازی نشانی‌های ایمیل و شماره‌های تلفن

برای نشانی‌های ایمیل، 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 تبدیل می‌شود

برای شماره تلفن‌ها، شماره‌ها باید ازقبل در قالب E.164 باشند (یعنی، پیشوند با +، ۱ تا ۳ رقم برای کد کشور، حداکثر ۱۲ رقم برای شماره مشترک) قبل‌از درهم‌سازی با SHA256.

توجه داشته باشید که ایمیل یا شماره تلفن درهم‌سازی‌شده با SHA256 باید ۳۲ بایت طول داشته باشد و رشته شانزدهی نباشد.

تماس با میانای برنامه‌سازی کاربردی با اعتبارنامه‌های درهم‌سازی‌شده

Swift

واحد FirebaseAnalytics را وارد کنید و نشانی ایمیل یا شماره تلفن را به میانای برنامه‌سازی کاربردی initiateOnDeviceConversionMeasurement() ارسال کنید.

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: یا شماره تلفن را به میانای برنامه‌سازی کاربردی initiateOnDeviceConversionMeasurementWithHashedPhoneNumber: ارسال کنید.

@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() یا شماره تلفن را به میانای برنامه‌سازی کاربردی InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber() ارسال کنید:

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 مرحله ۴: عیب‌یابی و رسیدگی به مشکلات رایج