Как запросить данные из Google Analytics сайта? - PullRequest
0 голосов
/ 23 октября 2018

Прежде всего, я никогда раньше не работал с Google Analytics, а теперь, когда мне нужно немного запутаться, чтобы понять поток.

Я провел много исследований в Интернете.Я сталкиваюсь с тем, что для аутентификации вам необходим секретный ключ, который создается на консоли разработчика.Если у меня есть этот ключ, я могу следовать стандартным примерам, найденным для получения любых данных, которые мне нужны для сайта.

Однако у меня есть несколько сомнений:

  1. Я работаю надвнештатная основа.Так что мой клиент дал мне доступ к аналитике Google своего сайта.Итак, как мне прочитать аналитические данные, такие как количество посетителей и так далее?Поскольку моей электронной почте уже разрешен доступ к данным, я могу запросить или мне все еще нужен ключ аутентификации, который должен быть в формате json?
  2. Если мне нужен ключ json, как он работает?Это как создать ключ в консоли разработчика https://console.developers.google.com и использовать этот ключ для чтения данных клиента?Является ли этот ключ единым центром для аутентификации себя при доступе к любому API с любого сайта, если они добавили меня в свою учетную запись?
  3. Я получаю доступ к аналитическим данным Google моего клиента здесь: https://analytics.google.com/analytics/web

Пожалуйста, объясните мне правильный поток о том, как читать чужие данные сайта через PHP .. Мне просто нужна общая идея.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Я пытаюсь с примером. Прежде всего, клиент Google

композитор требует "google / apiclient"

В console.developers.google.com:

  • включить аналитику API
  • определить проект (например: идентификатор проекта)

2) файл credentials_file

Создать учетную запись службы в:

https://console.developers.google.com/iam-admin/serviceaccounts?project=project-id

enter image description here

, с помощью которого вы создадите файл учетных данных в "путь / к / / service-account-credentials.json"

{
  "type": "service_account",
  "project_id": "project-id",
  "private_key_id": "1234567890abcderf1234567890abcderf1234567890abcderf",
  "private_key": "-----BEGIN PRIVATE KEY-----\nBASE64KEY=\n-----END PRIVATE KEY-----\n",
  "client_email": "service-user@some.domain.gserviceaccount.com",
  "client_id": "000000000000000000000000000000",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cront-reriever-search-stats%40redooc-dot-com.iam.gserviceaccount.com"
}

3) определение того, что вы хотите ($ infos), для нужного вам представления ведьмы ($ viewId) и файла учетных данных($ credentials_file) и диапазон дат, вы запросите API и получите результаты в $ response

 $infos= [
    'users'              => 'ga:users',
    'pageviews'              => 'ga:pageviews',
    'pageviewsPerSession' => 'ga:pageviewsPerSession',
    'unique page view'       => 'ga:uniquePageviews',
    'organicSearches'          => 'ga:organicSearches',
    'avgSessionDuration'      => 'ga:avgSessionDuration',
    'avgTimeOnPage'  => 'ga:avgTimeOnPage',
];
$credentials_file='path/to/the/service-account-credentials.json';

$viewId='1600000'; // the view ID see imgae            
$client = new \Google_Client();
$credentials_file = $this->checkServiceAccountCredentialsFile()) {
$client->setAuthConfig($credentials_file);
$client->addScope("https://www.googleapis.com/auth/analytics.readonly");
$analytics = new \Google_Service_AnalyticsReporting($client);
$response = getReport($viewId, $analytics, $infos, $DateStart, $DateEnd);

enter image description here

ADD getReport funtion

function getReport($viewId, $analytics, $dataAnalytics, $startDate, $endDate)
    {

        $dateRange = new \Google_Service_AnalyticsReporting_DateRange();
        $dateRange->setStartDate($startDate);
        $dateRange->setEndDate($endDate);


        // Create the ReportRequest object.
        $request = new \Google_Service_AnalyticsReporting_ReportRequest();
        $request->setViewId($viewId);
        $request->setDateRanges($dateRange);

        // Create the Metrics object.
        $_metrics = [];
        foreach ($dataAnalytics as $gaLabel => $gaValue) {
            $metric = new \Google_Service_AnalyticsReporting_Metric();
            $metric->setExpression($gaValue);
//            $metric->setAlias($gaLabel);
            $_metrics[] = $metric;
        }

        $request->setMetrics($_metrics);

        $body = new \Google_Service_AnalyticsReporting_GetReportsRequest();
        $body->setReportRequests(array($request));
        return $analytics->reports->batchGet($body);
    }
0 голосов
/ 23 октября 2018

У вас есть два варианта использования поиска по сайту для поисковых систем на основе POST:

Вариант 1. Настройте веб-приложение для добавления ключевых слов запроса в конец URL-адреса (например, * 1004).* и затем настройте Поиск по сайту, как описано в предыдущем разделе.

Вариант 2. Настройте код отслеживания на странице результатов, чтобы динамически указывать путь к виртуальной странице, включающий ключевые слова запроса. Код отслеживания в результатахстраница будет выглядеть примерно так:

analytics.js: ga ('отправить', 'просмотр страницы', '/search_results.php?q=keyword');

ссылка: https://support.google.com/analytics/answer/1012264?hl=en

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...