WordPress Meta Pixel Integration | Blue Frog Docs

WordPress Meta Pixel Integration

Integrate Meta Pixel with WordPress for Facebook and Instagram advertising.

WordPress Meta Pixel Integration

Complete guide to setting up Meta Pixel (Facebook Pixel) on your WordPress site for conversion tracking and audience building.

Getting Started

Meta Pixel Setup Guide

Step-by-step instructions for installing Meta Pixel on WordPress.

Event Tracking

Configure standard and custom events for comprehensive tracking.

Why Meta Pixel for WordPress?

Meta Pixel enables powerful advertising capabilities:

  • Conversion Tracking: Measure ad effectiveness
  • Custom Audiences: Retarget site visitors
  • Lookalike Audiences: Find similar customers
  • Dynamic Ads: Show personalized product ads
  • Attribution: Understand customer journey

Installation Methods

Method 1: Official Meta Pixel Plugin

Meta offers an official WordPress plugin for seamless integration:

  1. Install the Plugin

    • Go to Plugins > Add New
    • Search for "Meta Pixel for WordPress"
    • Click Install Now then Activate
  2. Configure the Plugin

    • Navigate to Settings > Meta Pixel
    • Enter your Pixel ID (from Meta Events Manager)
    • Click Save Changes
  3. Enable Features

    • Automatic Advanced Matching: Enable for better attribution
    • WooCommerce Integration: Auto-enable if WooCommerce detected
    • Content Events: Enable for blog/page tracking

Advantages:

  • Official Meta support
  • Automatic updates
  • Built-in WooCommerce integration
  • Advanced matching included
  • No coding required

Limitations:

  • Limited customization options
  • May conflict with other tracking plugins
  • Premium features require upgrade

Popular third-party plugin with extensive features:

  1. Installation

    • Download from WordPress.org or premium version
    • Install and activate plugin
    • Navigate to PixelYourSite settings
  2. Configure Meta Pixel

    • Enter Pixel ID in Facebook Pixel section
    • Enable Automatic Events
    • Configure Dynamic Events
  3. WooCommerce Integration

    • Enable WooCommerce tracking
    • Configure product parameters
    • Set up dynamic remarketing
// PixelYourSite adds events automatically for:
// - PageView (all pages)
// - ViewContent (products, posts)
// - AddToCart (WooCommerce)
// - InitiateCheckout (checkout page)
// - Purchase (order received)

Features:

  • Advanced e-commerce tracking
  • Custom audiences builder
  • Event testing tools
  • CAPI integration (Pro)
  • Multi-pixel support
  • Extensive WooCommerce parameters

Method 3: Manual Header/Footer Code

For complete control without plugins:

  1. Get Your Pixel Code

    • Go to Meta Events Manager
    • Select your pixel
    • Copy the base code
  2. Add to WordPress Theme

Option A: Using functions.php

// In your theme's functions.php
function add_meta_pixel() {
    ?>
    <!-- Meta Pixel Code -->
    <script>
    !function(f,b,e,v,n,t,s)
    {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
    n.callMethod.apply(n,arguments):n.queue.push(arguments)};
    if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
    n.queue=[];t=b.createElement(e);t.async=!0;
    t.src=v;s=b.getElementsByTagName(e)[0];
    s.parentNode.insertBefore(t,s)}(window, document,'script',
    'https://connect.facebook.net/en_US/fbevents.js');
    fbq('init', '<?php echo esc_js( '123456789' ); ?>');
    fbq('track', 'PageView');
    </script>
    <noscript>
        <img height="1" width="1" style="display:none"
             src="https://www.facebook.com/tr?id=123456789&ev=PageView&noscript=1"/>
    </noscript>
    <!-- End Meta Pixel Code -->
    <?php
}
add_action('wp_head', 'add_meta_pixel');

Option B: Using Header/Footer Plugin

  • Install "Insert Headers and Footers" plugin
  • Paste pixel code in header section
  • Save changes

Option C: Theme Customizer

// Add to Customizer
function meta_pixel_customizer($wp_customize) {
    $wp_customize->add_section('meta_pixel_section', array(
        'title' => 'Meta Pixel',
        'priority' => 30,
    ));

    $wp_customize->add_setting('meta_pixel_id', array(
        'default' => '',
        'sanitize_callback' => 'sanitize_text_field',
    ));

    $wp_customize->add_control('meta_pixel_id', array(
        'label' => 'Meta Pixel ID',
        'section' => 'meta_pixel_section',
        'type' => 'text',
    ));
}
add_action('customize_register', 'meta_pixel_customizer');

