schulzefelix/laravel-search-console
| Install | |
|---|---|
composer require schulzefelix/laravel-search-console |
|
| Latest Version: | 1.8.0 |
| PHP: | ^8.0.2 |
| License: | MIT |
| Last Updated: | Oct 5, 2023 |
| Links: | GitHub · Packagist |
Laravel Search Console
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
SearchConsole::setAccessToken($token)->listSites();
//get site details (permissionLevel) for specific site
SearchConsole::setAccessToken($token)->getSite('http://blog.example.com/');
Install
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'),
];
Usage
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')
->searchAnalyticsQuery(
'https://www.example.com/',
Period::create(Carbon::now()->subDays(30), Carbon::now()->subDays(2)),
['query', 'page', 'country', 'device', 'date'],
[['dimension' => 'query', 'operator' => 'notContains', 'expression' => 'cheesecake']],
1000,
'web',
'all',
'auto'
);
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:
SearchConsole::getWebmastersService();
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ vendor/bin/phpunit
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email github@schulze.co instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Related Packages
Manage and generate SEO tags and integrate your website with Google SEO services
