从脚本中获取访问者数量

时间:2017-09-10 13:16:51

标签: php google-analytics analytics google-analytics-api

我知道如何使用Data Studio或{Javascript中的with Google Apps script访问Google Analytics数据:

var account = Analytics.Management.Accounts.list().items[0];
var webProperties = Analytics.Management.Webproperties.list(account.id);
...
var report = Analytics.Data.Ga.get(tableId, startDate, endDate, metric,
  options);

但在PHP中,如何从Google Analytics帐户/属性/视图中检索特定网站或特定网页的访问者数量?即:

输入:分析帐户登录/密码/网站代码'UA-XXXXX-Y'

输出:[19873,17873,13999,21032,...,16321](即最后30天每一天www.example.com的访问次数,作为整数列表或JSON)

2 个答案:

答案 0 :(得分:4)

您可以在PHP中使用Google AnalyticsAPI客户端。 Google analytic api client library

您可以使用Query Explorer创建要检查的查询。

代码示例:

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\DotNetFX451

上面的示例使用了PHP中的Google AnalyticsAPI客户端。这是PHP发布的第一个库。六年后,这个软件已经过时了。谷歌改变了API。 作为替代方案,您可以使用GAPI库。 以上是它如何工作的示例,您可以包含gapi类以使其正常工作。

GAPI Analytic Library

另一种方法是您可以使用PHP的 Google Analytics Reporting API v4 。 你可以使用composer获得这个:

$analytics = new analytics('username', 'password');
$analytics->setProfileByName('user.name');
//set the date range for which you want stats for 
$analytics->setMonth(date('n'), date('Y'));
// it could also be $analytics->setDateRange('YYYY-MM-DD', 'YYYY-MM-DD'))
print_r($analytics->getVisitors());
print_r($analytics->getPageviews());

Guide to usage of this library is at github

答案 1 :(得分:1)

我使用这个包:

https://github.com/google/google-api-php-client

您可以使用它来访问PHP中的所有Google API,当然包括Google Analytics

以下是如何使用它的示例:

// create client object and set app name
$client = new Google_Client();
$client->setApplicationName('Your app name'); // name of your app

// set assertion credentials
$client->setAssertionCredentials(
    new Google_AssertionCredentials(
        'your_analytics_email@gmail.com', // email you added to GA
        [
            'https://www.googleapis.com/auth/analytics.readonly'),          
            file_get_contents('/your/key/file.p12') // keyfile you downloaded
        ]
    )
);

// other settings
$client->setClientId('your-client-id'); // from API console
$client->setAccessType('offline_access'); // this may be unnecessary?

// create service and get data
$service = new Google_AnalyticsService($client);

$from_date = date("Y-m-d",strtotime("-30 days")); // A month
$to_date = date("Y-m-d");

$response = $service->data_ga->get(
    "ga:profile_id", // profile id
    "$from_date", // start date
    "$to_date", // end date
    "ga:uniquePageviews",
    [   
        'dimensions' => 'ga:pagePath', // Dimensions you want to include, pagePath in this example
        'sort' => '-ga:uniquePageviews', // Sort order, order by unique page views from high to low in this case
        'filters' => 'ga:pagePath=~\/articles\/[a-zA-Z0-9\-]+', // example url filter
        'max-results' => '50' // Max results
    ]
);
foreach ($response["rows"] as $row) {
    // ...do whatever you want with the results
}

另外,这里有关于如何使用Google API的指南:

https://developers.google.com/api-client-library/php/start/get_started

编辑:您需要创建凭据才能访问Analytics API。你在这里做到:https://console.cloud.google.com/flows/enableapi?apiid=analyticsreporting.googleapis.com&credential=client_key。您需要先注册项目,然后创建凭据。有三个选项:API密钥,OAuth客户端ID和服务帐户密钥。我不想使用OAuth,所以我使用了服务帐户密钥。您可以尝试使用API​​密钥,在这种情况下替换$client->setAssertionCredentials(...) $client->setDeveloperKey(your_api_key)的{​​{1}}调用。您无法直接使用用户名和密码AFAIK。