【问题标题】:Custom Dimensions in SwiftSwift 中的自定义维度
【发布时间】:2017-01-03 17:52:15
【问题描述】:

我有一个与 Google Analytics 集成的 Objective-C 应用程序。现在,我正在尝试集成一个用 Swift 编写的应用程序。

这是我的 Objective-C 代码:

- (void) signInGoogleAnalytics {
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];

// You only need to set User ID on a tracker once. By setting it on the tracker, the ID will be
// sent with all subsequent hits.
[tracker set:kGAIUserId
       value:self.txtStoreCode.text];


NSString *dimensionUsuarioLogado = [NSString stringWithFormat:@"%@", _txtEmployee.text];
NSString *dimensionLoja = [NSString stringWithFormat:@"%@", _txtStoreCode.text];

[tracker send:[[[GAIDictionaryBuilder createScreenView] set:dimensionUsuarioLogado
                                                     forKey:[GAIFields customDimensionForIndex:1]] build]];

[tracker send:[[[GAIDictionaryBuilder createScreenView] set:dimensionLoja
                                                     forKey:[GAIFields customDimensionForIndex:2]] build]];
}

我正在快速尝试

func signInGoogleAnalytics() {
        let tracker = GAI.sharedInstance().defaultTracker
        tracker.set(kGAIUserId, value: txtStore.text)

        var dimensionUsuarioLogado = "\(txtUser.text)"
        var dimensionLoja = "\(txtStore.text)"

        tracker.send(GAIDictionaryBuilder.createScreenView().set(dimensionUsuarioLogado, forKey: GAIFields.customDimension(forIndex: 1)).build())

        tracker.send(GAIDictionaryBuilder.createScreenView().set(dimensionLoja, forKey: GAIFields.customDimension(forIndex: 1)).build())

    }

但我得到 GAIFields 没有成员 customDimension。那么,Swift 中的代码应该如何呢?

【问题讨论】:

    标签: swift google-analytics google-analytics-sdk


    【解决方案1】:

    它对我有用:

    func signInGoogleAnalytics() {
        let tracker = GAI.sharedInstance().defaultTracker
        tracker.set(kGAIUserId, value: txtStore.text)
    
        let dimensionUsuarioLogado = "\(txtUser.text)"
        let dimensionLoja = "\(txtStore.text)"
    
        tracker.send(GAIDictionaryBuilder.createScreenView().set(dimensionUsuarioLogado, forKey: GAIFields.customDimensionForIndex(1)).build() as NSDictionary as [NSObject : AnyObject])
    
        tracker.send(GAIDictionaryBuilder.createScreenView().set(dimensionLoja, forKey: GAIFields.customDimensionForIndex(2)).build() as NSDictionary as [NSObject : AnyObject])
    }
    

    【讨论】:

      【解决方案2】:

      我正在使用自定义维度跟踪自定义异常:

      
          //MARK:- CUSTOM EXCEPTION TRACKING
      
          func doTrackCustomExceptionWithGA(message:String, customDimensionValue:String, isFatal:Bool = false) {
      
              guard let tracker = GAI.sharedInstance()?.defaultTracker else { return }
      
              guard let exceptionBuilder = GAIDictionaryBuilder.createException(withDescription: message, withFatal: NSNumber(value: isFatal)) else { return }
              if !customDimensionValue.isEmpty {
                  exceptionBuilder.set(customDimensionValue, forKey: GAIFields.customDimension(for: 15))
              }
      
              guard let build = exceptionBuilder.build() as? [AnyHashable : Any] else { return }
              tracker.send(build)
      
              // ADDING DUMMY EVENT TO TRACK PREVIOUS EVENT QUICKLY, AS GA EVENTS ARE TRACKED ON NEXT EVENT CALLS 
              // BELOW CODE IS OPTIONAL
              let event = GAIDictionaryBuilder.createScreenView()
              tracker.send(event?.build() as! [NSObject: Any])
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多