ConnectCustomEvent

Use ConnectCustomEvent to instrument the Connect iOS library and capture custom events, errors, exceptions, network activity, geolocation, UI control interactions, and screen views.

Platform: iOS 15.1+
Languages: Swift and Objective-C
Declared in: ConnectCustomEvent.h


Getting the shared instance

sharedInstance

Returns the singleton instance of ConnectCustomEvent. Use this instance for all logging calls.

import Connect

ConnectCustomEvent.sharedInstance()
#import <Connect/ConnectCustomEvent.h>

+ (ConnectCustomEvent *)sharedInstance;

Logging custom events

Log a named event, optionally with a values dictionary and a monitoring level.

logEvent

logEvent(_ eventName: String?) -> Bool

logEvent(_ eventName: String?,
         values: [AnyHashable: Any]?) -> Bool

logEvent(_ eventName: String?,
         values: [AnyHashable: Any]?,
         level: kConnectMonitoringLevelType) -> Bool
- (BOOL)logEvent:(NSString *)eventName;

- (BOOL)logEvent:(NSString *)eventName
          values:(NSDictionary *)values;

- (BOOL)logEvent:(NSString *)eventName
          values:(NSDictionary *)values
           level:(kConnectMonitoringLevelType)level;
ParameterRequired?Description
eventNameRequiredThe name of the event. Must not contain =, [, or ].
valuesOptionalAdditional key-value pairs to log with the event. Values must be NSDictionary, NSArray, NSString, NSNumber, or NSNull.
levelOptionalOverrides the event's configured monitoring level. See Monitoring levels.

Returns true if the event was successfully logged.

📘

Note

To be convertible to JSON, dictionary values must be NSDictionary, NSArray, NSString, NSNumber, or NSNull.

logSignal

Logs a signal event with a values dictionary.

logSignal(_ values: [AnyHashable: Any]?) -> Bool

logSignal(_ values: [AnyHashable: Any]?,
          level: kConnectMonitoringLevelType) -> Bool
- (BOOL)logSignal:(NSDictionary *)values;

- (BOOL)logSignal:(NSDictionary *)values
            level:(kConnectMonitoringLevelType)level;
ParameterRequired?Description
valuesRequiredKey-value pairs to log with the signal. Values must be NSDictionary, NSArray, NSString, NSNumber, or NSNull.
levelOptionalOverrides the configured monitoring level. See Monitoring levels.

Returns true if the signal was successfully logged.


Monitoring levels

The kConnectMonitoringLevelType enum controls when an event is posted to the collector, based on network conditions.

ConstantValueDescription
kConnectMonitoringLevelIgnore0The event is dropped.
kConnectMonitoringLevelCellularAndWiFi1The event is posted over cellular or Wi-Fi (default).
kConnectMonitoringLevelWiFi2The event is posted over Wi-Fi only.

Monitoring levels are nested: events with lower levels are considered more important. Defined in ConnectPublicDefinitions.h.


Logging errors

logNSErrorEvent

Logs an NSError instance.

logNSErrorEvent(_ error: (any Error)?,
                message: String?,
                level: kConnectMonitoringLevelType) -> Bool

logNSErrorEvent(_ error: (any Error)?,
                message: String?,
                file: UnsafePointer<Int8>?,
                line: UInt,
                level: kConnectMonitoringLevelType) -> Bool
- (BOOL)logNSErrorEvent:(NSError *)error
                message:(NSString *)message
                  level:(kConnectMonitoringLevelType)level;

- (BOOL)logNSErrorEvent:(NSError *)error
                message:(NSString *)message
                   file:(const char *)file
                   line:(unsigned int)line
                  level:(kConnectMonitoringLevelType)level;
ParameterRequired?Description
errorRequiredThe NSError to log.
messageRequiredAdditional information about the error.
levelRequiredThe monitoring level. See Monitoring levels.
fileOptionalThe source file where the error occurred. Pass __FILE__.
lineOptionalThe source line where the error occurred. Pass __LINE__.

Returns true if the event was successfully logged.

Example JSON output

{
  "exception": {
    "unhandled": false,
    "data": {
      "message": "Custom Message"
    },
    "name": "(null)",
    "stackTrace": "",
    "description": "An error occurred."
  },
  "fromWeb": false,
  "count": 4,
  "screenviewOffset": 23,
  "offset": 39,
  "type": 6,
  "line": 1,
  "fileName": "/path/to/file/AppDelegate.m"
}

