Hooks

Hooks: Analytics and Tracking

5 min read

These hooks cover the tracking REST endpoint, event queue, conversion attribution, analytics dashboard data, and order attribution UI in WooCommerce/EDD admin.

Index: Hook Reference Hub. REST: POST /wp-json/notifal/v1/onpage/track in REST API Reference.

Pro provides enhanced metrics through bridge filters documented in Pro Integration Bridge.

Tracking REST pipeline

Actions

HookParametersDescription
notifal/onpage/tracking/before_processnoneBefore tracking request is processed
notifal/onpage/tracking/after_processnoneAfter tracking request completes
notifal/onpage/tracking/validation/beforenoneBefore tracking payload validation
notifal/onpage/tracking/validation/afternoneAfter tracking payload validation
notifal/onpage/tracking/event_storednoneAfter a tracking event is persisted

Filters

HookParametersDescription
notifal/onpage/tracking/dataarray $tracking_dataIncoming tracking payload before processing
notifal/onpage/tracking/use_queuebool $use_queueEnable/disable background queue (default true)
notifal/onpage/tracking/validation/rulesarray $validation_rulesRequired fields and valid event types
notifal/onpage/event/queue_dataarray $event_dataEvent data before queue storage

Event queue lifecycle actions: Lifecycle and Bootstrap.

Analytics dashboard (actions and filters)

Actions

HookParametersDescription
notifal/onpage/analytics/enqueue_assetsnoneEnqueue analytics dashboard assets
notifal/onpage/analytics/refresh/completedarray $resultAfter dashboard refresh event processing

Filters

HookParametersDescription
notifal/onpage/analytics/dataarray $dataFull analytics payload (overview, tables, etc.)
notifal/onpage/analytics/filtered_notification_idsint[] $notification_ids, array $filtersNotification IDs in analytics query scope
notifal/onpage/analytics/all_time_start_datestring $start_dateStart date when date_range is all_time (Y-m-d)
notifal/onpage/analytics/track_click_classstring $class_nameCSS class (no dot) counting as analytics clicks (default notifal-track-click)
notifal/onpage/analytics/button_click_rowsarray $rows, array $filters, array $paginationPaginated per-button click breakdown (Pro)
notifal/onpage/analytics/format_moneystring $formatted, float $amountPlain-text money string in admin
notifal/onpage/analytics/money_js_configarray $config, mixed $formatterChart money settings for JavaScript

Pro analytics bridge (filters)

Base plugin defines these; Notifal Pro registers implementations when licensed.

HookParametersDescription
notifal/onpage/is_pro_analytics_activebool $activeWhether Pro analytics is active
notifal/onpage/get_pro_analytics_servicemixed $servicePro analytics service instance
notifal/onpage/analytics/get_chart_dataarray $default_data, array $filtersTime-series chart data
notifal/onpage/analytics/get_top_performingarray $default_data, int[] $notification_ids, string $start_date, string $end_dateTop performing notifications
notifal/onpage/analytics/calculate_ctrfloat $default, int $notification_id, array $date_rangeClick-through rate for one notification
notifal/onpage/analytics/calculate_conversion_ratefloat $default, int $notification_id, array $date_rangeConversion rate for one notification
notifal/onpage/analytics/calculate_close_ratefloat $default, int $notification_id, array $date_rangeClose rate for one notification
notifal/onpage/analytics/calculate_period_ctrfloat $default, array $statsPeriod CTR from aggregated stats
notifal/onpage/analytics/calculate_period_conversion_ratefloat $default, array $statsPeriod conversion rate
notifal/onpage/analytics/calculate_period_close_ratefloat $default, array $statsPeriod close rate
notifal/onpage/analytics/calculate_metric_growthfloat $default, float $current, float $previousMetric growth percentage

Conversions (actions and filters)

Actions

HookParametersDescription
notifal/onpage/conversion/recordedarray $conversion_dataAfter a conversion is recorded
notifal/onpage/conversion/status_updatedint $order_id, string $statusConversion status updated for an order

Filters

HookParametersDescription
notifal/onpage/conversion/attribution_windowint $windowAttribution window in seconds (default 7 days)
notifal/onpage/conversion/paid_order_statusesstring[] $statusesWooCommerce order statuses counted as paid (without wc- prefix)

Order attribution (actions and filters)

Shown on WooCommerce order and EDD payment admin screens.

Actions

HookParametersDescription
notifal/order_attribution/before_renderint $orderIdBefore attribution panel renders
notifal/order_attribution/after_renderint $orderIdAfter attribution panel renders

Filters

HookParametersDescription
notifal/order_attribution/dataarray $attributionData, int $orderIdAttribution rows from conversions table
notifal/order_attribution/show_columnbool $showShow Notifal column in order list
notifal/order_attribution/ajax_capabilitystring $capabilityCapability for attribution AJAX
notifal/order_attribution/can_viewbool $allowed, int $orderIdWhether current user can view attribution via AJAX

Dashboard widget (actions and filters)

HookTypeParametersDescription
notifal/dashboard_widget/before_renderactionnoneBefore WP dashboard widget content
notifal/dashboard_widget/after_renderactionnoneAfter WP dashboard widget content
notifal/dashboard_widget/active_notificationsfilterarray $itemsActive notifications list (id, title, edit_url)

Widget render hooks are also listed in Admin UI Extension.

Template click tracking (filter)

HookParametersDescription
notifal/onpage/analytics/track_click_classstring $class_nameClass applied in templates for click tracking

Template HTML processing: Templates and Rendering (notifal/onpage/template/class_placeholders/*).

Hooks series

  1. Hook Reference Hub
  2. Hooks: Lifecycle and Bootstrap
  3. Hooks: Notifications and Eligibility
  4. Hooks: Templates and Rendering
  5. Hooks: Tags and Dynamic Data
  6. Hooks: Display Rules and Content Source
  7. Hooks: Analytics and Tracking (you are here)
  8. Hooks: Admin UI Extension
  9. Hooks: Pro Integration Bridge