Creating a Custom Report in a Custom Plugin

I’m trying to create a Custom Report. I want it to display CustomDimensions, that I can find in
?module=API&method=Live.getLastVisitsDetails&idSite=1&period=day&date=today&format=JSON&token_auth= under actionDetails.

I tried to create the report as it is explained in this article:
https://developer.matomo.org/guides/custom-reports-extended

But I don’t get any results when I ask for ‘actionDetails’ instead of ‘browserName’.

My function looks like this:

$data = \Piwik\API\Request::processRequest('Live.getLastVisitsDetails', array(
            'idSite' => $idSite,
            'period' => $period,
            'date' => $date,
            'segment' => $segment,
            'numLastVisitorsToFetch' => 100,
            'minTimestamp' => false,
            'flat' => false,
            'doNotFetchActions' => true
        ));
        $data->applyQueuedFilters();

        // we could create a new instance by using new DataTable(),
        // but we would lose DataTable metadata, which can be useful.
        $result = $data->getEmptyClone($keepFilters = false);

        foreach ($data->getRows() as $visitRow) {
            $actionDetails = $visitRow->getColumn('browserName');
            // try and get the row in the result DataTable for the browser
            $browserRow = $result->getRowFromLabel($actionDetails);

            $test = $visitRow->getColumn('actionDetails');
            var_dump($test);

            // if there is no row for this browser, create it
            if ($browserRow === false) {
                $result->addRowFromSimpleArray(array(
                    'label'     => $actionDetails,
                    'nb_visits' => 1
                ));
            } else { // if there is a row, increment the counter
                $counter = $browserRow->getColumn('nb_visits');
                $browserRow->setColumn('nb_visits', $counter + 1);
            }
        }

        return $result;

The var_dump returns array(0) { } although I can see data when I open the ?module=API&method=Live.getLastVisitsDetails&idSite=1&period=day&date=today&format=JSON&token_auth= link.

How can I get the actionDetails data?

2 Likes

Nevermind, i just realized doNotFetchActions is set to true. :woman_facepalming:

1 Like