# Go experiments installation - Docs

1.  1

    ## Install the package

    Required

    Install the PostHog Go library:

    Terminal

    PostHog AI

    ```bash
    go get "github.com/posthog/posthog-go"
    ```

2.  2

    ## Configure PostHog

    Required

    Initialize the PostHog client with your project token and host:

    main.go

    PostHog AI

    ```go
    package main
    import (
        "github.com/posthog/posthog-go"
    )
    func main() {
        client, _ := posthog.NewWithConfig("<ph_project_token>", posthog.Config{Endpoint: "https://us.i.posthog.com"})
        defer client.Close()
    }
    ```

3.  3

    ## Implement your experiment

    Required

    Experiments run on top of our feature flags. You can define which version of your code runs based on the return value of the feature flag:

    **Note:** Server-side experiment metrics require you to manually send the feature flag information. See [this tutorial](/docs/experiments/adding-experiment-code.md) for more information.

    ```go
    experimentFlagValue, err := client.GetFeatureFlag(posthog.FeatureFlagPayload{
        Key:        "your-experiment-feature-flag",
        DistinctId: "distinct-id",
    })
    if err != nil {
        // Handle error (e.g. capture error and fallback to default behaviour)
    }
    if experimentFlagValue == "test" {
        // Do something differently for this user
    } else {
        // It's a good idea to let control variant always be the default behaviour,
        // so if something goes wrong with flag evaluation, you don't break your app.
    }
    ```

4.  4

    ## Run your experiment

    Required

    Once you've implemented the feature flag in your code, you'll enable it for a target audience by creating a new experiment in the PostHog dashboard.

5.  5

    ## Next steps

    Recommended

    Now that you're running experiments, continue with the resources below to learn what else Experiments enables within the PostHog platform.

    | Resource | Description |
    | --- | --- |
    | [Creating an experiment](/docs/experiments/creating-an-experiment.md) | How to create an experiment in PostHog |
    | [Adding experiment code](/docs/experiments/adding-experiment-code.md) | How to implement experiments for all platforms |
    | [Statistical significance](/docs/experiments/statistics-bayesian.md) | Understanding when results are meaningful |
    | [Experiment insights](/docs/experiments/analyzing-results.md) | How to analyze your experiment data |
    | [More tutorials](/docs/experiments/tutorials.md) | Other real-world examples and use cases |

### Community questions

Ask a question

### Was this page useful?

HelpfulCould be better