谷歌分析,显示实时PHP

时间:2017-04-06 20:45:01

标签: php html google-analytics

我对PHP很陌生,请耐心等待我:)

我的查询效果很好,但如何包含实时数据?

所以这是我目前的代码:



  <?php
  // Load the Google API PHP Client Library.
require_once 'google-client/vendor/autoload.php';

  // Start a session to persist credentials.
  session_start();

  // Create the client object and set the authorization configuration
  // from the client_secretes.json you downloaded from the developer console.
  $client = new Google_Client();
  $client->setAuthConfig('google-client/src/Google/client_secret.json');
  $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

  // If the user has already authorized this app then get an access token
  // else redirect to ask the user to authorize access to Google Analytics.
  if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
    // Set the access token on the client.
    $client->setAccessToken($_SESSION['access_token']);

    // Create an authorized analytics service object.
    $analytics = new Google_Service_Analytics($client);

    // Get the first view (profile) id for the authorized user.
    $profile = getFirstProfileId($analytics);

    // Get the results from the Core Reporting API and print the results.
    $results = getResults($analytics, $profile);
    printResults($results);
  } else {
    $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/acp/oauth2callback.php';
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
  }


  function getFirstProfileId($analytics) {
    // Get the user's first view (profile) ID.

    // Get the list of accounts for the authorized user.
    $accounts = $analytics->management_accounts->listManagementAccounts();

    if (count($accounts->getItems()) > 0) {
      $items = $accounts->getItems();
      $firstAccountId = $items[0]->getId();

      // Get the list of properties for the authorized user.
      $properties = $analytics->management_webproperties
          ->listManagementWebproperties($firstAccountId);

      if (count($properties->getItems()) > 0) {
        $items = $properties->getItems();
        $firstPropertyId = $items[0]->getId();

        // Get the list of views (profiles) for the authorized user.
        $profiles = $analytics->management_profiles
            ->listManagementProfiles($firstAccountId, $firstPropertyId);

        if (count($profiles->getItems()) > 0) {
          $items = $profiles->getItems();

          // Return the first view (profile) ID.
          return $items[0]->getId();

        } else {
          throw new Exception('No views (profiles) found for this user.');
        }
      } else {
        throw new Exception('No properties found for this user.');
      }
    } else {
      throw new Exception('No accounts found for this user.');
    }
  }

  function getResults($analytics, $profileId) {
    // Calls the Core Reporting API and queries for the number of sessions
    // for the last seven days.
  return $analytics->data_ga->get(
        'ga:146790870',
        '2016-11-01',
        'today',
        'ga:pageviews, ga:percentNewSessions');

  return  $analytics->data_realtime->get(
    'ga:146790870',
    'rt:activeUsers',
    $optParams);

  }
  function printResults($results) {
    // Parses the response from the Core Reporting API and prints
    // the profile name and total sessions.
    if (count($results->getRows()) > 0) {

      // Get the profile name.
      $profileName = $results->getProfileInfo()->getProfileName();

      // Get the entry for the first entry in the first row.
      $rows = $results->getRows();
      $pageviews = $rows[0][0];
      $percentNewSessions = $rows[0][1];

      // Print the results.
      echo "<div class='col s12 m6 l3' style='text-align:center;'>
      <div class='card green '>
            <div class='card-content white-text'>
              <span class='card-title' style='font-size: 1.2rem;'>Total Website Visitors</span>
              <p style=' margin: 0.2rem 0 0.2rem 0;font-size: 1.8rem; font-weight: bold;'>$pageviews</p>
              <p style=' color: white;font-size:1.0rem; font-weight: bold;'>" . (round($percentNewSessions)) ." % New Visitors</p>
            </div>
            <div class='card-action  green darken-2'>
            </div>
          </div>
          </div>";
    } else {
      echo "<div class='col s12 m6 l3' style='text-align:center;'>
      <div class='card green '>
            <div class='card-content white-text'>
              <span class='card-title' style='font-size: 1.2rem;'>Total Website Visitors</span>
              <p style=' margin: 0.2rem 0 0.2rem 0;font-size: 1.8rem; font-weight: bold;'>Error: No Data</p>
            </div>
            <div class='card-action  green darken-2'>
            </div>
          </div>
          </div>";
    }
  }
  ?>
&#13;
&#13;
&#13;

我做了它所以它也可以使用这个获得实时数据:(你也可以在上面看到它)

&#13;
&#13;
  return  $analytics->data_realtime->get(
    'ga:146790870',
    'rt:activeUsers',
    $optParams);
&#13;
&#13;
&#13;

那么我该怎样做才能回复实时数据呢?所以我可以展示它吗?

请记住我是新手,所以我可能会想念一些非常简单的事情

感谢先进的任何提示/帮助! :)

0 个答案:

没有答案