Browse Source

【综合】路径埋点补充

tangchao 6 months ago
parent
commit
7a8f145e5b

+ 41 - 38
PDF Office/PDF Master/Class/Analytics/KMAnalytics+KMExtensions.swift

@@ -24,11 +24,6 @@ extension KMAnalytics.Parameter.Category {
     public static let purchase_Others       = "Purchase_Others"
 }
 
-// 数据埋点 Label 参数
-//extension KMAnalytics.Parameter.Label {
-//    public static let tbr_Btn           = "Tbr_Btn"
-//}
-
 @objc extension NSViewController {
     private static var _eventNameKey = "KMEventNameKey"
     var kEventName: String? {
@@ -53,6 +48,28 @@ extension KMAnalytics.Parameter.Category {
     @objc func trackEvent_buyNow_tool(type: CAnnotationType, index: Int) {
         KMAnalytics._trackEvent_buyNow_tool(type: type, index: index, appTarget: .all)
     }
+    
+    // MARK: - Track Events Basic
+    
+    @objc func trackEvent(eventName eveN: String, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        KMAnalytics.trackEvent(eventName: eveN, parameters: params, platform: platform, appTarget: .all)
+    }
+    
+    @objc func trackEvent_dmg(eventName eveN: String, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        KMAnalytics.trackEvent(eventName: eveN, parameters: params, platform: platform, appTarget: .dmg)
+    }
+    
+    @objc func trackEvent_free(eventName eveN: String, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        KMAnalytics.trackEvent(eventName: eveN, parameters: params, platform: platform, appTarget: .free)
+    }
+    
+    @objc func trackEvent_pro(eventName eveN: String, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        KMAnalytics.trackEvent(eventName: eveN, parameters: params, platform: platform, appTarget: .pro)
+    }
+    
+    @objc func trackEvent_appstore(eventName eveN: String, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        KMAnalytics.trackEvent(eventName: eveN, parameters: params, platform: platform, appTarget: [.free, .pro])
+    }
 }
 
 @objc extension NSWindowController {
@@ -76,30 +93,35 @@ extension KMAnalytics.Parameter.Category {
         }
     }
     
-    func saveEventName(_ eventN: String?) {
-        self.kEventName = eventN
-        self.kEventParams = KMGetBuyNowEventParams(for: eventN)
+    // MARK: - Track Events Basic
+    
+    @objc func trackEvent(eventName eveN: String?, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        if let data = eveN {
+            KMAnalytics.trackEvent(eventName: data, parameters: params, platform: platform, appTarget: .all)
+        }
     }
     
-    @objc func trackEvent_buyNow_click(eventName eveN: String, params: [String : Any]?) {
-        KMAnalytics.trackEvent(eventName: eveN, parameters: params, platform: .firebase, appTarget: .dmg)
+    @objc func trackEvent_dmg(eventName eveN: String?, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        if let data = eveN {
+            KMAnalytics.trackEvent(eventName: data, parameters: params, platform: platform, appTarget: .dmg)
+        }
     }
     
-    @objc func trackEvent() {
-        if let e = self.kEventName {
-            KMAnalytics.trackEvent(eventName: e, parameters: self.kEventParams, platform: .firebase, appTarget: .all)
+    @objc func trackEvent_free(eventName eveN: String?, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        if let data = eveN {
+            KMAnalytics.trackEvent(eventName: data, parameters: params, platform: platform, appTarget: .free)
         }
     }
     
-    @objc func trackEvent_dmg() {
-        if let e = self.kEventName {
-            KMAnalytics.trackEvent(eventName: e, parameters: self.kEventParams, platform: .firebase, appTarget: .dmg)
+    @objc func trackEvent_pro(eventName eveN: String?, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        if let data = eveN {
+            KMAnalytics.trackEvent(eventName: data, parameters: params, platform: platform, appTarget: .pro)
         }
     }
     
-    @objc func trackEvent_appStore() {
-        if let e = self.kEventName {
-            KMAnalytics.trackEvent(eventName: e, parameters: self.kEventParams, platform: .firebase, appTarget: [.free, .pro])
+    @objc func trackEvent_appstore(eventName eveN: String?, params: [String : Any]?, platform: KMAnalyticsPlatform) {
+        if let data = eveN {
+            KMAnalytics.trackEvent(eventName: data, parameters: params, platform: platform, appTarget: [.free, .pro])
         }
     }
 }
@@ -136,22 +158,3 @@ public func KMBuyNowEventNameFromCAnnotationType(_ type: CAnnotationType, index:
     return nil
 }
 
-public func KMGetBuyNowEventParams(for eventN: String?) -> [String : Any]? {
-    guard let eveN = eventN else {
-        return nil
-    }
-    if eveN == "Reading_WebsiteLink_BuyNow" || eveN == "Reading_EmailLink_BuyNow" ||
-        eveN == "Reading_DynamicStamp_BuyNow" || eveN == "Reading_CustomStamp_BuyNow" ||
-        eveN == "Reading_Signature_BuyNow" || eveN == "Reading_Table_BuyNow" {
-        return ["Purchase_Tools" : "SubTbr_Tools"]
-    } else if eveN == "Reading_InsertBlankPage_BuyNow" || eveN == "Reading_InsertPDF_BuyNow" ||
-                eveN == "Reading_InsertSacnner_BuyNow" || eveN == "Reading_InsertImage_BuyNow" || eveN == "Reading_InsertClipboard_BuyNow" ||
-                eveN == "Reading_Replace_BuyNow" || eveN == "Reading_Extract_BuyNow" || eveN == "Reading_Split_BuyNow" ||
-                eveN == "Reading_Rotate_BuyNow" || eveN == "Reading_Reverse_BuyNow" || eveN == "Reading_Copy_BuyNow" ||
-                eveN == "Reading_Delete_BuyNow" || eveN == "Reading_Merge_BuyNow" {
-        return ["Purchase_PageEdit" : "SubTbr_PageEdit"]
-    } else if eveN == "Onbrd_EditPage_BuyNow" || eveN == "Onbrd_Merge_BuyNow" {
-        return ["Purchase_PageEdit" : "Home_PageEdit"]
-    }
-    return nil
-}

+ 3 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.swift

@@ -97,7 +97,9 @@ extension KMMergeWindowController {
         }
         
         if !IAPProductsManager.default().isAvailableAllFunction() && (files.count >= 2 || size > 20 * 1024 * 1024) {
-            KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
+            let winC = KMPurchaseCompareWindowController.sharedInstance()
+            winC?.kEventName = "Reading_Merge_BuyNow"
+            winC?.showWindow(nil)
             return
         }
         

+ 12 - 12
PDF Office/PDF Master/Class/PDFTools/PageEdit/Controller/KMPDFEditViewController.swift

@@ -523,7 +523,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     override func deleteAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Delete_BuyNow")
+            winC?.kEventName = "Reading_Delete_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -586,7 +586,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     override func rightRotateAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Rotate_BuyNow")
+            winC?.kEventName = "Reading_Rotate_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -660,7 +660,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     override func extractAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Extract_BuyNow")
+            winC?.kEventName = "Reading_Extract_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -682,7 +682,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     override func replaceAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Replace_BuyNow")
+            winC?.kEventName = "Reading_Replace_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -720,7 +720,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     override func splitAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Split_BuyNow")
+            winC?.kEventName = "Reading_Split_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -768,7 +768,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
 //        }
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Split_BuyNow")
+            winC?.kEventName = "Reading_Split_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -849,7 +849,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     override func reverseAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Reverse_BuyNow")
+            winC?.kEventName = "Reading_Reverse_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -1140,7 +1140,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     @objc func item_insertCustomPage(sender: NSMenuItem?) {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_InsertBlankPage_BuyNow")
+            winC?.kEventName = "Reading_InsertBlankPage_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -1197,7 +1197,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     @objc func item_insertFromImage(sender: NSMenuItem?) {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_InsertImage_BuyNow")
+            winC?.kEventName = "Reading_InsertImage_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -1252,7 +1252,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     @objc func item_insertFromClipboard(sender: NSMenuItem?) {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_InsertClipboard_BuyNow")
+            winC?.kEventName = "Reading_InsertClipboard_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -1274,7 +1274,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     @objc func item_insertFromScanner(sender: NSMenuItem?) {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_InsertSacnner_BuyNow")
+            winC?.kEventName = "Reading_InsertSacnner_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -1348,7 +1348,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     func extractSelectPageItemAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Extract_BuyNow")
+            winC?.kEventName = "Reading_Extract_BuyNow"
             winC?.showWindow(nil)
             return
         }