// Output pixel in header
function output_meta_pixel() {
    $pixel_id = get_theme_mod('meta_pixel_id');
    if (!empty($pixel_id)) {
        ?>
        <script>
        fbq('init', '<?php echo esc_js($pixel_id); ?>');
        fbq('track', 'PageView');
        </script>
        <?php
    }
}
add_action('wp_head', 'output_meta_pixel');

Method 4: Google Tag Manager

For centralized tag management:

  1. Install GTM (see GTM guide)
  2. Create Meta Pixel tag in GTM container
  3. Configure triggers for different events
  4. Publish container

Benefits:

  • Manage all tracking tags centrally
  • Version control and rollback
  • Team collaboration features
  • Advanced trigger logic
  • Testing environments

Standard Events Implementation

Automatic PageView Tracking

All methods above include automatic PageView tracking:

// Fires on every page load
fbq('track', 'PageView');

ViewContent Events

Track content views on posts and pages:

// Add to functions.php
function meta_pixel_view_content() {
    if (is_single() || is_page()) {
        global $post;
        ?>
        <script>
        fbq('track', 'ViewContent', {
            content_name: '<?php echo esc_js($post->post_title); ?>',
            content_category: '<?php echo esc_js(get_the_category($post->ID)[0]->name ?? 'Page'); ?>',
            content_ids: ['<?php echo esc_js($post->ID); ?>'],
            content_type: '<?php echo esc_js($post->post_type); ?>'
        });
        </script>
        <?php
    }
}
add_action('wp_footer', 'meta_pixel_view_content');

Lead Events (Contact Forms)

Contact Form 7 Integration

// Track Contact Form 7 submissions
function meta_pixel_cf7_tracking() {
    if (function_exists('wpcf7_add_form_tag')) {
        ?>
        <script>
        document.addEventListener('wpcf7mailsent', function(event) {
            fbq('track', 'Lead', {
                content_name: 'Contact Form',
                content_category: event.detail.contactFormId
            });
        }, false);
        </script>
        <?php
    }
}
add_action('wp_footer', 'meta_pixel_cf7_tracking');

Gravity Forms Integration

// Track Gravity Forms submissions
add_action('gform_after_submission', 'meta_pixel_gravity_forms', 10, 2);
function meta_pixel_gravity_forms($entry, $form) {
    ?>
    <script>
    fbq('track', 'Lead', {
        content_name: '<?php echo esc_js($form['title']); ?>',
        content_category: 'Gravity Form',
        value: <?php echo isset($entry['payment_amount']) ? floatval($entry['payment_amount']) : 0; ?>,
        currency: 'USD'
    });
    </script>
    <?php
}

WPForms Integration

// Track WPForms submissions
add_action('wpforms_process_complete', 'meta_pixel_wpforms', 10, 4);
function meta_pixel_wpforms($fields, $entry, $form_data, $entry_id) {
    ?>
    <script>
    fbq('track', 'Lead', {
        content_name: '<?php echo esc_js($form_data['settings']['form_title']); ?>',
        content_category: 'WPForms'
    });
    </script>
    <?php
}

Search Events

Track site searches:

// Track WordPress search
function meta_pixel_search() {
    if (is_search()) {
        $search_query = get_search_query();
        ?>
        <script>
        fbq('track', 'Search', {
            search_string: '<?php echo esc_js($search_query); ?>',
            content_category: 'Site Search'
        });
        </script>
        <?php
    }
}
add_action('wp_footer', 'meta_pixel_search');

WooCommerce Integration

Comprehensive E-commerce Tracking

Product View Tracking

// Enhanced product view tracking
function meta_pixel_woo_view_product() {
    if (!is_product()) return;

    global $product;
    ?>
    <script>
    fbq('track', 'ViewContent', {
        content_name: '<?php echo esc_js($product->get_name()); ?>',
        content_ids: ['<?php echo esc_js($product->get_sku() ?: $product->get_id()); ?>'],
        content_type: 'product',
        value: <?php echo $product->get_price(); ?>,
        currency: '<?php echo get_woocommerce_currency(); ?>',
        content_category: '<?php echo esc_js(strip_tags(wc_get_product_category_list($product->get_id()))); ?>'
    });
    </script>
    <?php
}
add_action('wp_footer', 'meta_pixel_woo_view_product');

