Могу ли я проверить несколько ga: pagePath по одному и тому же запросу? - PullRequest
0 голосов
/ 19 января 2019

У меня есть массив с примерно 100 сообщениями, которые я хотел бы видеть в статистике Google Analytics для каждого сообщения.Теперь я сделал функцию, которая зацикливается на каждом посте и печатает результат для каждого - но это занимает слишком много времени, и мне интересно, смогу ли я сделать эту работу с помощью всего ОДНОГО запроса в dimensionFilterClauses и просто добавить новый фильтр из массива постов.

Я пробовал несколько, но у меня не получается, и он возвращает только одну статистику поста.

array('/post/hey-everyone', '/post/hello-world/', '/post/test-this/');

function getReports($page_path, $start_date){
    global $VIEW_ID, $end_date, $analytics;

    $query = [
        "viewId" => $VIEW_ID,
        "dateRanges" => [
            "startDate" => $start_date,
            "endDate" => $end_date
        ],
        "metrics" => [
            "expression" => "ga:pageviews"
        ],
        "dimensions" => [
            "name" => "ga:pagepath"
        ],
        "dimensionFilterClauses" => [
            'filters' => [
                "dimension_name" => "ga:pagepath",
                "operator" => "EXACT", // valid operators can be found here: https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet#FilterLogicalOperator
                "expressions" => $page_path
            ]
        ]
    ];


    // build the request and response
    $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
    $body->setReportRequests(array($query));
    // now batchGet the results https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet
    $report = $analytics->reports->batchGet($body);
    $rows = $report[0]->getData()->getRows();
    if ($rows){
        $metrics = $rows[0]->getMetrics()[0]->values[0];
        if ($metrics){
            return $metrics;
        }
    }
    return false;
}
...