This guide walks you through the steps to self-host the RudderStack JavaScript SDK and also covers different scenarios based on your directory structure.
- Download the JavaScript SDK and save it as
rudder-analytics.min.js
. Also, download the corresponding source map file, and save it asrudder-analytics.min.js.map
. - Download the required device mode destination SDK file (
<dest_name>.min.js
) and its corresponding source map file (<dest_name>.min.js.map
) from RudderStack CDN.
rudder-analytics.min.js.map
or <dest_name>.min.js.map
) is optional but recommended to help in troubleshooting.- Move the files downloaded in the above steps in the following directory structure:
- Add the following script tag in your website:
<script>rudderanalytics=window.rudderanalytics=[];for(var methods=["load","page","track","identify","alias","group","ready","reset","getAnonymousId","setAnonymousId","getUserId","getUserTraits","getGroupId","getGroupTraits","startSession","endSession","getSessionId"],i=0;i<methods.length;i++){var method=methods[i];rudderanalytics[method]=function(a){return function(){rudderanalytics.push([a].concat(Array.prototype.slice.call(arguments)))}}(method)}rudderanalytics.load(WRITE_KEY,DATA_PLANE_URL),rudderanalytics.page();</script>
<script src="https://<subdomain>.<yourdomain>.com/<path-to-sdk-base-directory>/rudder-analytics.min.js"></script>
Alternate directory structure
If you have a specific use-case where you need to follow a directory structure different than the one recommended above, follow the steps 1 and 2, and proceed with one of the below depending on your directory structure:
If your JavaScript SDK file name is
rudder-analytics.min.js
, but the destination SDKs are not located next to it under thejs-integrations
directory, add the following script tag in your website:<script>// rudderanalytics object initialization// provide the location of the destination SDKs in the load optionsrudderanalytics.load(WRITE_KEY, DATA_PLANE_URL, {destSDKBaseURL: "https://<subdomain>.<yourdomain>.com/<path-to-integration-sdks-directory>"});// ...</script><script src="https://<subdomain>.<yourdomain>.com/<path-to-sdk-base-directory>/rudder-analytics.min.js"></script>If your JavaScript SDK file name is not
rudder-analytics.min.js
, and the destination SDKs are not located under thejs-integrations
directory, add the following script tag in your website:
rudder-analytics.min.js
) can help overcome the ad-blockers, if any.<script>// rudderanalytics object initialization// provide the location of the destination SDKs in the load optionsrudderanalytics.load(WRITE_KEY, DATA_PLANE_URL, { destSDKBaseURL: "https://<subdomain>.<yourdomain>.com/<path-to-integration-sdks-directory>"});// ...</script><script src="https://<subdomain>.<yourdomain>.com/<path-to-custom-sdk-file>/<custom-sdk-file-name.js>"></script>
Contact us
For more information on the topics covered on this page, email us or start a conversation in our Slack community.