"; private static $pixelFbqCodeWithoutScript = " fbq('%s', '%s'%s%s); "; private static $pixelNoscriptCode = " "; public static function initialize($pixel_id = '') { self::$pixelId = $pixel_id; } /** * Gets FB pixel ID */ public static function getPixelId() { return self::$pixelId; } /** * Sets FB pixel ID */ public static function setPixelId($pixel_id) { self::$pixelId = $pixel_id; } /** * Gets FB pixel base code */ public static function getPixelBaseCode() { return self::$pixelBaseCode; } /** * Gets FB pixel init code */ public static function getPixelInitCode($agent_string, $param = array(), $with_script_tag = true) { if (empty(self::$pixelId)) { return; } $code = $with_script_tag ? "" : self::$pixelFbqCodeWithoutScript; $param_str = $param; if (is_array($param)) { $param_str = json_encode($param, JSON_PRETTY_PRINT); } $agent_param = array('agent' => $agent_string); return sprintf( $code, 'init', self::$pixelId, ', ' . $param_str, ', ' . json_encode($agent_param, JSON_PRETTY_PRINT)); } /** * Gets FB pixel track code * $param is the parameter for the pixel event. * If it is an array, FB_INTEGRATION_TRACKING_KEY parameter with $tracking_name value will automatically * be added into the $param. If it is a string, please append the FB_INTEGRATION_TRACKING_KEY parameter * with its tracking name into the JS Parameter block */ public static function getPixelTrackCode($event, $param = array(), $tracking_name = '', $with_script_tag = true) { if (empty(self::$pixelId)) { return; } $code = $with_script_tag ? "" : self::$pixelFbqCodeWithoutScript; $param_str = $param; if (is_array($param)) { if (!empty($tracking_name)) { $param[self::FB_INTEGRATION_TRACKING_KEY] = $tracking_name; } $param_str = json_encode($param, JSON_PRETTY_PRINT); } $class = new \ReflectionClass(__CLASS__); return sprintf( $code, $class->getConstant(strtoupper($event)) !== false ? 'track' : 'trackCustom', $event, ', ' . $param_str, ''); } /** * Gets FB pixel noscript code */ public static function getPixelNoscriptCode($event = 'PageView', $cd = array(), $tracking_name = '') { if (empty(self::$pixelId)) { return; } $data = ''; foreach ($cd as $k => $v) { $data .= '&cd[' . $k . ']=' . $v; } if (!empty($tracking_name)) { $data .= '&cd[' . self::FB_INTEGRATION_TRACKING_KEY . ']=' . $tracking_name; } return sprintf( self::$pixelNoscriptCode, self::$pixelId, $event, $data); } /** * Gets FB pixel AddToCart code */ public static function getPixelAddToCartCode($param = array(), $tracking_name = '', $with_script_tag = true) { return self::getPixelTrackCode( self::ADDTOCART, $param, $tracking_name, $with_script_tag); } /** * Gets FB pixel InitiateCheckout code */ public static function getPixelInitiateCheckoutCode($param = array(), $tracking_name = '', $with_script_tag = true) { return self::getPixelTrackCode( self::INITIATECHECKOUT, $param, $tracking_name, $with_script_tag); } /** * Gets FB pixel Lead code */ public static function getPixelLeadCode($param = array(), $tracking_name = '', $with_script_tag = true) { return self::getPixelTrackCode( self::LEAD, $param, $tracking_name, $with_script_tag); } /** * Gets FB pixel PageView code */ public static function getPixelPageViewCode($param = array(), $tracking_name = '', $with_script_tag = true) { return self::getPixelTrackCode( self::PAGEVIEW, $param, $tracking_name, $with_script_tag); } /** * Gets FB pixel Purchase code */ public static function getPixelPurchaseCode($param = array(), $tracking_name = '', $with_script_tag = true) { return self::getPixelTrackCode( self::PURCHASE, $param, $tracking_name, $with_script_tag); } /** * Gets FB pixel ViewContent code */ public static function getPixelViewContentCode($param = array(), $tracking_name = '', $with_script_tag = true) { return self::getPixelTrackCode( self::VIEWCONTENT, $param, $tracking_name, $with_script_tag); } }