Analytics events
An event has a name and a dictionary of additional parameters. Event parameters are of standard, JSON-friendly types.
All Nutrient event names are prefixed with pspdf_ and use underscore_case.
You can find the complete list of Nutrient events and parameters in the PSPDFAnalyticsEvents.h header and in the list below.
PDFAnalytics.EventName.documentLoad(raw value:pspdf_load_document)This signifies that the user has loaded a document.
No attributes.
PDFAnalytics.EventName.spreadChange(raw value:pspdf_change_spread)This signifies that spread was changed.
No attributes.
PDFAnalytics.EventName.annotationCreationModeEnter(raw value:pspdf_enter_annotation_creation_mode)This signifies that the user opened the annotation toolbar.
No attributes.
PDFAnalytics.EventName.annotationCreationModeExit(raw value:pspdf_exit_annotation_creation_mode)This signifies that the user closed the annotation toolbar.
No attributes.
PDFAnalytics.EventName.annotationCreatorDialogShow(raw value:pspdf_show_annotation_creator_dialog)This signifies that the annotation creator dialog was shown to the user.
No attributes.
PDFAnalytics.EventName.annotationCreatorDialogCancel(raw value:pspdf_cancel_annotation_creator_dialog)This signifies that the annotation creator dialog was canceled by the user.
No attributes.
PDFAnalytics.EventName.annotationCreatorSet(raw value:pspdf_set_annotation_creator)This signifies that the annotation creator dialog was confirmed by the user, thereby setting a creator name.
No attributes.
PDFAnalytics.EventName.annotationSelect(raw value:pspdf_select_annotation)This signifies that the user selected an annotation, e.g. by tapping it.
Attributes:
- Key:
PDFAnalytics.EventAttributeName.anotationType. Value:Annotation.Toolof the selected annotation.
- Key:
PDFAnalytics.EventName.annotationCreate(raw value:pspdf_create_annotation)This signifies that the user created an annotation and added it to the document.
Attributes:
- Key:
PDFAnalytics.EventAttributeName.anotationType. Value:Annotation.Toolof the created annotation.
- Key:
PDFAnalytics.EventName.annotationDelete(raw value:pspdf_delete_annotation)This signifies that the user deleted an annotation from the document.
Attributes:
- Key:
PDFAnalytics.EventAttributeName.annotationType. Value:Annotation.Toolof the deleted annotation.
- Key:
PDFAnalytics.EventName.annotationInspectorShow(raw value:pspdf_show_annotation_inspector)This signifies that the user opened the annotation inspector for editing annotation properties, either via the annotation toolbar or by editing an existing annotation.
No attributes.
PDFAnalytics.EventName.textSelect(raw value:pspdf_select_text)This signifies that the user has selected text on the document.
No attributes.
PDFAnalytics.EventName.outlineOpen(raw value:pspdf_open_outline_view)This signifies that the user opened the outline containing the document outline, annotations, and bookmarks.
No attributes.
PDFAnalytics.EventName.outlineElementSelect(raw value:pspdf_tap_outline_element_in_outline_list)This signifies that the user tapped an outline element in the outline view.
No attributes.
PDFAnalytics.EventName.outlineAnnotationSelect(raw value:pspdf_tap_annotation_in_outline_list)This signifies that the user tapped an annotation in the outline view.
Attributes:
- Key:
PDFAnalytics.EventAttributeName.annotationType. Value:Annotation.Toolof the selected annotation.
- Key:
PDFAnalytics.EventName.thumbnailGridOpen(raw value:pspdf_open_thumbnail_grid)This signifies that the user opened the thumbnail grid view.
No attributes.
PDFAnalytics.EventName.documentEditorOpen(raw value:pspdf_open_document_editor)This signifies that the user opened the Document Editor.
No attributes.
PDFAnalytics.EventName.documentEditorAction(raw value:pspdf_perform_document_editor_action)This signifies that the user performed an action inside the Document Editor.
Attributes:
- Key:
PDFAnalytics.EventAttributeName.action. Value: One of thePDFAnalytics.EventAttributeValue.action..s that was performed by the user. For example,PDFAnalytics.EventAttributeValue.actionInsertNewPage.
- Key:
PDFAnalytics.EventName.bookmarkAdd(raw value:pspdf_add_bookmark)This signifies that the user added a bookmark to the document.
No attributes.
PDFAnalytics.EventName.bookmarkEdit(raw value:pspdf_edit_bookmarks)This signifies that the user has entered bookmark-editing mode inside the bookmark list.
No attributes.
PDFAnalytics.EventName.bookmarkRemove(raw value:pspdf_remove_bookmark)This signifies that the user has deleted a bookmark from the document.
No attributes.
PDFAnalytics.EventName.bookmarkSort(raw value:pspdf_sort_bookmark)This signifies that the user changed the order of a bookmark item in the bookmark list.
No attributes.
PDFAnalytics.EventName.bookmarkRename(raw value:pspdf_rename_bookmark)This signifies that the user renamed a bookmark.
No attributes.
PDFAnalytics.EventName.bookmarkSelect(raw value:pspdf_tap_bookmark_in_bookmark_list)This signifies that the user tapped a bookmark in the bookmark list.
No attributes.
PDFAnalytics.EventName.searchStart(raw value:pspdf_start_search)This signifies that the user started a search in the document e.g. by pressing the search icon.
No attributes.
PDFAnalytics.EventName.searchResultSelect(raw value:pspdf_select_search_result)This signifies that the user selected a search result after searching the document.
No attributes.
PDFAnalytics.EventName.share(raw value:pspdf_share)This signifies that the user shared the document using the share sheet.
Attributes:
- Key:
PDFAnalytics.EventAttributeName.activityType. Value: Activity type the user selected as string.
- Key:
PDFAnalytics.EventName.toolbarMove(raw value:pspdf_move_toolbar): This signifies that the toolbar was moved to a different location.Attributes:
- Key:
PDFAnalytics.EventAttributeValue.toolbarPosition. - Value:
FlexibleToolbar.Positionof the destination.
- Key:
Custom events
The Nutrient events pipeline can also be used to deliver custom events.
Extend the PDFAnalytics.EventName type with your custom events:
extension PDFAnalyticsEventName { static var someCustomAction = PDFAnalyticsEventName(rawValue: "some_custom_action")}PSPDF_EXPORT PSPDFAnalyticsEventName const PSPDFAnalyticsEventNameSomeCustomAction; // in *.hPSPDFAnalyticsEventName const PSPDFAnalyticsEventNameSomeCustomAction = @"some_custom_action"; // in *.mThen use the PDFAnalytics object to deliver them:
PSPDFKit.SDK.shared.analytics.logEvent(.someCustomAction)[PSPDFKitGlobal.sharedInstance.analytics logEvent:PSPDFAnalyticsEventNameSomeCustomAction];The event in the above example will be dispatched to all registered PDFAnalyticsClient instances.