How to integrate RudderStack with a Hugo site


This guide will help you integrate RudderStack with your Hugo site using the RudderStack JavaScript SDK. On successful integration, you can track and send real-time user events to your preferred destinations via RudderStack.

To set up the event stream on your Hugo site, you need to perform the following steps:

  1. Integrate the JavaScript SDK with your Hugo site and set up the tracking code
  2. Configure a destination in RudderStack
  3. Deploy your Hugo site and verify the events

Prerequisites

This guide assumes you have installed and set up your Hugo site. Refer to the Hugo documentation for more information.

Integrating the JavaScript SDK with your Hugo site

Integrating the JavaScript SDK with your Hugo site involves the following steps:

  1. Creating a JavaScript source in RudderStack
  2. Installing and configuring the JavaScript SDK in your Hugo site

Creating a JavaScript source in RudderStack

The RudderStack JavaScript source is required track the events from your Hugo site. Follow these steps to set it up in your RudderStack dashboard:

  1. Note the data plane URL in your RudderStack dashboard. This is required to set up the JavaScript SDK in your site.
RudderStack dashboard
  1. Click the Sources button in the left navigation bar and select New Source to create a source. Then, select Event Streams under Sources, and select JavaScript.
RudderStack directory
  1. Assign a name to your source and click Next.
  2. Your JavaScript source is now configured. Note down the write key for this source:
RudderStack dashboard

Installing and configuring the JavaScript SDK in your Hugo site

To integrate RudderStack with your Hugo site and set up the tracking code, follow the steps below:

  1. In your Hugo project, navigate to the layouts > partials folder and open site-header.html.
  2. Place the following script within the <header> section of the page’s <body>:
<script>
      rudderanalytics = window.rudderanalytics = [];
        var methods = [
          "load",
          "page",
          "track",
          "identify",
          "alias",
          "group",
          "ready",
          "reset",
          // "requireIntegration",
          "setAnonymousId",
          "getAnonymousId",
        ];
        for (var i = 0; i < methods.length; i++) {
          var method = methods[i];
          rudderanalytics[method] = (function (methodName) {
            return function () {
              rudderanalytics.push(
                [methodName].concat(Array.prototype.slice.call(arguments))
              );
            };
          })(method);
        }
        rudderanalytics.load("WRITE_KEY","DATA_PLANE_URL");
        rudderanalytics.track("Simple track call");
    </script> 
    <script src="https://cdn.rudderlabs.com/v1.1/rudder-analytics.min.js"></script>
info
If you are using an older version of the JavaScript SDK (v1), refer to the Version Migration Guide to migrate to v1.1.
  1. Replace <WRITE_KEY> and <DATA_PLANE_URL> with your JavaScript source write key and the data plane URL obtained in the Creating a JavaScript source in RudderStack section above.
info
Refer to the sample Hugo site in the RudderStack Sample Applications repository for more information.

Configuring a destination in RudderStack

This section details the steps required to set up a destination platform in RudderStack, where you can send all events tracked by the JavaScript SDK.

info
For this guide, Google Analytics is added as a destination.
  1. Click Add Destination in RudderStack dashboard’s home page.
  2. Choose Google Analytics from the list of destinations.
  3. Assign a name to your destination and click Next.
  4. Select the JavaScript source configured in the above section and click Next.
  5. Configure your Google Analytics destination with your Google Analytics Tracking ID in the Connection Settings page. For details on the other settings, refer to the Google Analytics documentation.
Google Analytics destination configuration
info
Optionally, you can add a transformation to this destination to transform your events before sending them to Google Analytics.

Google Analytics is now configured as a destination. You should be able to see the connection in your RudderStack dashboard, as seen below:

Google Analytics connection
success
You can also set up a warehouse destination in RudderStack and send your tracked events to it.

Deploying your Hugo site and verifying the event stream

To verify if your event stream is working correctly, deploy your Hugo site and test if the events are tracked and delivered correctly. Follow these steps:

  1. From your terminal, navigate to the folder containing your Hugo site and run following command:
hugo server -D
  1. Open the local server URL(generally http://localhost:1313/) in your browser to view the site.
  2. Go to your browser’s developer tools and check the Network tab to verify if the RudderStack JavaScript SDK (rudder-analytics.js) is loaded correctly. The following image highlights this option for Google Chrome:
Chrome Network tab
  1. Click the various links or pages in your Hugo site for RudderStack to track these actions.
  2. Go to the Live Events tab of the JavaScript source you configured in the RudderStack dashboard to check if the events are tracked:
RudderStack live events tab
info
You may face a minor delay before the events start showing up in your dashboard and the destination.
  1. Upon successful tracking, you will see the events in your RudderStack dashboard:
RudderStack live events tab
  1. Go to the Google Analytics dashboard and navigate to Realtime > Events option to check if the events are delivered. Your tracked events will be shown in this window along with other metrics such as number of active users, source platform, etc.
Google Analytics live events tab

Questions? Contact us by email or on Slack