Logging exceptions

logNSExceptionEvent

Logs an NSException. Use this from your own exception handler — the Cocoa runtime is not exception-safe, so the SDK does not catch exceptions automatically.

logNSExceptionEvent(_ exception: NSException?) -> Bool

logNSExceptionEvent(_ exception: NSException?,
                    dataDictionary: [AnyHashable: Any]?) -> Bool

logNSExceptionEvent(_ exception: NSException?,
                    dataDictionary: [AnyHashable: Any]?,
                    isUnhandled unhandled: Bool) -> Bool
- (BOOL)logNSExceptionEvent:(NSException *)exception;

- (BOOL)logNSExceptionEvent:(NSException *)exception
             dataDictionary:(NSDictionary *)dataDictionary;

- (BOOL)logNSExceptionEvent:(NSException *)exception
             dataDictionary:(NSDictionary *)dataDictionary
                isUnhandled:(BOOL)unhandled;
ParameterRequired?Description
exceptionRequiredThe caught NSException.
dataDictionaryOptionalAdditional data to log with the exception.
unhandledOptionalIndicates whether the exception was caught by an exception handler. Defaults to false in the two-parameter overloads.

Returns true if the event was successfully logged.

Logging exceptions in Swift

Swift does not support throwing NSException directly. To log exception data from Swift, wrap an NSException instance inside an NSError's userInfo and catch it:

enum MyError: Error {
    case runtimeError(String)
    case outOfIndex(String)
}

func throwException(message: String) throws {
    let info: [String: Any] = ["context": "any"]
    let exceptionInfo: [String: NSException] = [
        "ExceptionObject": NSException(
            name: NSExceptionName("TheException"),
            reason: "Unable to complete operation",
            userInfo: info
        )
    ]
    throw NSError(domain: "exception", code: 10, userInfo: exceptionInfo)
}

@IBAction func generateUnhandledException(sender: UIButton) {
    do {
        try throwException(message: "exception")
    } catch let err as NSError {
        if let ex = err.userInfo["ExceptionObject"] as? NSException {
            ConnectCustomEvent.sharedInstance().logNSExceptionEvent(
                ex,
                dataDictionary: err.userInfo,
                isUnhandled: true
            )
        }
        ConnectCustomEvent.sharedInstance().logNSErrorEvent(
            err,
            message: "error",
            level: kConnectMonitoringLevelCellularAndWiFi
        )
    }
}

Logging Swift assert and precondition events

These methods log Swift error conditions and flush any buffered capture data immediately.

logAssertErrorEvent

Logs a Swift assert failure.

logAssertErrorEvent(_ error: (any Error)?,
                    condition: Bool,
                    message: String?,
                    file: UnsafePointer<Int8>?,
                    line: UInt) -> Bool
- (BOOL)logAssertErrorEvent:(NSError *)error
                  condition:(Boolean)condition
                    message:(NSString *)message
                       file:(const char *)file
                       line:(unsigned int)line;
ParameterRequired?Description
errorRequiredThe error to log.
conditionRequiredThe condition that failed.
messageRequiredAdditional information about the assertion.
fileRequiredThe source file. Pass __FILE__.
lineRequiredThe source line. Pass __LINE__.

Returns true if the event was successfully logged.

logPreconditionErrorEvent

Logs a Swift precondition failure.

logPreconditionErrorEvent(_ error: (any Error)?,
                          condition: Bool,
                          message: String?,
                          file: UnsafePointer<Int8>?,
                          line: UInt) -> Bool
- (BOOL)logPreconditionErrorEvent:(NSError *)error
                        condition:(Boolean)condition
                          message:(NSString *)message
                             file:(const char *)file
                             line:(unsigned int)line;
ParameterRequired?Description
errorRequiredThe error to log.
conditionRequiredThe condition that failed.
messageRequiredAdditional information about the precondition.
fileRequiredThe source file. Pass __FILE__.
lineRequiredThe source line. Pass __LINE__.

Returns true if the event was successfully logged.

logAssertionFailureErrorEvent

Logs a Swift assertionFailure.

logAssertionFailureErrorEvent(_ error: (any Error)?,
                              message: String?,
                              file: UnsafePointer<Int8>?,
                              line: UInt) -> Bool
