# 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).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.batch.com/developer/sdk/android/event-dispatchers/piano-analytics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
