Skip to content

Commit

Permalink
Identify API feature (#6)
Browse files Browse the repository at this point in the history
* Create config

* Create identify component

* Update instructions
  • Loading branch information
marlocorridor authored Aug 14, 2024
1 parent bff252e commit 158720c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 1 deletion.
24 changes: 23 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,38 @@ php artisan vendor:publish --tag="clarity-views"

## Usage

### General Tracking

- Create an account: The first thing you need to do is create an account on Microsoft Clarity. You can sign up on their website and follow the steps to create your account. Then, get your tracking code and that's it.
- Simply add the blade components to your base layout files.

The `enabled` attribute is optional, but can be used to control the tags integration from blade files that extend the base layout. It accepts `true/false`.
The `enabled` attribute is *optional*, but can be used to control the tags integration from blade files that extend the base layout. It accepts `true/false`.
This can still be controlled globally via the `.env` file should you need to disable the integration global on different environments as well.

```html
<!-- Should be placed in the head -->
<x-clarity::script :enabled="$enabled" />
```
### Identify API

To implement the [Identify API](https://learn.microsoft.com/en-us/clarity/setup-and-installation/identify-api), use `identify` component.
Set `CLARITY_IDENTIFICATION_ENABLED` value to `true` on the env file.

#### Attributes:
* `user` attribute is *required* accepts the User Model instance or any object. The `email` and `name` attributes are used.
* `enabled` attribute is *optional*.
* `custom_session_id` attribute is *optional*.
* `custom_page_id` attribute is *optional*.

```html
@auth
<x-clarity::identify :user="request()->user()"/>
@endauth
```
This will compile as:
```js
window.clarity("identify", "[email protected]", null, null, "Username")
```

## Testing

Expand Down
1 change: 1 addition & 0 deletions config/clarity.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
return [
'id' => env('CLARITY_ID', 'XXXXXX'),
'enabled' => env('CLARITY_ENABLED', true),
'enabled_identify_api' => env('CLARITY_IDENTIFICATION_ENABLED', false),
];
20 changes: 20 additions & 0 deletions resources/views/components/identify.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
@props([
'enabled' => true,
'user' => null,
'custom_session_id' => null,
'custom_page_id' => null,
])

@if ($enabled && config('clarity.enabled') && config('clarity.enabled_identify_api'))
<script type="text/javascript">
(function(){
window.clarity(
"identify",
@if($user?->email) "{{$user->email}}" @else null @endif,
@if($custom_session_id) "{{$custom_session_id}}" @else null @endif,
@if($custom_page_id) "{{$custom_page_id}}" @else null @endif,
@if($user?->name) "{{$user->name}}" @else null @endif,
);
})();
</script>
@endif

0 comments on commit 158720c

Please sign in to comment.