- (BOOL)logAssertionFailureErrorEvent:(NSError *)error
                              message:(NSString *)message
                                 file:(const char *)file
                                 line:(unsigned int)line;
ParameterRequired?Description
errorRequiredThe error to log.
messageRequiredAdditional information about the failure.
fileRequiredThe source file. Pass __FILE__.
lineRequiredThe source line. Pass __LINE__.

Returns true if the event was successfully logged.

logPreconditionFailureErrorEvent

Logs a Swift preconditionFailure.

logPreconditionFailureErrorEvent(_ error: (any Error)?,
                                 message: String?,
                                 file: UnsafePointer<Int8>?,
                                 line: UInt) -> Bool
- (BOOL)logPreconditionFailureErrorEvent:(NSError *)error
                                 message:(NSString *)message
                                    file:(const char *)file
                                    line:(unsigned int)line;
ParameterRequired?Description
errorRequiredThe error to log.
messageRequiredAdditional information about the failure.
fileRequiredThe source file. Pass __FILE__.
lineRequiredThe source line. Pass __LINE__.

Returns true if the event was successfully logged.

logFatalErrorEvent

Logs a Swift fatalError.

logFatalErrorEvent(_ error: (any Error)?,
                   message: String?,
                   file: UnsafePointer<Int8>?,
                   line: UInt) -> Bool
- (BOOL)logFatalErrorEvent:(NSError *)error
                   message:(NSString *)message
                      file:(const char *)file
                      line:(unsigned int)line;
ParameterRequired?Description
errorRequiredThe error to log.
messageRequiredAdditional information about the fatal error.
fileRequiredThe source file. Pass __FILE__.
lineRequiredThe source line. Pass __LINE__.

Returns true if the event was successfully logged.


Logging network activity

logNSURLSession

Logs information about an NSURLSession request, response, or error.

logNSURLSession(_ urlSession: Any?,
                error: (any Error)?) -> Bool

logNSURLSession(_ urlSession: Any?,
                response: URLResponse?,
                responseTimeInMilliseconds responseTime: Int64) -> Bool

logNSURLSession(_ urlSession: Any?,
                request: URLRequest?) -> Bool
- (BOOL)logNSURLSession:(id)urlSession
                  error:(NSError *)error;

- (BOOL)logNSURLSession:(id)urlSession
               response:(NSURLResponse *)response
responseTimeInMilliseconds:(long long)responseTime;

- (BOOL)logNSURLSession:(id)urlSession
                request:(NSURLRequest *)request;
ParameterRequired?Description
urlSessionRequiredThe NSURLSession object.
errorOptionalThe NSError returned by the request.
requestOptionalThe NSURLRequest.
responseOptionalThe NSURLResponse.
responseTimeOptionalThe server response time in milliseconds.

Returns true if the event was successfully logged.

logConnectionWithInitTime

Logs detailed connection timing and payload information.

logConnection(withInitTime initTime: NSNumber?,
              loadTime: NSNumber?,
              connection: Any?,
              request: URLRequest?,
              response: URLResponse?,
              error: (any Error)?) -> Bool

logConnection(withInitTime initTime: NSNumber?,
              loadTime: NSNumber?,
              connection: Any?,
              request: URLRequest?,
              response: URLResponse?,
              data: Data?,
              error: (any Error)?) -> Bool
- (BOOL)logConnectionWithInitTime:(NSNumber *)initTime
                         loadTime:(NSNumber *)loadTime
                       connection:(id)connection
                          request:(NSURLRequest *)request
                         response:(NSURLResponse *)response
                            error:(NSError *)error;

- (BOOL)logConnectionWithInitTime:(NSNumber *)initTime
                         loadTime:(NSNumber *)loadTime
                       connection:(id)connection
                          request:(NSURLRequest *)request
                         response:(NSURLResponse *)response
                             data:(NSData *)data
                            error:(NSError *)error;
ParameterRequired?Description
initTimeRequiredTime duration since the start of the current session.
loadTimeRequiredTime taken to load the resource.
connectionOptionalThe NSURLSession object. Can be nil.
requestRequiredThe NSURLRequest associated with the connection.
responseRequiredThe NSURLResponse.
dataOptionalThe NSData object from the request or response.
errorOptionalThe NSError returned by the request.

Returns true if the event was successfully logged.


Logging geolocation

Location events are not captured automatically. Log them only when your app has a reason to access location — this avoids unnecessary location updates and respects user privacy. Your app must link the Core Location framework.