Add to Cart Tracking

// AJAX add to cart tracking
function meta_pixel_woo_add_to_cart_script() {
    ?>
    <script>
    jQuery(document).ready(function($) {
        $(document.body).on('added_to_cart', function(event, fragments, cart_hash, button) {
            var productId = button.data('product_id');
            var productData = button.closest('.product').find('.product-data');

            fbq('track', 'AddToCart', {
                content_ids: [productData.data('sku') || productId],
                content_name: productData.data('name'),
                content_type: 'product',
                value: parseFloat(productData.data('price')),
                currency: '<?php echo get_woocommerce_currency(); ?>'
            });
        });
    });
    </script>
    <?php
}
add_action('wp_footer', 'meta_pixel_woo_add_to_cart_script');

Initiate Checkout Tracking

// Track checkout page view
function meta_pixel_woo_initiate_checkout() {
    if (!is_checkout() || is_order_received_page()) return;

    $cart = WC()->cart;
    $cart_items = array();
    $cart_value = 0;

    foreach ($cart->get_cart() as $cart_item) {
        $product = $cart_item['data'];
        $cart_items[] = $product->get_sku() ?: $product->get_id();
        $cart_value += $cart_item['line_total'];
    }
    ?>
    <script>
    fbq('track', 'InitiateCheckout', {
        content_ids: <?php echo json_encode($cart_items); ?>,
        content_type: 'product',
        value: <?php echo $cart_value; ?>,
        currency: '<?php echo get_woocommerce_currency(); ?>',
        num_items: <?php echo $cart->get_cart_contents_count(); ?>
    });
    </script>
    <?php
}
add_action('wp_footer', 'meta_pixel_woo_initiate_checkout');

Purchase Tracking

// Track completed purchases
function meta_pixel_woo_purchase($order_id) {
    $order = wc_get_order($order_id);

    $content_ids = array();
    $contents = array();

    foreach ($order->get_items() as $item) {
        $product = $item->get_product();
        $content_ids[] = $product->get_sku() ?: $product->get_id();
        $contents[] = array(
            'id' => $product->get_sku() ?: $product->get_id(),
            'quantity' => $item->get_quantity(),
            'item_price' => $product->get_price()
        );
    }
    ?>
    <script>
    fbq('track', 'Purchase', {
        content_ids: <?php echo json_encode($content_ids); ?>,
        contents: <?php echo json_encode($contents); ?>,
        content_type: 'product',
        value: <?php echo $order->get_total(); ?>,
        currency: '<?php echo $order->get_currency(); ?>',
        num_items: <?php echo $order->get_item_count(); ?>,
        transaction_id: '<?php echo $order->get_order_number(); ?>'
    });
    </script>
    <?php
}
add_action('woocommerce_thankyou', 'meta_pixel_woo_purchase');

Dynamic Product Ads (DPA)

Enhanced product parameters for catalog sales:

function meta_pixel_woo_dpa_params() {
    if (!is_product()) return;

    global $product;

    // Get additional product data
    $categories = array();
    foreach ($product->get_category_ids() as $cat_id) {
        $cat = get_term($cat_id);
        $categories[] = $cat->name;
    }

    $availability = $product->is_in_stock() ? 'in stock' : 'out of stock';
    ?>
    <script>
    fbq('track', 'ViewContent', {
        content_ids: ['<?php echo $product->get_sku() ?: $product->get_id(); ?>'],
        content_name: '<?php echo esc_js($product->get_name()); ?>',
        content_category: '<?php echo esc_js(implode(' > ', $categories)); ?>',
        content_type: 'product',
        value: <?php echo $product->get_price(); ?>,
        currency: '<?php echo get_woocommerce_currency(); ?>',
        // DPA-specific parameters
        availability: '<?php echo $availability; ?>',
        condition: 'new',
        brand: '<?php echo esc_js(get_post_meta($product->get_id(), '_brand', true)); ?>'
    });
    </script>
    <?php
}

Advanced Matching

User Data Integration

Improve attribution with customer data:

