# Piano Analytics

The Piano Analytics dispatcher automatically dispatches events to the [Piano SDK](https://developers.atinternet-solutions.com/piano-analytics/data-collection/sdks/android-java), including AT tags when they are available.

To install simply add in your app's *build.gradle*:

{% tabs %}
{% tab title="Kotlin" %}

```kts
implementation("io.piano.android:analytics:3.3.5")
implementation("com.batch.android:piano-dispatcher:2.0.0")
```

{% endtab %}

{% tab title="Groovy" %}

<pre class="language-groovy"><code class="lang-groovy"><strong>implementation 'io.piano.android:analytics:3.3.5'
</strong>implementation 'com.batch.android:piano-dispatcher:2.0.0'
</code></pre>

{% endtab %}
{% endtabs %}

By default the dispatcher will handle UTM tracking and will send events only as Piano [On-site Ads events](https://developers.atinternet-solutions.com/piano-analytics/data-collection/how-to-send-events/standard-events#onsite-ads). You can update this configuration from your Android's manifest as following:

```xml
<application>
    ...
    <!-- Enable custom event sending -->
    <meta-data android:name="com.batch.android.dispatcher.piano.enable_custom_events" 
               android:value="true"/>

    <!-- Disable On-Site Ads event sending -->
    <meta-data android:name="com.batch.android.dispatcher.piano.enable_onsite_ad_events"
               android:value="false"/>
    
     <!-- Disable UTM tracking -->
    <meta-data android:name="com.batch.android.dispatcher.piano.enable_utm_tracking" 
               android:value="false"/>
</application>
```

> If you enable custom events, you also need to define them in your Piano Data Model. If so, please refer to the [custom event/property list](https://github.com/BatchLabs/Batch-Android-piano-dispatcher/blob/dev/piano-dispatcher/src/main/java/com/batch/android/dispatcher/piano/PianoDispatcher.kt#L54).