logLocation

Logs a CLLocation instance. Call from your CLLocationManagerDelegate.

logLocation(_ location: CLLocation?) -> Bool
- (BOOL)logLocation:(CLLocation *)location;
ParameterRequired?Description
locationRequiredA CLLocation object containing the location of interest.

Returns true if the event was successfully logged.

Example

func locationManager(_ manager: CLLocationManager,
                     didUpdateLocations locations: [CLLocation]) {
    if let location = locations.last {
        ConnectCustomEvent.sharedInstance().logLocation(location)
    }
}
- (void)locationManager:(CLLocationManager *)manager
     didUpdateLocations:(NSArray<CLLocation *> *)locations {
    CLLocation *location = locations.lastObject;
    [[ConnectCustomEvent sharedInstance] logLocation:location];
}

logLocationUpdateEventWithLatitude

Logs a location using raw latitude and longitude values.

logLocationUpdateEvent(withLatitude lat: Double,
                       longitude lng: Double,
                       level: kConnectMonitoringLevelType) -> Bool
- (BOOL)logLocationUpdateEventWithLatitude:(double)lat
                                 longitude:(double)lng
                                     level:(kConnectMonitoringLevelType)level;
ParameterRequired?Description
latRequiredThe geographic latitude.
lngRequiredThe geographic longitude.
levelRequiredThe monitoring level. See Monitoring levels.

Returns true if the event was successfully logged.


Logging UI control events

logClickEvent

Logs a click event on a UIControl or UIView. A click event is a normalized form of "touch up inside".

logClickEvent(_ view: UIView?,
              data: [AnyHashable: Any]?) -> Bool

logClickEvent(_ view: UIView?,
              controlId: String?,
              data: [AnyHashable: Any]?) -> Bool
- (BOOL)logClickEvent:(UIView *)view
                 data:(NSDictionary *)data;

- (BOOL)logClickEvent:(UIView *)view
            controlId:(NSString *)controlId
                 data:(NSDictionary *)data;
ParameterRequired?Description
viewRequiredThe UIView on which the click occurred.
controlIdOptionalThe ID of the control.
dataOptionalAdditional custom data to send with the event.

Returns true if the event was successfully logged.

logValueChangeEvent

Logs a content change on a UITableViewCell or UICollectionViewCell.

logValueChangeEvent(_ view: UIView?,
                    data: [AnyHashable: Any]?) -> Bool

logValueChangeEvent(_ view: UIView?,
                    controlId: String?,
                    data: [AnyHashable: Any]?) -> Bool
- (BOOL)logValueChangeEvent:(UIView *)view
                       data:(NSDictionary *)data;

- (BOOL)logValueChangeEvent:(UIView *)view
                  controlId:(NSString *)controlId
                       data:(NSDictionary *)data;
ParameterRequired?Description
viewRequiredThe UIView whose value changed.
controlIdOptionalThe ID of the control.
dataOptionalAdditional custom data to send with the event.

Returns true if the event was successfully logged.

logTextChangeEvent

Logs an edit event on a UITextView, UITextViewSecure, UITextField, or UITextFieldSecure.

logTextChangeEvent(_ view: UIView?,
                   data: [AnyHashable: Any]?) -> Bool

logTextChangeEvent(_ view: UIView?,
                   controlId: String?,
                   data: [AnyHashable: Any]?) -> Bool
- (BOOL)logTextChangeEvent:(UIView *)view
                      data:(NSDictionary *)data;

- (BOOL)logTextChangeEvent:(UIView *)view
                 controlId:(NSString *)controlId
                      data:(NSDictionary *)data;
ParameterRequired?Description
viewRequiredThe text view or field being edited.
controlIdOptionalThe ID of the control.
dataOptionalAdditional custom data to send with the event.

Returns true if the event was successfully logged.

logUILabelTextChange

Logs a text change on a UILabel. The captured event includes both the previous and current label text.

logUILabelTextChange(_ label: UILabel?) -> Bool

logUILabelTextChange(_ label: UILabel?,
                     controlId: String?) -> Bool
- (BOOL)logUILabelTextChange:(UILabel *)label;

- (BOOL)logUILabelTextChange:(UILabel *)label
                   controlId:(NSString *)controlId;
ParameterRequired?Description
labelRequiredThe UILabel whose text changed.
controlIdOptionalThe ID of the control.

Returns true if the event was successfully logged.

