پیادهسازی هندلر جاوااسکریپت
اولین قدم برای استفاده از Google Analytics در یک وبویو، ایجاد توابع جاوا اسکریپت برای ارسال رویدادها و ویژگیهای کاربر به کد بومی است. مثال زیر نحوه انجام این کار را به روشی که با کد بومی اندروید و اپل سازگار باشد، نشان میدهد:function logEvent(name, params) { if (!name) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.logEvent(name, JSON.stringify(params)); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'logEvent', name: name, parameters: params }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } } function setUserProperty(name, value) { if (!name || !value) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.setUserProperty(name, value); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'setUserProperty', name: name, value: value }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } }
فراخوانی کنترلکننده جاوا اسکریپت از طریق وبویو
شما میتوانید با فراخوانی توابع جاوا اسکریپتی که در مرحله قبل تعریف کردهاید، رویدادها را به درستی ثبت کنید و ویژگیهای کاربر را از درون یک WebView تنظیم کنید. مثال زیر نحوه ثبت صحیح یک رویداد خرید و تنظیم ویژگی کاربر را به عنوان نمونه نشان میدهد:function logEventExample() { // Log an event named "purchase" with parameters logEvent("purchase", { content_type: "product", value: 123, currency: "USD", quantity: 2, items: [{ item_id: "sample-item-id", item_variant: "232323" }], transaction_id: "1234567" }); } function logUserPropertyExample() { // Set a user property named 'favorite_genre' setUserProperty("favorite_genre", "comedy") }
پیادهسازی رابط کاربری بومی
برای فراخوانی کد بومی اپل از جاوا اسکریپت، یک کلاس مدیریت پیام مطابق با پروتکل WKScriptMessageHandler
ایجاد کنید. میتوانید فراخوانیهای Google Analytics را درون userContentController:didReceiveScriptMessage:
callback انجام دهید:
سویفت
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { guard let body = message.body as? [String: Any] else { return } guard let command = body["command"] as? String else { return } guard let name = body["name"] as? String else { return } if command == "setUserProperty" { guard let value = body["value"] as? String else { return } Analytics.setUserProperty(value, forName: name) } else if command == "logEvent" { guard let params = body["parameters"] as? [String: NSObject] else { return } Analytics.logEvent(name, parameters: params) } }
هدف-سی
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message { if ([message.body[@"command"] isEqual:@"setUserProperty"]) { [FIRAnalytics setUserPropertyString:message.body[@"value"] forName:message.body[@"name"]]; } else if ([message.body[@"command"] isEqual: @"logEvent"]) { [FIRAnalytics logEventWithName:message.body[@"name"] parameters:message.body[@"parameters"]]; } }
در نهایت، کنترلکننده پیام را به کنترلکننده محتوای کاربر در وبویو اضافه کنید:
سویفت
self.webView.configuration.userContentController.add(self, name: "firebase")
هدف-سی
[self.webView.configuration.userContentController addScriptMessageHandler:self name:@"firebase"];
رویدادهای خرید درونبرنامهای را به صورت دستی در یک WebView در iOS ثبت کنید
شما میتوانید رویدادهای IAP را به صورت دستی در یک WebView با استفاده از Analytics SDK نسخه ۱۲.۵.۰ یا بالاتر ثبت کنید.
function logManualPurchaseEvent() {
// For manually tracking in-app purchases within a WebView, log the in-app purchase event:
logEvent("in_app_purchase", {
currency: "USD",
price: 0.99,
product_id: "prod_123",
product_name: "Product 123",
quantity: 1,
value: 0.99,
});
}
توجه داشته باشید که SDK در صورت امکان، به طور خودکار خریدهای درونبرنامهای را ثبت میکند و هیچ رویداد خرید درونبرنامهای که به صورت دستی ثبت شده باشد را از حالت تکراری خارج نمیکند.
مراحل بعدی
برای پیادهسازی کاملاً کاربردی Google Analytics در یک وبویو، به نمونه analytics-webview مراجعه کنید.