README.md

Eightyfour
==========

## Installation

Mix.exs:

```elixir
def application do 
  [applications: [:eightyfour]]
end

defp deps do
  [{:eightyfour, "~> 0.1"}]
end
```

Add to your supervision tree:

```elixir
worker(Eightyfour, [])
```

## Usage

Config options:

```elixir
config :eightyfour,
  credentials: "priv/tokens/google/token.json",
  private_key: "priv/tokens/google/token.key.pem",
  # find your view_id in your analytics url:
  # https://www.google.com/analytics/web/#management/Settings/a000w000pVIEW_ID/
  google_view_id: "XXXXXX",
  start_date: "2010-01-01",
  token_lifetime: 3600,
  token_provider: Eightyfour.AccessToken
```

Create a Google service account:

* Go to https://console.developers.google.com/
* `APIs & auth` -> `Credentials`
* `Add credentials` -> `Service account`
* We need both key types, so start with `JSON`
* Save as `token.json`
* Click the email address under `Service accounts`.
* `Generate new P12 key`
* Save as `token.p12`
* Move tokens to `priv/tokens/google` under your otp_app.
* `openssl pkcs12 -in token.p12 -out token.crt.pem -clcerts -nokeys`
* `openssl pkcs12 -in token.p12 -out token.key.pem -nocerts -nodes`

Find your google service account's email:

* Go to https://console.developers.google.com/
* `APIs & auth` -> `Credentials`
* Copy `Email address` field

Add your google service account's email to the Analytics account you want to track. Make sure that its only permissions are `Read & analyze`.

## Query API examples

```
iex(1)> Eightyfour.Query.browsers(:yesterday)
%{rows: [[os: "Windows", browser: "Chrome", version: "46.0.2490.80", ...]]}
```