function meta_pixel_advanced_matching() {
    if (!is_user_logged_in()) return;

    $user = wp_get_current_user();

    // Hash user data for privacy
    $user_data = array(
        'em' => hash('sha256', strtolower(trim($user->user_email))),
        'fn' => hash('sha256', strtolower(trim($user->first_name))),
        'ln' => hash('sha256', strtolower(trim($user->last_name)))
    );

    // Add billing data if available (WooCommerce)
    if (class_exists('WooCommerce')) {
        $phone = get_user_meta($user->ID, 'billing_phone', true);
        $city = get_user_meta($user->ID, 'billing_city', true);
        $state = get_user_meta($user->ID, 'billing_state', true);
        $postcode = get_user_meta($user->ID, 'billing_postcode', true);
        $country = get_user_meta($user->ID, 'billing_country', true);

        if ($phone) $user_data['ph'] = hash('sha256', preg_replace('/\D/', '', $phone));
        if ($city) $user_data['ct'] = hash('sha256', strtolower(trim($city)));
        if ($state) $user_data['st'] = hash('sha256', strtolower(trim($state)));
        if ($postcode) $user_data['zp'] = hash('sha256', strtolower(trim($postcode)));
        if ($country) $user_data['country'] = hash('sha256', strtolower(trim($country)));
    }
    ?>
    <script>
    fbq('init', 'YOUR_PIXEL_ID', <?php echo json_encode($user_data); ?>);
    </script>
    <?php
}
add_action('wp_head', 'meta_pixel_advanced_matching', 5);

Order Data for Purchase Events

function meta_pixel_purchase_advanced_matching($order_id) {
    $order = wc_get_order($order_id);

    $user_data = array(
        'em' => hash('sha256', strtolower(trim($order->get_billing_email()))),
        'fn' => hash('sha256', strtolower(trim($order->get_billing_first_name()))),
        'ln' => hash('sha256', strtolower(trim($order->get_billing_last_name()))),
        'ph' => hash('sha256', preg_replace('/\D/', '', $order->get_billing_phone())),
        'ct' => hash('sha256', strtolower(trim($order->get_billing_city()))),
        'st' => hash('sha256', strtolower(trim($order->get_billing_state()))),
        'zp' => hash('sha256', strtolower(trim($order->get_billing_postcode()))),
        'country' => hash('sha256', strtolower(trim($order->get_billing_country())))
    );

    return $user_data;
}

Conversions API (CAPI) Integration

Send server-side events for improved reliability:

Prerequisites

  • PHP 7.4 or higher
  • Composer (for official SDK)
  • Meta Pixel ID and Access Token

Installation via Composer

composer require facebook/php-business-sdk

WordPress Implementation

// functions.php
require_once __DIR__ . '/vendor/autoload.php';

use FacebookAds\Api;
use FacebookAds\Object\ServerSide\Event;
use FacebookAds\Object\ServerSide\EventRequest;
use FacebookAds\Object\ServerSide\UserData;
use FacebookAds\Object\ServerSide\CustomData;

// Initialize API
define('META_PIXEL_ID', 'your-pixel-id');
define('META_ACCESS_TOKEN', 'your-access-token');

Api::init(null, null, META_ACCESS_TOKEN);

// Send purchase event via CAPI
function meta_capi_purchase($order_id) {
    $order = wc_get_order($order_id);

    // User data
    $user_data = (new UserData())
        ->setEmails([hash('sha256', $order->get_billing_email())])
        ->setFirstNames([hash('sha256', $order->get_billing_first_name())])
        ->setLastNames([hash('sha256', $order->get_billing_last_name())])
        ->setPhones([hash('sha256', preg_replace('/\D/', '', $order->get_billing_phone()))])
        ->setCity(hash('sha256', $order->get_billing_city()))
        ->setState(hash('sha256', $order->get_billing_state()))
        ->setZipCode(hash('sha256', $order->get_billing_postcode()))
        ->setCountryCode(hash('sha256', $order->get_billing_country()))
        ->setClientIpAddress($_SERVER['REMOTE_ADDR'])
        ->setClientUserAgent($_SERVER['HTTP_USER_AGENT'])
        ->setFbc($_COOKIE['_fbc'] ?? null)
        ->setFbp($_COOKIE['_fbp'] ?? null);

    // Custom data
    $custom_data = (new CustomData())
        ->setValue($order->get_total())
        ->setCurrency($order->get_currency())
        ->setOrderId($order->get_order_number());

    // Create event
    $event = (new Event())
        ->setEventName('Purchase')
        ->setEventTime(time())
        ->setEventSourceUrl(get_permalink(wc_get_page_id('checkout')))
        ->setActionSource('website')
        ->setUserData($user_data)
        ->setCustomData($custom_data)
        ->setEventId('order_' . $order_id); // For deduplication

    // Send event
    $request = (new EventRequest(META_PIXEL_ID))
        ->setEvents([$event]);

    $response = $request->execute();
}
add_action('woocommerce_payment_complete', 'meta_capi_purchase');

