Last active
November 18, 2022 20:15
-
-
Save westonruter/2ea25735be279b88c6f0946629d0240c to your computer and use it in GitHub Desktop.
Plugin demonstrating how to inject GTM for the AMP plugin, in response to support forum topic: https://wordpress.org/support/topic/amp-with-google-tag-manager/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Plugin Name: AMP Google Tag Manager | |
* | |
* @package AMP_Google_Tag_Manager | |
* @author Weston Ruter, Google | |
* @license GPL-2.0-or-later | |
* @copyright 2019 Google Inc. | |
* | |
* @wordpress-plugin | |
* Plugin Name: AMP Google Tag Manager | |
* Description: Demonstration for how to add Google Tag Manager (GTM) to an AMP page in WordPress. | |
* Plugin URI: https://gist.github.com/westonruter/2ea25735be279b88c6f0946629d0240c | |
* Version: 0.1.0 | |
* Author: Weston Ruter, Google | |
* Author URI: https://weston.ruter.net/ | |
* License: GNU General Public License v2 (or later) | |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html | |
* Gist Plugin URI: https://gist.github.com/westonruter/2ea25735be279b88c6f0946629d0240c | |
*/ | |
namespace AMP_Google_Tag_Manager; | |
const GTM_CONTAINER_ID = '______________________'; // 👈👈👈 This must be populated with your appropriate value. | |
/** | |
* Print amp-analytics. | |
*/ | |
function print_component() { | |
printf( | |
'<amp-analytics config="https://www.googletagmanager.com/amp.json?id=%s" data-credentials="include"></amp-analytics>', | |
esc_attr( GTM_CONTAINER_ID ) | |
); | |
} | |
add_action( | |
'wp_footer', | |
function () { | |
if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) { | |
print_component(); | |
} | |
} | |
); | |
// Classic mode. | |
add_filter( | |
'amp_post_template_data', | |
function( $data ) { | |
$data['amp_component_scripts'] = array_merge( | |
$data['amp_component_scripts'], | |
array( | |
'amp-analytics' => true, | |
) | |
); | |
return $data; | |
} | |
); | |
add_action( 'amp_post_template_footer', __NAMESPACE__ . '\print_component' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm not an expert on GTM. I only made this plugin to output the required AMP markup. For help with why GTM may not be working properly, you'll need to reach our to GTM support.