+ 3 - 3
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/Base/KMPDFThumbViewBaseController.swift

@@ -154,7 +154,7 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
     public func insertFileAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_InsertPDF_BuyNow")
+            winC?.kEventName = "Reading_InsertPDF_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -204,7 +204,7 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
     public func insertBlankPageAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_InsertBlankPage_BuyNow")
+            winC?.kEventName = "Reading_InsertBlankPage_BuyNow"
             winC?.showWindow(nil)
             return
         }
@@ -272,7 +272,7 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
     public func copyAction() {
         if IAPProductsManager.default().isAvailableAllFunction() == false {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Copy_BuyNow")
+            winC?.kEventName = "Reading_Copy_BuyNow"
             winC?.showWindow(nil)
             return
         }

+ 2 - 2
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMAnnotationSelectLinkViewController.swift

@@ -134,10 +134,10 @@ enum KMAnnotationLinkType: UInt {
                         if mouseBox == self.linkUrlBox || mouseBox == self.linkEmailBox {
                             if mouseBox == self.linkUrlBox {
                                 let winC = KMPurchaseCompareWindowController.sharedInstance()
-                                winC?.saveEventName("Reading_WebsiteLink_BuyNow")
+                                winC?.kEventName = "Reading_WebsiteLink_BuyNow"
                             } else if mouseBox == self.linkEmailBox {
                                 let winC = KMPurchaseCompareWindowController.sharedInstance()
-                                winC?.saveEventName("Reading_EmailLink_BuyNow")
+                                winC?.kEventName = "Reading_EmailLink_BuyNow"
                             }
                             
                             KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/Signature/KMSignatureAnnotationViewController.m

@@ -139,7 +139,7 @@ KMSigntureViewItemDelegate>
 - (IBAction)insertSignatureButton_Click:(id)sender {
     if (![[IAPProductsManager defaultManager] isAvailableAllFunction]) {
         NSWindowController *winC = [KMPurchaseCompareWindowController sharedInstance];
-        [winC saveEventName:@"Reading_Signature_BuyNow"];
+        winC.kEventName = @"Reading_Signature_BuyNow";
         [winC showWindow:nil];
         return;
     }

+ 2 - 2
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/StampList/KMAnnotationStampViewController.swift

@@ -289,7 +289,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
             guard let blockSelf = self else { return }
             if downEntered && !IAPProductsManager.default().isAvailableAllFunction() {
                 let winC = KMPurchaseCompareWindowController.sharedInstance()
-                winC?.saveEventName("Reading_DynamicStamp_BuyNow")
+                winC?.kEventName = "Reading_DynamicStamp_BuyNow"
                 winC?.showWindow(nil)
                 return
             }
@@ -311,7 +311,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
             guard let blockSelf = self else { return }
             if downEntered && !IAPProductsManager.default().isAvailableAllFunction() {
                 let winC = KMPurchaseCompareWindowController.sharedInstance()
-                winC?.saveEventName("Reading_CustomStamp_BuyNow")
+                winC?.kEventName = "Reading_CustomStamp_BuyNow"
                 winC?.showWindow(nil)
                 return
             }

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -3254,7 +3254,7 @@ extension KMMainViewController {
         changeAnnotationMode(sender)
         guard IAPProductsManager.default().isAvailableAllFunction() else {
             let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.saveEventName("Reading_Table_BuyNow")
+            winC?.kEventName = "Reading_Table_BuyNow"
             winC?.showWindow(nil)
             return
         }

+ 6 - 0
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.h

@@ -17,3 +17,9 @@
 - (void)showWindowRestore:(id)sender;
 
 @end
+
+@interface KMPurchaseCompareDMGWindowController(KMAnalytic)
+
+- (void)trackEvent_buyNow;
+
+@end

+ 43 - 1
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.m

@@ -648,7 +648,7 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
 #if VERSION_DMG
     [self close];
     
-    [self trackEvent_dmg];
+    [self trackEvent_buyNow];
     
     NSString *productID = @"";
     if ([self.buySwitch state]) {
@@ -749,3 +749,45 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
 }
 
 @end
+
+@implementation KMPurchaseCompareDMGWindowController (KMAnalytic)
+
+- (void)trackEvent_buyNow {
+    [self trackEvent_dmgWithEventName:self.kEventName params:[self _getBuyNowEventParams] platform:KMAnalyticsPlatformFirebase];
+}
+
+- (NSDictionary *)_getBuyNowEventParams {
+    NSString *eveN = self.kEventName;
+    if (eveN == nil || eveN.length == 0) {
+        return nil;
+    }
+    
+    if ([eveN isEqual:@"Reading_WebsiteLink_BuyNow"] ||
+        [eveN isEqual:@"Reading_EmailLink_BuyNow"] ||
+        [eveN isEqual:@"Reading_DynamicStamp_BuyNow"] ||
+        [eveN isEqual:@"Reading_CustomStamp_BuyNow"] ||
+        [eveN isEqual:@"Reading_Signature_BuyNow"] ||
+        [eveN isEqual:@"Reading_Table_BuyNow"]) {
+        return @{@"Purchase_Tools" : @"SubTbr_Tools"};
+    } else if ([eveN isEqual:@"Reading_InsertBlankPage_BuyNow"] ||
+               [eveN isEqual:@"Reading_InsertPDF_BuyNow"] ||
+               [eveN isEqual:@"Reading_InsertSacnner_BuyNow"] ||
+               [eveN isEqual:@"Reading_InsertImage_BuyNow"] ||
+               [eveN isEqual:@"Reading_InsertClipboard_BuyNow"] ||
+               [eveN isEqual:@"Reading_Replace_BuyNow"] ||
+               [eveN isEqual:@"Reading_Extract_BuyNow"] ||
+               [eveN isEqual:@"Reading_Split_BuyNow"] ||
+               [eveN isEqual:@"Reading_Rotate_BuyNow"] ||
+               [eveN isEqual:@"Reading_Reverse_BuyNow"] ||
+               [eveN isEqual:@"Reading_Copy_BuyNow"] ||
+               [eveN isEqual:@"Reading_Delete_BuyNow"] ||
+               [eveN isEqual:@"Reading_Merge_BuyNow"]) {
+        return @{@"Purchase_PageEdit" : @"SubTbr_PageEdit"};
+    } else if ([eveN isEqual:@"Onbrd_EditPage_BuyNow"] ||
+               [eveN isEqual:@"Onbrd_Merge_BuyNow"]) {
+        return @{@"Purchase_PageEdit" : @"Home_PageEdit"};
+    }
+    return nil;
+}
+
+@end