Block/Pixel/Head.php (40 lines of code) (raw):
<?php
/**
 * Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved
 */
namespace Facebook\BusinessExtension\Block\Pixel;
use Facebook\BusinessExtension\Helper\AAMFieldsExtractorHelper;
use Facebook\BusinessExtension\Helper\FBEHelper;
use Facebook\BusinessExtension\Helper\MagentoDataHelper;
use Magento\Framework\ObjectManagerInterface;
use Magento\Framework\Registry;
use Magento\Framework\View\Element\Template\Context;
class Head extends Common
{
    /**
     * @var AAMFieldsExtractorHelper
     */
    protected $aamFieldsExtractorHelper;
    /**
     * Head constructor
     *
     * @param Context $context
     * @param ObjectManagerInterface $objectManager
     * @param Registry $registry
     * @param FBEHelper $fbeHelper
     * @param MagentoDataHelper $magentoDataHelper
     * @param AAMFieldsExtractorHelper $aamFieldsExtractorHelper
     * @param array $data
     */
    public function __construct(
        Context $context,
        ObjectManagerInterface $objectManager,
        Registry $registry,
        FBEHelper $fbeHelper,
        MagentoDataHelper $magentoDataHelper,
        AAMFieldsExtractorHelper $aamFieldsExtractorHelper,
        array $data = []
    ) {
        parent::__construct($context, $objectManager, $registry, $fbeHelper, $magentoDataHelper, $data);
        $this->aamFieldsExtractorHelper = $aamFieldsExtractorHelper;
    }
    /**
     * Returns the user data that will be added in the pixel init code
     * @return string
     */
    public function getPixelInitCode()
    {
        $userDataArray = $this->aamFieldsExtractorHelper->getNormalizedUserData();
        if ($userDataArray) {
            return json_encode(array_filter($userDataArray), JSON_PRETTY_PRINT | JSON_FORCE_OBJECT);
        }
        return '{}';
    }
    /**
     * Create JS code with the data processing options if required
     * To learn about this options in Meta Pixel, read:
     * https://developers.facebook.com/docs/marketing-apis/data-processing-options
     * @return string
     */
    public function getDataProcessingOptionsJSCode()
    {
        return '';
    }
    /**
     * Create the data processing options passed in the Pixel image tag
     * Read about this options in:
     * https://developers.facebook.com/docs/marketing-apis/data-processing-options
     * @return string
     */
    public function getDataProcessingOptionsImgTag()
    {
        return '';
    }
}