highsolutions/google-keywords
Composer 安装命令:
composer require highsolutions/google-keywords
包简介
A Laravel package for synchronizing with Google Search Console to get visitors' search keywords
README 文档
README
A Laravel package for synchronizing with Google Search Console to get visitors' search keywords.
Installation
Add the following line to the require section of your Laravel webapp's composer.json file:
"require": { "HighSolutions/GoogleKeywords": "1.*" }
Run composer update to install the package.
This package uses Laravel 5.5 Package Auto-Discovery.
For previous versions of Laravel, you need to update config/app.php by adding an entry for the service provider:
'providers' => [ // ... HighSolutions\GoogleKeywords\GoogleKeywordsServiceProvider::class, ];
Next, publish all package resources:
php artisan vendor:publish --provider="HighSolutions\GoogleKeywords\GoogleKeywordsServiceProvider"
This will add to your project:
- migration - database table for storing keywords
- configuration - package configurations
Remember to launch migration:
php artisan migrate
Next step is to add cron task via Scheduler (app\Console\Kernel.php):
protected function schedule(Schedule $schedule) { // ... $schedule->command('keywords:fetch')->daily(); }
Configuration
| Setting name | Description | Default value |
|---|---|---|
| websites.*.url | URL of website (with protocol) | '' |
| websites.*.credentials | JSON credentials file on server | storage_path('app/google-search-credentials.json') |
Websites are defined in configuration as:
<?php return [ 'websites' => [ [ 'url' => 'http://highsolutions.pl', 'credentials' => storage_path('app/HS-Credentials.json'), ], // ... ], ];
Invalid configuration will return information about error.
Google Search Console and Google Cloud Platform integration
In order to get access to keywords from Google Search you need to complete 2 steps:
- Google Search Console (https://www.google.com/webmasters/tools/home)
- Add your website
- Verify your ownership of website
- Google Cloud Platform (https://console.cloud.google.com/apis/credentials)
- Add new project
- Generate server-side API key
- Download JSON credentials (name-of-project-id.json) and store them into
storage/appfolder - Copy e-mail address of API key (e.g. name-of-key@name-of-package-id.iam.gserviceaccount.com) - available here: https://console.cloud.google.com/iam-admin/serviceaccounts/project?project=PROJECT_NAME-ID
- Assign it as owner of website in Google Search Console
Model structure
Model consists of fields:
id- primary keyurl- URL of websitekeyword- full keyworddate- date of resultclicks- number of clicks on link in search view with particular keywordimpressions- number of views of link in search view with particular keywordctr- click through rate (clicks / impressions)avg_position- average position of link on list of results in search view with particular keyword
Model API
To make usage of gathered data easier, there is a simple API for most common use cases:
url('http://example.com')- adds where clause for limiting results to only one website (not necessary when you fetch only one website)grouped()- prepares sum of clicks and impressions of each keyword gathered for the websitebyDay()- prepares sum of clicks and impressions of each dayorderByDate($dir = 'asc')- sorts results by dateorderBySum($param = 'clicks')- sorts results by sum of clicks/impressions (works withgroupedscope)orderByAlpha($dir = 'asc')- sorts results alphabetically
Usage
- Get most popular keywords of your website:
<?php use HighSolutions\GoogleKeywords\Models\GoogleKeyword; $results = GoogleKeyword::url('http://highsolutions.pl')->grouped()->orderBySum('clicks')->take(10)->get();
- Get all keywords stored day by day:
<?php use HighSolutions\GoogleKeywords\Models\GoogleKeyword; $results = GoogleKeyword::url('http://highsolutions.pl')->orderByDate()->get();
- Get number of clicks/impressions in the last month:
<?php use Carbon\Carbon; use HighSolutions\GoogleKeywords\Models\GoogleKeyword; $results = GoogleKeyword::url('http://highsolutions.pl')->byDate()->where('date', '>=', Carbon::now()->subMonth(1))->orderByDate()->get();
Changelog
1.2.0
- Laravel 7.x and 8.x support
1.1.0
- Laravel 6.0 support
1.0.3
- Support Package Auto-Discovery
1.0.2
- Fix error with checking config
1.0.0
- Create package
- Model API
Roadmap
- Gather info about subsites also
- Examples of usage as controllers and views
- Comments
- Unit tests!
Credits
This package is developed by HighSolutions, software house from Poland in love in Laravel.
highsolutions/google-keywords 适用场景与选型建议
highsolutions/google-keywords 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 177 次下载、GitHub Stars 达 11, 最近一次更新时间为 2017 年 08 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「search」 「console」 「google」 「tools」 「laravel」 「webmaster」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 highsolutions/google-keywords 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 highsolutions/google-keywords 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 highsolutions/google-keywords 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This class provides you with an easy-to-use interface to progress bars.
A Laravel package to retrieve data from Google Search Console
Additional artisan commands for Laravel
Indexed Search Autocomplete - Extends the TYPO3 Core Extension Indexed_Search searchform with an autocomplete feature.
Abstraction Layer to index and search entities
A table generator class for the PHP CLI.
统计信息
- 总下载量: 177
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 11
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-08-03
