# Install on Laravel

> Add MetricRaven to your Laravel Blade layout, including Inertia and Livewire apps.

Source: https://metricraven.com/docs/install-laravel  
Markdown: https://metricraven.com/docs/install-laravel.md  
Section: Installation guides

Add the tag to the Blade layout that renders your pages' `<head>`.

1. **Copy your snippet**

   In MetricRaven, open your site's **Settings → Install** card and copy the script tag. It already contains your site ID.

2. **Paste it into your layout's head**

   Replace `YOUR_SITE_ID` with the public site ID from your site's **Settings → Install** card. The site ID is public and safe in browser code; never put your secret key in a page.

   ```php title="resources/views/layouts/app.blade.php"
   {{-- resources/views/layouts/app.blade.php --}}
   <!DOCTYPE html>
   <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
   <head>
       <meta charset="utf-8">
       <title>{{ config('app.name') }}</title>
       <script
           defer
           src="https://metricraven.com/js/script.js"
           data-site-id="YOUR_SITE_ID"
       ></script>
       @vite(['resources/css/app.css', 'resources/js/app.js'])
   </head>
   <body>
       {{-- ...your existing body... --}}
   </body>
   </html>
   ```

   Which file that is depends on your setup:

   - **Inertia (React, Vue or Svelte):** the root template, usually `resources/views/app.blade.php`.
   - **Livewire or Blade:** the layout your pages use, such as `resources/views/layouts/app.blade.php` or a `components/layouts` file. Add it to guest layouts too if you track signed-out pages.

3. **Deploy and open your site**

   `php artisan serve` and `*.test` hosts from Valet or Herd are local and not tracked by default; check the deployed site.

> **Verify it works**
>
> Open your live website in a normal browser window (not an automated or embedded one). In the browser's Network panel, look for `script.js` and then a request to `/api/v1/collect` whose response contains `ok: true`. Open your site's **Traffic** tab and choose **Refresh**; the selected dates must include your visit.
>
> Nothing showing? See [Troubleshooting](https://metricraven.com/docs/troubleshooting).

## Optional: read the site ID from config

Handy when staging and production report to different MetricRaven sites.

```php title="config/services.php"
// config/services.php · optional
'metricraven' => [
    'site_id' => env('METRICRAVEN_SITE_ID'),
],

{{-- In the layout --}}
data-site-id="{{ config('services.metricraven.site_id') }}"
```

## Notes

- Inertia links and Livewire's `wire:navigate` change pages with the history API, which the tracker records.
- Click between a few pages and check the Network panel shows one `/api/v1/collect` pageview per navigation. Two per click means the tag is loaded twice.
- To serve the script from your own domain, see the [Laravel proxy](https://metricraven.com/docs/proxy-laravel).

Optional script attributes are listed in [Install & verify](https://metricraven.com/docs/install). To exclude your own visits, see [Exclude your visits](https://metricraven.com/docs/exclude-visits).
