Google Analytics auf einer WordPress Multisite nutzen

Wie man Google Analytics in WordPress für separate Propertys einsetzt

Ich habe mehrere Projekte in dieser Multisite Instanz von WordPress hinterlegt und würde gerne Google Analytics auf jeden einzelnen von denen anwenden. Das Problem jedoch ist, dass ich nicht eine Analytics Property auf alle Domains verwenden möchte sondern jede Domain soll seine eigene Property haben. Zudem soll auch nicht getrackt werden, wenn ein Benutzer auf meiner WordPress-Seite angemeldet ist. Es sollen also nur die Besucher getrackt werden.

Früher, als es noch kein Gutenberg gab und ich der Einfachheit halber die Seiten komplett mit ACF (Advanced custom fields) aufgebaut und verwaltet habe, hätte ich einfach über ACF eine Optionsseite erstellt und dort Felder hinzugefügt. Jetzt möchte ich mich aber immer mehr von ACF trennen und werde deswegen eine eigene Optionsseite programmieren.

Ich habe die Programmierung jetzt abgeschlossen und einfach mal facebook sowie twitter mit einbezogen, um diese im Frontend nutzen zu können. Der Code sieht wie folgt aus:

<?php
// create custom plugin settings menu
add_action('admin_menu', 'theme_options_create_menu');

function theme_options_create_menu() {
	add_menu_page('Theme Einstellungen', 'Theme Einstellungen', 'administrator', __FILE__, 'theme_einstellungen' , 'dashicons-admin-settings' );
	add_action( 'admin_init', 'register_theme_einstellungen' );
}


function register_theme_einstellungen() {
	register_setting( 'konzeptcode-options', 'analytics_id' );
	register_setting( 'konzeptcode-options', 'facebook' );
	register_setting( 'konzeptcode-options', 'twitter' );
}

function theme_einstellungen() {
?>
<div class="wrap">
<h1>Theme Einstellungen</h1>

<form method="post" action="options.php">
    <?php settings_fields( 'konzeptcode-options' ); ?>
    <?php do_settings_sections( 'konzeptcode-options' ); ?>
    <table class="form-table">
        <tr valign="top">
        <th scope="row">Analytics ID</th>
        <td><input type="text" name="analytics_id" value="<?php echo esc_attr( get_option('analytics_id') ); ?>" placeholder="UA-64061900-1" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Facebook</th>
        <td><input type="text" name="facebook" value="<?php echo esc_attr( get_option('facebook') ); ?>" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Twitter</th>
        <td><input type="text" name="twitter" value="<?php echo esc_attr( get_option('twitter') ); ?>" /></td>
        </tr>
    </table>

    <?php submit_button(); ?>

</form>
</div>
<?php } ?>

Und in die header.php habe ich folgendes geschrieben:

<?php if (!is_user_logged_in() && ($analytics_id = get_option('analytics_id', false))): ?>
	<!-- Global site tag (gtag.js) - Google Analytics -->
	<script async src="https://www.googletagmanager.com/gtag/js?id=<?= $analytics_id ?>"></script>
	<script>
	  window.dataLayer = window.dataLayer || [];
	  function gtag(){dataLayer.push(arguments);}
	  gtag('js', new Date());
	  gtag('config', '<?= $analytics_id ?>');
	</script>

	<!-- Google Tag Manager -->
	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
	new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
		j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
		'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
		})(window,document,'script','dataLayer','GTM-T7NV898');</script>
		<!-- End Google Tag Manager -->

<?php endif; ?>

Themen

Analytics SEO Technik WordPress

Beitrag teilen

WhatsAppen

Folgen Sie uns