HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/advanced-ads-tracking/includes/frontend/class-tracking.php
<?php
/**
 * Frontend Tracking.
 *
 * @package AdvancedAds\Tracking
 * @author  Advanced Ads <info@wpadvancedads.com>
 * @since   2.6.0
 */

namespace AdvancedAds\Tracking\Frontend;

use AdvancedAds\Tracking\Helpers;
use AdvancedAds\Utilities\Conditional;
use AdvancedAds\Framework\Interfaces\Integration_Interface;

defined( 'ABSPATH' ) || exit;

/**
 * Frontend Tracking.
 */
class Tracking implements Integration_Interface {

	/**
	 * Hook into WordPress.
	 *
	 * @return void
	 */
	public function hooks(): void {
		// Load tracking method for AJAX requests.
		if ( wp_doing_ajax() ) {
			$this->load_tracking_method();
		}

		add_action( 'wp', [ $this, 'load_tracking_method' ], 10 );
	}

	/**
	 * Load the scripts and hooks according to the tracking method
	 *
	 * @since 1.0.0
	 */
	public function load_tracking_method() {
		if ( Helpers::ignore_logged_in_user() ) {
			return;
		}

		$method = Helpers::get_tracking_method();

		if ( Conditional::is_amp() && 'onrequest' === $method ) {
			( new Database_Tracking() )->hooks();
			return;
		}

		if ( (bool) apply_filters( 'advanced-ads-tracking-load-header-scripts', true ) ) {
			( new Tracking_Scripts() )->hooks();
		}

		// If this is an ajax call and tracking is frontend, track the ads on shutdown.
		if ( 'frontend' === $method && wp_doing_ajax() ) {
			( new Ajax_Tracking() )->hooks();
		}

		// Database tracking method selected.
		if ( 'onrequest' === $method ) {
			( new Database_Tracking() )->hooks();
		}

		// Parallel analytics tracking && multi-site.
		if ( is_multisite() || 'ga' === $method || Helpers::is_forced_analytics() ) {
			( new Analytics_Tracking() )->hooks();
		}
	}
}