: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
if ( ! defined( 'ABSPATH' ) ) {
add_action('amp_post_template_footer','ampforwp_analytics',11);
function ampforwp_analytics() {
// 10.1 Analytics Support added for Google Analytics
global $redux_builder_amp;
if ( true == ampforwp_get_setting('ampforwp-ga-switch') && false == ampforwp_get_setting('amp-use-gtm-option') ){
$ampforwp_ga_fields = array();
$ga_account = ampforwp_get_setting('ga-feild');
$ga_account = str_replace(' ', '', $ga_account);
$ga_fields['vars']['config'] = array(
$ga_fields['triggers'] = array(
if (true == ampforwp_get_setting('ampforwp-infinite-scroll')) {
$url = ampforwp_url_controller(get_the_permalink());
$ga_fields['requests'] = array(
'nextpage' => esc_url($url) ,
$ga_fields['triggers'] = array(
'trackScrollThrough'=> array(
'on'=>'amp-next-page-scroll',
'trackClickThrough'=> array(
'on'=>'amp-next-page-click',
if ( true == ampforwp_get_setting('ampforwp-ga-field-anonymizeIP')) {
$ga_fields['vars']['anonymizeIP'] = 'true';
if ( ampforwp_get_setting('ampforwp-ga-field-linker') == true ) {
$ga_fields['vars']['linkers'] = array(
if (ampforwp_get_setting('ampforwp-ga-field-author')) {
$author = ampforwp_get_setting('ampforwp-ga-field-author-index');
$ga_fields['vars']['config'][$author] = get_the_author_meta('display_name');
$ga_fields = apply_filters('ampforwp_google_analytics_fields', $ga_fields );
$ampforwp_ga_fields = wp_json_encode( $ga_fields);
if( ampforwp_get_setting('ampforwp-ga-field-advance-switch') ){
$ampforwp_ga_fields = apply_filters('ampforwp_advance_google_analytics', $ampforwp_ga_fields );
$ampforwp_ga_fields = preg_replace('!/\*.*?\*/!s', '', $ampforwp_ga_fields);
$ampforwp_ga_fields = preg_replace('/\n\s*\n/', '', $ampforwp_ga_fields);
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="gtag" id="analytics1">
<script type="application/json">
<?php echo $ampforwp_ga_fields; ?>
<?php } else if (!empty($ga_account) && $ga_account != "UA-XXXXX-Y") { ?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="gtag" id="analytics1" data-credentials="include" >
<script type="application/json">
<?php echo $ampforwp_ga_fields; ?>
}//code ends for supporting Google Analytics
// Code Starts for Google Analytics 4
// Original code by David Vallejo
// ga4.json - https://github.com/analytics-debugger/google-analytics-4-for-amp
if( function_exists('ampforwp_get_setting') && ampforwp_get_setting('ampforwp-ga4-switch') == true ){
$ampforwp_ga4_fields = array();
$ga4_id = ampforwp_get_setting('ampforwp-ga4-id');
$ga4_id = str_replace(' ', '', $ga4_id);
$url = parse_url( home_url() , PHP_URL_HOST );
$ga4_fields['vars']['config'] = array(
$ga4_fields['triggers'] = array(
if( ampforwp_get_setting('ampforwp-ga4-wvt') == 1 ){
$ga4_fields['triggers'] = array(
'maxTimerLength' => 4.99,
'event_name' => 'web_vitals',
'event__num_first_contenful_paint' => 'FIRST_CONTENTFUL_PAINT',
'event__num_first_viewport_ready' => 'FIRST_VIEWPORT_READY',
'event__num_make_body_visible' => 'MAKE_BODY_VISIBLE',
'event__num_largest_contentful_paint' => 'LARGEST_CONTENTFUL_PAINT',
'event__num_cumulative_layout_shift' => 'CUMULATIVE_LAYOUT_SHIFT',
if( ampforwp_get_setting('ampforwp-ga4-ptt') == 1 ){
$ga4_fields['triggers'] = array(
'performanceTiming'=> array(
'sampleOn' => '${clientId}',
'event_name' => 'performance_timing',
'event__num_page_load_time' => '${pageLoadTime}',
'event__num_domain_lookup_time' => '${domainLookupTime}',
'event__num_tcp_connect_time' => '${tcpConnectTime}',
'event__num_redirect_time' => '${redirectTime}',
'event__num_server_response_time' => '${serverResponseTime}',
'event__num_page_download_time' => '${pageDownloadTime}',
'event__num_content_download_time' => '${contentLoadTime}',
'event__num_dom_interactive_time' => '${domInteractiveTime}',
if ( ampforwp_get_setting('ampforwp-ga4-gce') == 1 ) {
$ga4_fields['extraUrlParams'] = array(
'gcs' => '$IF($EQUALS(true,TRUE),G10$IF($EQUALS(CONSENT_STATE,sufficient),1,0),)',
$ampforwp_ga4_fields = wp_json_encode( $ga4_fields);
if( ampforwp_get_setting('ampforwp-ga4-field-advance-switch') ){
$ampforwp_ga4_fields = apply_filters('ampforwp_advance_google_analytics4', $ampforwp_ga4_fields );
$ampforwp_ga4_fields = preg_replace('!/\*.*?\*/!s', '', $ampforwp_ga4_fields);
$ampforwp_ga4_fields = preg_replace('/\n\s*\n/', '', $ampforwp_ga4_fields);
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="gtag" id="analytics1">
<script type="application/json">
<?php echo $ampforwp_ga4_fields; ?>
<?php } else if (!empty($ga4_id)) { ?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="gtag" id="analytics1" data-credentials="include" >
<script type="application/json">
<?php echo $ampforwp_ga4_fields; ?>
//Code Ends for Google Analytics 4
// 10.2 Analytics Support added for clicky.com
if ( true == ampforwp_get_setting('amp-clicky-switch') ) {
$clicky_site_id = ampforwp_get_setting('clicky-site-id');
'site_id'=> $clicky_site_id,
$clicky_fields = apply_filters('ampforwp_clicky_analytics', $clicky_fields );?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="clicky">
<script type="application/json">
<?php echo wp_json_encode( $clicky_fields); ?>
// 10.2 Analytics Support added for segment.com
if ( true == ampforwp_get_setting('ampforwp-Segment-switch') ) {
$segment = ampforwp_get_setting('sa-feild');
$segment_fields = apply_filters('ampforwp_segment_analytics', $segment_fields );?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="segment">
<script type="application/json">
<?php echo wp_json_encode( $segment_fields); ?>
// 10.3 Analytics Support added for Piwik
if( true == ampforwp_get_setting('ampforwp-Piwik-switch')){
$idsite = ampforwp_get_setting('pa-feild');
$title = urlencode(get_the_title());
$url = get_the_permalink();
if (function_exists( 'is_ssl' ) && !is_ssl()) {
$url = ampforwp_remove_protocol(ampforwp_url_controller($url));
ampforwp_url_controller($url);
if(isset($_SERVER['HTTP_REFERER'])) {
$referer = $_SERVER['HTTP_REFERER'];
$piwik_api = str_replace("YOUR_SITE_ID", '1', $idsite[0]);
$piwik_api = str_replace("TITLE", esc_attr($title), $piwik_api);
$piwik_api = str_replace("DOCUMENT_REFERRER", esc_url($referer), $piwik_api);
$piwik_api = str_replace("CANONICAL_URL", esc_url($url), $piwik_api);
$piwik_api = str_replace("RANDOM", intval($rand), $piwik_api);
<amp-pixel src="<?php echo $piwik_api; // XXS ok, escaped above?>"></amp-pixel>
// 10.4 Analytics Support added for quantcast
if ( true == ampforwp_get_setting('ampforwp-Quantcast-switch')) {
$quantcast = ampforwp_get_setting('amp-quantcast-analytics-code');
$quantcast_fields = array(
'labels'=> array("AMPProject")
$quantcast_fields = apply_filters('ampforwp_quantcast_analytics', $quantcast_fields );?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="quantcast">
<script type="application/json">
<?php echo wp_json_encode( $quantcast_fields); ?>
// 10.5 Analytics Support added for comscore
if ( true == ampforwp_get_setting('ampforwp-comScore-switch')) {
$comscore_c1 = ampforwp_get_setting('amp-comscore-analytics-code-c1');
$comscore_c2 = ampforwp_get_setting('amp-comscore-analytics-code-c2');
$comscore_fields = array(
'extraUrlParams'=> array(
$comscore_fields = apply_filters('ampforwp_comscore_analytics', $comscore_fields );?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="comscore">
<script type="application/json">
<?php echo wp_json_encode( $comscore_fields); ?>
// 10.6 Analytics Support added for Effective Measure
if( true == ampforwp_get_setting('ampforwp-Effective-switch')) { ?>
<!-- BEGIN EFFECTIVE MEASURE CODE -->
<amp-pixel <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo ampforwp_get_setting('eam-feild'); ?>" />
<!--END EFFECTIVE MEASURE CODE -->
// 10.7 Analytics Support added for StatCounter
if( true == ampforwp_get_setting('ampforwp-StatCounter-switch')) { ?>
<!-- BEGIN StatCounter CODE -->
<amp-pixel <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo ampforwp_get_setting('sc-feild'); ?>" >
<!--END StatCounter CODE -->
// 10.8 Analytics Support added for Histats Analytics
if( true == ampforwp_get_setting('ampforwp-Histats-switch')) {
$url = add_query_arg(esc_attr(ampforwp_get_setting('histats-field')), '', '//sstatic1.histats.com/0.gif');
$url = add_query_arg('101', '', $url); ?>
<!-- BEGIN Histats CODE -->
<amp-pixel <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo esc_url_raw($url); ?>" >
// 10.9 Analytics Support added for Yandex Metrika Analytics
if ( true == ampforwp_get_setting('ampforwp-Yandex-switch')){
$yandex = ampforwp_get_setting('amp-Yandex-Metrika-analytics-code');
$yandex_fields = apply_filters('ampforwp_yandex_analytics', $yandex_fields );?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="metrika">
<script type="application/json">
<?php echo wp_json_encode( $yandex_fields); ?>
<?php }//code ends for supporting Yandex Metrika Analytics
// 10.10 Analytics Support added for Chartbeat Analytics
if ( true == ampforwp_get_setting('ampforwp-Chartbeat-switch')){
$chartbeat = ampforwp_get_setting('amp-Chartbeat-analytics-code');
$ampforwp_chartbeat_fields = array(
'domain'=>ampforwp_remove_protocol(site_url()),
'title'=>get_the_title(),
'authors'=>get_the_author_meta('display_name'),
$ampforwp_chartbeat_fields = apply_filters('ampforwp_chartbeat_analytics', $ampforwp_chartbeat_fields );?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="chartbeat">
<script type="application/json">
<?php echo wp_json_encode( $ampforwp_chartbeat_fields); ?>
}//code ends for supporting Chartbeat Analytics
// 10.11 Analytics Support added for Alexa Metrics
if ( true == ampforwp_get_setting('ampforwp-Alexa-switch')) {
$alexa = ampforwp_get_setting('ampforwp-alexa-account');
$domain = ampforwp_get_setting('ampforwp-alexa-domain');
$alexa_fields = apply_filters('ampforwp_alexa_analytics', $alexa_fields );?>
<!-- Start Alexa AMP Certify Javascript -->
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="alexametrics">
<script type="application/json">
<?php echo wp_json_encode( $alexa_fields,JSON_UNESCAPED_SLASHES); ?>
<!-- End Alexa AMP Certify Javascript -->
// 10.12 Analytics Support added for AFS Analytics
if ( ampforwp_get_setting('ampforwp-afs-analytics-switch') && true == ampforwp_get_setting('ampforwp-afs-analytics-switch')) {
$afs_account = ampforwp_get_setting('ampforwp-afs-siteid');
if ($afs_account > 99999)
if ($afs_account > 199999)
if ($afs_account > 299999)
if ($afs_account > 399999)
if ($afs_account > 499999)
if ($afs_account > 599999)
if ($afs_account > 699999)
if ($afs_account > 799999)
if ($afs_account > 899999)
if ($afs_account > 999999)
'websiteid'=>$afs_account,
'title'=>get_the_title(),
$afs_fields = apply_filters('ampforwp_afs_analytics', $afs_fields );?>
<!-- Start AFS Analytics Javascript -->
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="afsanalytics">
<script type="application/json">
<?php echo wp_json_encode( $afs_fields); ?>
<!-- End AFS Analytics Javascript -->
if( true == ampforwp_get_setting('ampforwp-callrail-switch')) {
$config_url = $number = $analytics_url = '';
$config_url = ampforwp_get_setting('ampforwp-callrail-config-url');
$number = ampforwp_get_setting('ampforwp-callrail-number');
$analytics_url = ampforwp_get_setting('ampforwp-callrail-analytics-url');
if(!empty($config_url) && !empty($number) && !empty($analytics_url)){?>
if( true == ampforwp_get_setting('ampforwp-dotmetrics-switch')) {
$dot_id = ampforwp_get_setting('ampforwp-dotmetrics-id');
$analytics_url = "https://script.dotmetrics.net/AmpConfig.json?id=".esc_html($dot_id); ?>
<amp-analytics config="<?php echo esc_url_raw($analytics_url); ?>"></amp-analytics>
if( true == ampforwp_get_setting('ampforwp-topmailru-switch')) {
$topmailru_id = ampforwp_get_setting('ampforwp-topmailru-id');
if(!empty($topmailru_id)){ ?>
<amp-analytics type="topmailru" id="topmailru">
<script type="application/json">
"id": "<?php echo esc_attr($topmailru_id);?>"
// Analytics support added for Adobe
if( true == ampforwp_get_setting('ampforwp-adobe-switch')){
$hostname = $ReportSuiteId =
$hostname = ampforwp_get_setting('ampforwp-adobe-host');
$subdomain = ampforwp_get_setting('ampforwp-adobe-subdomain');
$type = ampforwp_get_setting('ampforwp-adobe-type');
$ReportSuiteId = ampforwp_get_setting('ampforwp-adobe-reportsuiteid');
if($type =='adobeanalytics_nativeConfig')
'base'=>'https://${host}',
'iframeMessage'=> '${base}/?ampforwpAnalytics=adobeNativeConfig&campaign=${queryParam(campaign)}&pageURL=${ampdocUrl}&ref=${documentReferrer}'
'host'=> ampforwpremoveHttps($subdomain),
'extraUrlParams' => array(
$adobe_fields = apply_filters('ampforwp-adobe-analytics', $adobe_fields);?>
<amp-analytics <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> type="<?php echo $type;?>">
<script type="application/json">
<?php echo wp_json_encode( $adobe_fields,JSON_UNESCAPED_SLASHES); ?>