Piano Analytics
Follow our setup guide to connect Piano to QUANTI:
Prebuilt reports and definition
Piano Analytics limits the number of rows returned per query to 1,500,000. We split our queries by day and by account, but it’s important to understand that if a single query for one account exceeds 1,500,000 rows, the API returns an error. As a result, the query fails, and the data is not inserted into our system.
To avoid this, make sure to use the filtering feature to reduce the number of returned rows and stay within the API limits.
Prerequisites
To connect Piano to QUANTI, you need an Piano account.
Setup instructions
Find your credentials
Go on your profile parameters to the top-right corner : See profile < API Key

Access path to API keys on Piano interface Create a new API Key clicking on the blue button "Create a new API Key".

Button to generate a new API key Give it a name and a description. Let the box ticked and save it.

Description pop-in of API key Make a note of the API credentials. You will need it to configure QUANTI:.
Find your Website ID
Your Website ID is in the url when you are connected to your Piano account. This is the value of the parameter site.
https://explorer.atinternet-solutions.com/core/#/overview/overview/020202?period.shortcut=yesterday&period.granularity=3&site=612329&graph.options.defaultlist=minmax&graph.options.comparisonlist=nocomparison&graph.options.eventloglist=eventlog&isIgnoreNullProperties=false
Connector configuration
Authorize your account
Access Key and Secret Key retrieved following the steps above.
Site ID retrieved following the steps above.
Connector information
Connector Name : Name your connector. It must be unique.
Dataset ID : Define the ID of the dataset. It must not exist yet, as it will be created and data will be sent there.
Create queries : Create your own custom queries. To help you, refer to the 'Custom Query' chapter below."
Prebuilt reports
content_pages: Contains daily records of user interactions for each website page, enabling content-level performance tracking.
traffic_sources: Describes how users arrive on the site, with detailed information about traffic origin, campaigns, and referrers.
transaction_source: Stores transactional data along with marketing attribution fields, providing insight into the source and context of each purchase.
Prebuilt reports and definition
<mark style="background-color:yellow;">Custom reports</mark>
{% hint style="warning" %} Piano Analytics limits the number of rows returned per query to 1,500,000. We split our queries by day and by account, but it's important to understand that if a single query for one account exceeds 1,500,000 rows, the API returns an error. As a result, the query fails, and the data is not inserted into our system.
To avoid this, make sure to use the filtering feature to reduce the number of returned rows and stay within the API limits. {% endhint %}
{% stepper %} {% step %}
Retrieve your field names from Piano Analytics
The easiest way to identify the field names expected by the Piano API is to use the Data Query tool directly in the Piano Analytics interface.
In Piano Analytics, navigate to Data Query (top-right corner, icon with 4 squares)
Build the report you want to extract via the QUANTI connector by selecting your dimensions and metrics
Once your report is configured, click the copy/paste button in the top-right corner, then select Copy the API body (POST)
[📸 Screenshot — Copy the API body (POST) button location]
A pop-in appears with the full API body. Retrieve:
The content of the
columnsobject → this will populate thefieldsarray in your JSONThe content of the
filterobject (if any) → this will populate thefilterfield in your JSON
{% endstep %}
{% step %}
Configure the custom report query
In QUANTI, at the Create reports step, click Add custom report. A pop-in opens with two steps: Query and Schema.
In the Query step:
Give your report a name in the Query name field — this name will become the table name in your data warehouse
{% hint style="danger" %} The name chosen for your custom report is the one that names your table in the data warehouse. {% endhint %}
Fill in the Query configuration (JSON) with the following structure:
json
fields(required): Paste the field names retrieved from Piano Analytics. Each field name must be a quoted string, separated by commas. Example:"fields": ["src", "page", "m_visits", "m_page_loads"]sort(optional): List of fields to sort by. Can be left empty.filter(optional): Paste the filter expression copied from the Piano API body. Can be left as an empty string if no filter is needed.
[📸 Screenshot — Query configuration pop-in (step 1 : Query)]
Once your JSON is filled in, click Next.
{% endstep %}
{% step %}
Map your fields (Schema)
The second step of the pop-in is the Schema mapping. QUANTI infers the type of each field and displays them in a table.
[📸 Screenshot — Schema mapping step (step 2 : Schema)]
For each field, you can:
Adjust the Type (STRING, INTEGER, FLOAT, etc.)
Check Quanti ID to mark the field as a primary key identifier — this should include all dimension fields of your report, as they collectively form the unique identifier of each row
Check Quanti Date to mark the field used as the partition date
Check Metric to flag a field as a numeric metric
Once all fields are correctly mapped, click Save to create the custom report table.
{% endstep %} {% endstepper %}
{% hint style="info" %} Limits
Max 50 dimensions and metrics per Custom Report
Piano Analytics limits the number of rows returned per query to 1,500,000 — use filters to stay within this limit {% endhint %}
Limits
Max 50 dimensions and metrics per Custom Query
Piano Analytics limits the number of rows returned per query to 1,500,000. We split our queries by day and by account, but it’s important to understand that if a single query for one account exceeds 1,500,000 rows, the API returns an error. As a result, the query fails, and the data is not inserted into our system.
To avoid this, make sure to use the filtering feature to reduce the number of returned rows and stay within the API limits.
Last updated