Event Deduplication

Prevent double-counting browser and server events:

// Browser side with event_id
function meta_pixel_purchase_with_event_id($order_id) {
    $order = wc_get_order($order_id);
    $event_id = 'order_' . $order_id; // Same as CAPI
    ?>
    <script>
    fbq('track', 'Purchase', {
        value: <?php echo $order->get_total(); ?>,
        currency: '<?php echo $order->get_currency(); ?>',
        transaction_id: '<?php echo $order->get_order_number(); ?>'
    }, {
        eventID: '<?php echo $event_id; ?>'
    });
    </script>
    <?php
}

Privacy and Compliance

Integrate with cookie consent plugins:

function meta_pixel_with_consent() {
    ?>
    <script>
    if (typeof cnArgs !== 'undefined') {
        // Wait for consent
        document.addEventListener('cn_before_accept', function() {
            loadMetaPixel();
        });
    } else {
        loadMetaPixel();
    }

    function loadMetaPixel() {
        !function(f,b,e,v,n,t,s) {
            // Pixel base code
        }(window, document,'script',
          'https://connect.facebook.net/en_US/fbevents.js');

        fbq('init', 'YOUR_PIXEL_ID');
        fbq('track', 'PageView');
    }
    </script>
    <?php
}
add_action('wp_head', 'meta_pixel_with_consent');

CookieYes Integration

function meta_pixel_cookieyes() {
    ?>
    <script>
    document.addEventListener('cookieyes_consent_update', function(e) {
        if (e.detail.accepted.includes('analytics')) {
            loadMetaPixel();
        }
    });
    </script>
    <?php
}

Limited Data Use (CCPA)

function meta_pixel_ldu() {
    // Detect California users or apply globally
    $is_california = isset($_SERVER['HTTP_CF_IPCOUNTRY']) && $_SERVER['HTTP_CF_IPCOUNTRY'] === 'US';

    if ($is_california) {
        ?>
        <script>
        fbq('dataProcessingOptions', ['LDU'], 1, 1000);
        </script>
        <?php
    }
}
add_action('wp_head', 'meta_pixel_ldu', 3);

Multisite Support

Handle pixel installation across WordPress multisite:

// Network-wide pixel with site-specific IDs
function meta_pixel_multisite() {
    $blog_id = get_current_blog_id();

    // Define pixel IDs per site
    $pixel_ids = array(
        1 => '123456789', // Main site
        2 => '987654321', // Subsite 1
        3 => '456789123'  // Subsite 2
    );

    $pixel_id = $pixel_ids[$blog_id] ?? false;

    if ($pixel_id) {
        ?>
        <script>
        fbq('init', '<?php echo esc_js($pixel_id); ?>');
        fbq('track', 'PageView');
        </script>
        <?php
    }
}
add_action('wp_head', 'meta_pixel_multisite');

Performance Optimization

Lazy Load Pixel

function meta_pixel_lazy_load() {
    ?>
    <script>
    window.addEventListener('load', function() {
        setTimeout(function() {
            // Load pixel after 2 seconds
            !function(f,b,e,v,n,t,s) {
                // Pixel code here
            }(window, document,'script',
              'https://connect.facebook.net/en_US/fbevents.js');

            fbq('init', 'YOUR_PIXEL_ID');
            fbq('track', 'PageView');
        }, 2000);
    });
    </script>
    <?php
}

Conditional Loading

// Only load on specific post types or pages
function meta_pixel_conditional() {
    // Skip on admin, feeds, etc.
    if (is_admin() || is_feed() || is_robots() || is_trackback()) {
        return;
    }

    // Load only on posts, pages, and products
    if (is_singular(['post', 'page', 'product'])) {
        add_action('wp_head', 'meta_pixel_base_code');
    }
}
add_action('template_redirect', 'meta_pixel_conditional');

Troubleshooting

Debug Mode

Enable debug logging:

