A Laravel package to retrieve data from Google Search Console

dev-master 2023-03-06 15:34 UTC

This package is not auto-updated.

Last update: 2023-05-30 14:52:51 UTC


Latest Version Software License Build Status Quality Score StyleCI Latest Version on Packagist Total Downloads

Using this package you can easily retrieve data from Google Search Console API.

Here are a few examples of the provided methods:

use SearchConsole;

//list all available sites for that token

//get site details (permissionLevel) for specific site


This package can be installed through Composer.

$ composer require schulzefelix/laravel-search-console

Optionally, you can publish the config file of this package with this command:

php artisan vendor:publish --provider="SchulzeFelix\SearchConsole\SearchConsoleServiceProvider"

The following config file will be published in config/search-console.php

return [

    | Authentication
    | Google offers access via OAuth client IDs or service accounts.
    | For more information see: https://developers.google.com/identity/protocols/OAuth2
    | Supported: "oauth", "oauth_json", "service_account",
    'auth_type' => env('GOOGLE_AUTH_TYPE', 'oauth'),
    | Application Credentials
    | https://developers.google.com/api-client-library/php/auth/service-accounts#creatinganaccount
    'connections' => [
        'oauth' => [
            'client_id' => env('GOOGLE_CLIENT_ID'),
            'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'oauth_json' => [
            'auth_config' => storage_path('app/searchconsole/oauth-account-credentials.json'),
        'service_account' => [
            'application_credentials' => storage_path('app/searchconsole/service-account-credentials.json'),
     | Cache Settings
     | Here you may configure the "store" that the underlying Google_Client will
     | use to store it's data.  You may also add extra parameters that will
     | be passed on setCacheConfig (see docs for google-api-php-client).
     | Optional parameters: "lifetime", "prefix"
    'cache' => [
        'store' => 'file',
    | Application Name
    'application_name' => env('SEARCH_CONSOLE_APPLICATION_NAME', 'GSC Agent'),


Here are two basic example to retrieve all sites and an export for search analytics data.

List Sites

$sites = SearchConsole::setAccessToken($token)->listSites();

Search Analytics

use SearchConsole;
use SchulzeFelix\SearchConsole\Period;

    $data = SearchConsole::setAccessToken($token)->setQuotaUser('uniqueQuotaUserString')
            Period::create(Carbon::now()->subDays(30), Carbon::now()->subDays(2)),
            ['query', 'page', 'country', 'device', 'date'],
            [['dimension' => 'query', 'operator' => 'notContains', 'expression' => 'cheesecake']],

Provided methos

Retrieve One Site

public function public function getSite(string $siteUrl): array

Retrieve All Sites

public function public function listSites(): Collection

Retrieve Search Analytics Data

public function searchAnalyticsQuery(string $siteUrl, Period $period, array $dimensions = [], array $filters = [], int $rows = 1000, string $searchType = 'web', string $dataState = 'final', string $aggregationType = 'auto'): Collection

Check Access Token

public function public function isAccessTokenExpired(): Bool

Provided fluent configuration

Set Access Token (Required)

$sites = SearchConsole::setAccessToken($token)->listSites();

Set Quota User

To avoid to the API limits, you can provide a unique string for the authenticated account.

More information: https://developers.google.com/webmaster-tools/search-console-api-original/v3/limits

$sites = SearchConsole::setAccessToken($token)->setQuotaUser('uniqueQuotaUserString')->listSites();

Get Underlying Service

You can get access to the underlying Google_Service_Webmasters object:


Change log

Please see CHANGELOG for more information what has changed recently.


$ vendor/bin/phpunit


Please see CONTRIBUTING and CONDUCT for details.


If you discover any security related issues, please email github@schulze.co instead of using the issue tracker.



The MIT License (MIT). Please see License File for more information.