logFormCompletion

Logs a form completion event.

logFormCompletion(_ submitted: Bool) -> Bool

logFormCompletion(_ submitted: Bool,
                  withValidData isValid: Bool) -> Bool
- (BOOL)logFormCompletion:(BOOL)submitted;

- (BOOL)logFormCompletion:(BOOL)submitted
            withValidData:(BOOL)isValid;
ParameterRequired?Description
submittedRequiredIndicates whether form data was submitted.
isValidOptionalIndicates whether the submitted data was valid.

Returns true if the event was successfully logged.


Logging screen views

logScreenViewPageName

Sets the logical page name for screen layout captures. Used in React Native apps.

logScreenViewPageName(_ logicalPageName: String?) -> Bool
- (BOOL)logScreenViewPageName:(NSString *)logicalPageName;
ParameterRequired?Description
logicalPageNameRequiredThe page name or title, for example "Login View Controller". Must not be empty.

Returns true if the event was successfully logged.

logScreenViewContext

Logs an application context for a screen.

logScreenViewContext(_ logicalPageName: String?,
                     withClass clsss: String?,
                     applicationContext screenViewType: ConnectScreenViewType,
                     referrer: String?) -> Bool
- (BOOL)logScreenViewContext:(NSString *)logicalPageName
                   withClass:(NSString *)clsss
          applicationContext:(ConnectScreenViewType)screenViewType
                    referrer:(NSString *)referrer;
ParameterRequired?Description
logicalPageNameRequiredThe page name or title. Must not be empty.
clsssRequiredThe UIViewController class name. Must not be empty.
screenViewTypeRequiredA value from ConnectScreenViewType.
referrerOptionalThe page name or title that loaded this page.

Returns true if the event was successfully logged.

logPrintScreenEvent

Logs a print-screen event. The current screenshot is automatically associated.

logPrintScreenEvent() -> Bool
- (BOOL)logPrintScreenEvent;

Returns true if the event was successfully logged.


Screen view types

The ConnectScreenViewType enum identifies the kind of screen-view event. Defined in ConnectPublicDefinitions.h.

ConstantValueDescription
ConnectScreenViewTypeNil0No screen view.
ConnectScreenViewTypeUnload1The screen is being dismissed.
ConnectScreenViewTypeLoad2The screen is being presented.
ConnectScreenViewTypeVisit3A logical visit event.

Logging screen layouts

These methods manually log screen layouts for session replay. For guidance on when and how to call them, see Manually log screen layouts in a native iOS app.

logScreenLayoutWithImage

Logs an image as the background of a screen layout capture.

logScreenLayout(with image: UIImage?) -> Bool
- (BOOL)logScreenLayoutWithImage:(UIImage *)image;
ParameterRequired?Description
imageRequiredThe UIImage to use as the layout background.

Returns true if the event was successfully logged.

logScreenLayoutWithViewController

Logs the layout of a view controller. Supports optional delay, custom name, and related views.

logScreenLayout(with viewController: UIViewController?) -> Bool

logScreenLayout(with viewController: UIViewController?,
                andName name: String?) -> Bool

logScreenLayout(with viewController: UIViewController?,
                andDelay delay: CGFloat) -> Bool

logScreenLayout(with viewController: UIViewController?,
                andDelay delay: CGFloat,
                andName name: String?) -> Bool

logScreenLayout(with viewController: UIViewController?,
                andRelatedViews views: [AnyHashable]?) -> Bool

logScreenLayout(with viewController: UIViewController?,
                andRelatedViews views: [AnyHashable]?,
                andName name: String?) -> Bool

logScreenLayout(with viewController: UIViewController?,
                andRelatedViews views: [AnyHashable]?,
                andDelay delay: CGFloat) -> Bool

logScreenLayout(with viewController: UIViewController?,
                andRelatedViews views: [AnyHashable]?,
                andDelay delay: CGFloat,
                andName name: String?) -> Bool
- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController;

- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController
                                  andName:(NSString *)name;

- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController
                                 andDelay:(CGFloat)delay;

- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController
                                 andDelay:(CGFloat)delay
                                  andName:(NSString *)name;

- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController
                          andRelatedViews:(NSArray *)views;

- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController
                          andRelatedViews:(NSArray *)views
                                  andName:(NSString *)name;

- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController
                          andRelatedViews:(NSArray *)views
                                 andDelay:(CGFloat)delay;

- (BOOL)logScreenLayoutWithViewController:(UIViewController *)viewController
                          andRelatedViews:(NSArray *)views
                                 andDelay:(CGFloat)delay
                                  andName:(NSString *)name;
ParameterRequired?Description
viewControllerRequiredThe UIViewController whose layout to log.
delayOptionalSeconds to wait before capturing. Useful when animations or data reloads must complete first.
nameOptionalA custom name for the captured layout. Useful when one view controller serves multiple functions.
viewsOptionalAdditional views outside the main view hierarchy to include — for example, alerts or overlays.

Returns true if the event was successfully logged.


Logging JSON, images, and performance data

logJSONMessagePayloadStr

Logs a Connect JSON message coming from JavaScript. The string must follow the Connect JSON message format.

logJSONMessagePayloadStr(_ payload: String?) -> Bool
- (BOOL)logJSONMessagePayloadStr:(NSString *)payload;
ParameterRequired?Description
payloadRequiredA string matching the Connect JSON message format.

Returns true if the event was successfully logged.

logImageUrl

Associates a URL with a UIImage so it can be referenced during session replay.

logImageUrl(_ image: UIImage?,
            withUrl url: String?) -> Bool
- (BOOL)logImageUrl:(UIImage *)image
            withUrl:(NSString *)url;
ParameterRequired?Description
imageRequiredThe UIImage.
urlRequiredThe URL of the image.

Returns true if the URL was successfully associated with the image.

logPerformance

Logs page performance timing data. The parameter list matches the W3C Navigation Timing API. See the W3C Navigation Timing specification for parameter definitions.

logPerformance(_ navigationStart: NSNumber?,
               unloadEventStart: NSNumber?,
               unloadEventEnd: NSNumber?,
               redirectStart: NSNumber?,
               redirectEnd: NSNumber?,
               fetchStart: NSNumber?,
               domainLookupStart: NSNumber?,
               domainLookupEnd: NSNumber?,
               connectStart: NSNumber?,
               connectEnd: NSNumber?,
               secureConnectionStart: NSNumber?,
               requestStart: NSNumber?,
               responseStart: NSNumber?,
               responseEnd: NSNumber?,
               domLoading: NSNumber?,
               domInteractive: NSNumber?,
               domContentLoadedEventStart: NSNumber?,
               domContentLoadedEventEnd: NSNumber?,
               domComplete: NSNumber?,
               loadEventStart: NSNumber?,
               loadEventEnd: NSNumber?,
               renderTime: NSNumber?,
               perNavType: NSNumber?,
               redirectCount: NSNumber?) -> Bool
- (BOOL)logPerformance:(NSNumber *)navigationStart
      unloadEventStart:(NSNumber *)unloadEventStart
        unloadEventEnd:(NSNumber *)unloadEventEnd
         redirectStart:(NSNumber *)redirectStart
           redirectEnd:(NSNumber *)redirectEnd
            fetchStart:(NSNumber *)fetchStart
     domainLookupStart:(NSNumber *)domainLookupStart
       domainLookupEnd:(NSNumber *)domainLookupEnd
          connectStart:(NSNumber *)connectStart
            connectEnd:(NSNumber *)connectEnd
 secureConnectionStart:(NSNumber *)secureConnectionStart
          requestStart:(NSNumber *)requestStart
         responseStart:(NSNumber *)responseStart
           responseEnd:(NSNumber *)responseEnd
            domLoading:(NSNumber *)domLoading
        domInteractive:(NSNumber *)domInteractive
domContentLoadedEventStart:(NSNumber *)domContentLoadedEventStart
domContentLoadedEventEnd:(NSNumber *)domContentLoadedEventEnd
           domComplete:(NSNumber *)domComplete
        loadEventStart:(NSNumber *)loadEventStart
          loadEventEnd:(NSNumber *)loadEventEnd
            renderTime:(NSNumber *)renderTime
            perNavType:(ConnectPerformanceNavigationType)perNavType
         redirectCount:(NSNumber *)redirectCount;

The perNavType parameter accepts a value from the ConnectPerformanceNavigationType enum:

ConstantValueDescription
ConnectNavigate0A standard navigation.
ConnectReload1A page reload.
ConnectBack_Forward2A back or forward navigation.
ConnectReserved255Reserved.

Returns true if the event was successfully logged.