function meta_pixel_debug($order_id) {
    if (defined('WP_DEBUG') && WP_DEBUG) {
        error_log('Meta Pixel: Purchase event for order ' . $order_id);

        $order = wc_get_order($order_id);
        error_log('Order total: ' . $order->get_total());
        error_log('Order currency: ' . $order->get_currency());
    }
}
add_action('woocommerce_thankyou', 'meta_pixel_debug', 5);

Common WordPress Issues

Issue: Pixel Conflicts with Caching

// Exclude pixel from caching
function exclude_meta_pixel_from_cache() {
    if (!is_user_logged_in()) {
        header('Cache-Control: no-cache, must-revalidate, max-age=0');
    }
}
add_action('template_redirect', 'exclude_meta_pixel_from_cache');

Issue: Theme Header Not Including Pixel

// Verify wp_head() is called
// Check theme header.php contains:
<?php wp_head(); ?>

Issue: Plugin Conflicts

// Check for conflicts
function check_meta_pixel_conflicts() {
    ?>
    <script>
    console.log('fbq defined:', typeof fbq !== 'undefined');
    console.log('Multiple pixels:', window._fbq_instances);
    </script>
    <?php
}
add_action('wp_footer', 'check_meta_pixel_conflicts', 9999);

Testing Checklist

  • Pixel fires on all page types
  • Events tracked correctly in Events Manager
  • WooCommerce events capturing product data
  • Advanced matching working (check EMQ score)
  • No JavaScript console errors
  • Meta Pixel Helper shows green icon
  • Deduplication working (browser + server)
  • Privacy compliance implemented
  • Performance impact acceptable

Best Practices

Code Organization

// Create a dedicated class
class Meta_Pixel_Integration {
    private $pixel_id;

    public function __construct($pixel_id) {
        $this->pixel_id = $pixel_id;
        $this->init_hooks();
    }

    private function init_hooks() {
        add_action('wp_head', [$this, 'output_base_code']);
        add_action('woocommerce_thankyou', [$this, 'track_purchase']);
        // Add more hooks
    }

    public function output_base_code() {
        // Pixel base code
    }

    public function track_purchase($order_id) {
        // Purchase tracking
    }
}

// Initialize
if (class_exists('WooCommerce')) {
    new Meta_Pixel_Integration('YOUR_PIXEL_ID');
}

Security Considerations

// Always sanitize and escape
function safe_meta_pixel_output($product_name) {
    ?>
    <script>
    fbq('track', 'ViewContent', {
        content_name: '<?php echo esc_js($product_name); ?>'
    });
    </script>
    <?php
}

// Use wp_nonce for AJAX requests
// Validate permissions before processing

Documentation

/**
 * Meta Pixel Integration for WordPress
 *
 * Features:
 * - Automatic PageView tracking
 * - WooCommerce e-commerce events
 * - Contact Form 7 lead tracking
 * - Advanced matching enabled
 * - CAPI integration for purchases
 *
 * Events Tracked:
 * - PageView: All pages
 * - ViewContent: Products, posts
 * - AddToCart: WooCommerce
 * - InitiateCheckout: Checkout page
 * - Purchase: Order completion
 * - Lead: Contact form submissions
 *
 * @since 1.0.0
 * @author Your Name
 */

Plugin Recommendations

Free Plugins

  1. Meta Pixel for WordPress (Official)

    • Best for basic setups
    • Automatic updates from Meta
  2. PixelYourSite (Free version)

    • Good WooCommerce integration
    • Event testing tools
  3. Insert Headers and Footers

    • Simple code injection
    • No tracking features

Premium Plugins

  1. PixelYourSite Professional ($99/year)

    • Advanced WooCommerce tracking
    • CAPI integration
    • Multi-pixel support
    • Custom audiences builder
  2. Pixel Caffeine ($79/year)

    • WooCommerce optimization
    • Server-side tracking
    • Advanced matching
  3. Conversios ($149/year)

    • Multiple platform support
    • GA4 + Meta Pixel
    • Enhanced e-commerce

Migration Guide

From Facebook Pixel to Meta Pixel

Pixel IDs remain the same, but update references:

// Old
fbq('init', 'facebook_pixel_id');

// New (same ID, just terminology change)
fbq('init', 'meta_pixel_id');

From Plugin to Custom Code

  1. Export plugin settings
  2. Document all tracked events
  3. Implement custom code
  4. Test thoroughly
  5. Deactivate plugin
  6. Monitor for 30 days
// SYS.FOOTER