# Implementation Guide

You can choose from three methods to implement front-end tracking on your platform.

## [SDK](/product-discovery/tracking-and-sending-events/implementation-guide/sdk.md)

The Crownpeak Product Discovery client is a (universal) JavaScript library. It can be used both on the client-side and on the server-side. We recommend including the client from our [CDN](/product-discovery/tracking-and-sending-events/implementation-guide/sdk.md#cdn-installation) for browser usage. For more advanced use cases (where a bundler is involved), we recommend the [npm package](/product-discovery/tracking-and-sending-events/implementation-guide/sdk.md#npm-installation) if you intend to use our client on the server-side.

## [Google Tag Manager](/product-discovery/tracking-and-sending-events/implementation-guide/google-tag-manager.md)

We recommend this method if you are already using Google Tag Manager (GTM).

## [REST API](/product-discovery/tracking-and-sending-events/implementation-guide/rest-api.md)

We recommend this implementation method if you do not use JavaScript and prefer to send direct HTTP requests.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://crownpeak.gitbook.io/product-discovery/tracking-and-sending-events/implementation-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
