Jimdo Analytics Implementation | OpsBlu Docs

Jimdo Analytics Implementation

Technical guide for implementing analytics on Jimdo sites, covering Creator vs Dolphin editor differences, Head HTML injection, and tracking limitations.

Analytics Architecture on Jimdo

Jimdo operates two distinct editing systems with fundamentally different code access levels. Jimdo Creator (the legacy editor) provides direct HTML/CSS access through the Head area and widget embedding. Jimdo Dolphin (the AI-assisted editor, now the default for new sites) severely restricts custom code injection, limiting analytics implementation to platform-provided integrations.

Both editors generate static HTML served through Jimdo's CDN. Pages load as traditional multi-page sites without client-side routing, so standard analytics script injection patterns work on Creator. Dolphin sites have no SPA behavior either, but the code injection surface is minimal.

The critical distinction for analytics: Creator gives you raw <head> access; Dolphin gives you only a Google Analytics ID field and a few integration toggles.


Installing Tracking Scripts

Jimdo Creator: Head HTML Injection

Navigate to Menu > Settings > Edit Head to access the site-wide <head> injection area. All code placed here renders on every page.

<!-- 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-XXXXXX');</script>

For the GTM noscript container, use a Widget/HTML element placed at the top of the page content:

<!-- GTM noscript fallback - place in Widget/HTML element -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

Jimdo Creator: Widget/HTML Elements

Creator allows adding raw HTML blocks anywhere in page content. Click the + button between content blocks and select Widget/HTML:

<script>
  // Inline tracking for a specific page section
  dataLayer.push({
    event: 'section_impression',
    section_id: 'services_overview'
  });
</script>

These widgets render inline in the page DOM. Scripts execute in document order.

Jimdo Dolphin: Limited Integration

Dolphin restricts custom code to preset integration fields. Navigate to Settings > Google Analytics and enter only the Measurement ID:

G-XXXXXXXXXX

Jimdo Dolphin injects the gtag.js snippet automatically. You cannot modify the configuration, add custom events, or load additional scripts through this interface. No GTM support exists natively in Dolphin.

For platforms other than Google Analytics on Dolphin, the only option is embedding through the Embed content block (if available on your plan), which accepts limited HTML/JavaScript:

<script>
  // Limited embed block - may be stripped by Dolphin's sanitizer
  !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', 'PIXEL_ID');
  fbq('track', 'PageView');
</script>

Data Layer Implementation

Data layer implementation is only practical on Jimdo Creator. Dolphin does not support custom JavaScript in the <head>.

Creator: Basic Data Layer

In Settings > Edit Head:

<script>
  window.dataLayer = window.dataLayer || [];

  // Detect page type from Jimdo's body classes
  var bodyClass = document.body.className;
  var pageType = 'content';
  if (bodyClass.indexOf('j-homepage') > -1) pageType = 'home';
  if (bodyClass.indexOf('j-blogpost') > -1) pageType = 'blog_post';
  if (bodyClass.indexOf('j-shop') > -1) pageType = 'shop';

  dataLayer.push({
    page_type: pageType,
    page_title: document.title,
    page_path: window.location.pathname,
    jimdo_editor: 'creator'
  });
</script>

Creator: Shop Data Layer

Jimdo Creator's built-in shop exposes product information in the DOM:

<script>
  document.addEventListener('DOMContentLoaded', function() {
    // Product detail page
    var productName = document.querySelector('.cc-shop-product-name');
    var productPrice = document.querySelector('.cc-shop-product-price .cc-shop-price');

    if (productName && productPrice) {
      dataLayer.push({
        event: 'view_item',
        ecommerce: {
          items: [{
            item_name: productName.textContent.trim(),
            price: parseFloat(productPrice.textContent.replace(/[^0-9.,]/g, '').replace(',', '.'))
          }]
        }
      });
    }

    // Product list page
    var productCards = document.querySelectorAll('.cc-shop-product');
    if (productCards.length > 0) {
      var items = Array.prototype.map.call(productCards, function(card, index) {
        var name = card.querySelector('.cc-shop-product-name');
        var price = card.querySelector('.cc-shop-price');
        return {
          item_name: name ? name.textContent.trim() : '',
          price: price ? parseFloat(price.textContent.replace(/[^0-9.,]/g, '').replace(',', '.')) : 0,
          index: index
        };
      });
      dataLayer.push({ event: 'view_item_list', ecommerce: { items: items } });
    }
  });
</script>

Common Issues

Dolphin Sites Cannot Run Custom JavaScript

The most common analytics implementation failure on Jimdo. Dolphin strips or ignores JavaScript from embed blocks on many plan tiers. If you need GTM or custom tracking, you must use Jimdo Creator. There is no workaround on Dolphin for full script injection.

Verify which editor a site uses: Creator URLs show jimdo.com in the admin panel; Dolphin shows jimdo.app.

Head Code Not Rendering

Creator's Edit Head area has a character limit (typically around 10,000 characters). Large GTM containers or multiple tracking scripts can exceed this. Consolidate scripts:

<!-- Load all vendor scripts through GTM instead of individual injections -->
<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-XXXXXX');</script>

Widget/HTML Elements Removed After Template Switch

Switching templates on Creator can displace or remove Widget/HTML blocks. After any template change, audit all pages for missing tracking widgets.

Jimdo's Built-In Statistics Conflict

Jimdo includes its own analytics dashboard under Statistics. This runs independently from any custom tracking you add and does not share data with Google Analytics or GTM. The built-in tracker may show different numbers due to different counting methodologies (session vs. page view definitions).

Form Tracking Limitations

Jimdo Creator forms submit through Jimdo's server-side handler. There is no client-side form submission event that reliably fires. Track form interactions (field focus, button click) rather than submission:

document.addEventListener('DOMContentLoaded', function() {
  var submitBtn = document.querySelector('.cc-form-submit');
  if (submitBtn) {
    submitBtn.addEventListener('click', function() {
      dataLayer.push({ event: 'form_submit_attempt', form_location: window.location.pathname });
    });
  }
});

Platform-Specific Considerations

Editor Detection: Programmatically determine which editor built the site:

// Creator sites include this in their HTML
var isCreator = document.querySelector('meta[name="generator"][content*="Jimdo"]') !== null;
// Dolphin sites use a different meta generator value
var isDolphin = document.querySelector('meta[name="generator"][content*="jimdo.app"]') !== null;

DOM Structure: Creator uses cc- prefixed classes (.cc-shop-product, .cc-form-group, .cc-nav-link). Dolphin uses hashed class names that change between builds and cannot be reliably targeted.

Blog Post Tracking: Creator blog posts live under /blog/ paths. Track blog-specific engagement:

if (window.location.pathname.indexOf('/blog/') === 0) {
  dataLayer.push({
    content_type: 'blog_post',
    post_title: document.querySelector('.j-blog-post-title') ?
      document.querySelector('.j-blog-post-title').textContent.trim() : document.title
  });
}

API Limitations: Jimdo does not offer a public JavaScript API for site data. All tracking must work through DOM scraping or custom data attributes added via Widget/HTML elements.

Cookie Consent: Jimdo provides a built-in cookie banner on both editors. The banner blocks third-party cookies but does not prevent script execution. If you need consent-gated tracking, implement it through GTM's consent mode rather than relying on Jimdo's native banner:

// In Edit Head, before GTM loads
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
  analytics_storage: 'denied',
  ad_storage: 'denied'
});