googleads / google-ads-php
PHP版本的Google Ads API客户端
Requires
- php: >=8.1
- google/gax: ^1.19.1
- google/protobuf: ^3.21.5 || ^4.26
- grpc/grpc: ^1.36.0
- monolog/monolog: ^1.26 || ^2.0 || ^3.0
Requires (Dev)
- ext-bcmath: *
- ext-grpc: *
- ext-protobuf: *
- composer/composer: ^2.0
- phpunit/phpunit: ^9.5
- react/http: ^1.2.0
- squizlabs/php_codesniffer: ^3.5
- ulrichsg/getopt-php: ^3.4
Suggests
- ext-grpc: To be able to use the gRPC transport, use the C implementation of gRPC
- ext-protobuf: For better performance, use the C implementation of Protobuf
- google/protobuf: In case the C implementation of Protobuf is not suitable, use the PHP one
- grpc/grpc: In case the C implementation of gRPC is not suitable, use the PHP one to enable other transports
- react/http: To run the AuthenticateInWebApplication.php example
- dev-main
- v24.0.0
- v23.1.0
- v23.0.1
- v23.0.0
- v22.1.1
- v22.1.0
- v22.0.0
- v21.1.0
- v21.0.1
- v21.0.0
- v20.1.0
- v20.0.0
- v19.2.0
- v19.1.0
- v19.0.0
- v18.0.0
- v17.1.0
- v17.0.0
- v16.0.0
- v15.1.0
- v15.0.0
- v14.0.0
- v13.0.0
- v12.1.0
- v12.0.0
- v11.0.0
- v10.1.0
- v10.0.0
- v9.0.0
- v8.1.0
- v8.0.0
- v7.0.0
- v6.1.0
- v6.0.0
- v5.0.0
- v4.0.0
- v3.2.0
- v3.1.0
- v3.0.0
- v2.2.0
- v2.1.0
- v2.0.0
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- v0.7.0
- v0.6.0
- v0.5.0
- v0.4.0
- 0.3.0
- v0.2.0
- 0.1.0
- dev-fix-handlepartialfailure
- dev-real-fix-v17-laravel
- dev-fix-laravel-v17
- dev-legacy-v24.0.0
- dev-legacy-v23.1.0
- dev-patch-22.1.0
- dev-legacy-v23.0.0
- dev-legacy-v22.1.0
- dev-remove-v12
- dev-fix-getchangedetails
- dev-update-fieldmasks-github
- dev-update-fieldmasks
- dev-fix-monologcalls-googleadscalllogger
- dev-PierrickVoulet-patch-32
- dev-PierrickVoulet-patch-31
- dev-PierrickVoulet-patch-30
- dev-PierrickVoulet-patch-29
- dev-PierrickVoulet-patch-28
- dev-PierrickVoulet-patch-27
- dev-PierrickVoulet-patch-26-1
- dev-PierrickVoulet-patch-26
- dev-release-v7-2cd2dac95ffbf1550c4d
- dev-PierrickVoulet-patch-22
- dev-release-v6_1-9dfd35d17aaeadb3ccf8
- dev-release-v6_1-b7c53d37cfcfa22368ab
- dev-PierrickVoulet-patch-25
- dev-PierrickVoulet-fix-ad-violation-comment
- dev-PierrickVoulet-patch-24
- dev-fix-getadgroupbidmodifier
- dev-upstream/PierrickVoulet-patch-22
- dev-update-php-badge
- dev-PierrickVoulet-patch-23
- dev-sunset-v7_2-travis
- dev-release-v6_1-6000fdeacb1917c14433
- dev-fix-getfieldvalue-fieldmasks
- dev-PierrickVoulet-patch-21
- dev-PierrickVoulet-patch-20
- dev-release-v6_0-38d7baa325d92bab1d6d
- dev-change-param-names-shopping
- dev-support-logging-stream
- dev-PierrickVoulet-patch-19
- dev-PierrickVoulet-patch-18
- dev-PierrickVoulet-patch-17
- dev-fix-updatesitelinks
- dev-PierrickVoulet-patch-16
- dev-release-v6_0-d184adf1859ae5e71eff
- dev-PierrickVoulet-patch-15
- dev-PierrickVoulet-patch-14
- dev-add-fieldmasks-presence-test
- dev-PierrickVoulet-patch-13
- dev-release-v5_0-12b103c351ef5530c53f
- dev-PierrickVoulet-patch-12
- dev-PierrickVoulet-patch-11
- dev-fix-addgeotarget-typo
- dev-PierrickVoulet-patch-10
- dev-PierrickVoulet-patch-8
- dev-PierrickVoulet-patch-9
- dev-release-v4_0-b2abe2b2fa4b514a7d94
- dev-update-readme-for-better-visibility
- dev-update-readme-for-visibility
- dev-add-displayuploadad
- dev-revert-googleadsexceptiontest
- dev-increase-coverage-statusmetadataextractor
- dev-increase-coverage-3
- dev-increase-coverage-serviceclientfactorytrait
- dev-increase-coverage-2
- dev-increase-coverage-1
- dev-add-sitelinks-using-feeds
- dev-PierrickVoulet-patch-7
- dev-PierrickVoulet-patch-6
- dev-PierrickVoulet-patch-5
- dev-release-v3_2-0e1f01e5149d9b707307
- dev-add-support-resouce-name-request
- dev-update-get-account-budgets
- dev-rename-acceptservicelinks
- dev-PierrickVoulet-patch-4
- dev-add-acceptservicelink
- dev-add-upload-call-conversion
- dev-update-getaccounthierarchy-1
- dev-PierrickVoulet-patch-3
- dev-add-targeting-removing-extensions-ex
- dev-PierrickVoulet-patch-2
- dev-update-comments-stringattributeexamples
- dev-remove-page-size-getgeotargetconstants
- dev-rename-getgeotargetconstant
- dev-updateandremovefeeditem
- dev-fix-fieldmasks
- dev-update-eta
- dev-add-addhotelcalloutextension
- dev-PierrickVoulet-patch-1
- dev-add-responsivesearchad-example
- dev-release-v3_1-0ea9f55bdbc1a9951247
- dev-PierrickVoulet-add_app_campaign-image_asset
- dev-PierrickVoulet-add_app_campaign-image_resource_names-1
- dev-PierrickVoulet-add_app_campaign-image_resource_names
- dev-update-contributing.md
- dev-PierrickVoulet_validate-text-ad_add-comment-1
- dev-PierrickVoulet_validate-text-ad_add-comment
- dev-create-github-templates
- dev-fix-style-psr12
- dev-add-addlistingscope-2
- dev-add-updatecampaigncriterionbidmodifier
- dev-add-addlistingscope
- dev-add-addprices
- dev-fix-getartifactmetadata
- dev-release-v2_2-a20147f798a1ccda3538
- dev-add-getsitelinks
- dev-update-getaccounthierarchy
- dev-addaudiences
- dev-adddemographictargetingcriteria
- dev-fix-phpdoc-etas
- dev-min-php-version
- dev-add-updateflightfeeditemattributevalue
- dev-release-v2_2-3cab26ad25f7669cdf90
- dev-add-addflightsfeed-ex
- dev-add-getaccounthierarchy
- dev-fix-typehint-getkeyword
- dev-logger-use-fopen-instead
- dev-add-addGoogleMyBusinessLocationExtensions
- dev-fix-listaccessiblecustomers-example
- dev-support-mutate-operations-in-errors
- dev-release-v2_1-ff02e280dc6ba2d87c01
- dev-add-serviceaccount
- dev-add-experiments-examples
- dev-add-codecov
- dev-test-travis2
- dev-make-customerid-int
- dev-fix_filter_var_php73
- dev-revert-fix-logmessageformattertest
- dev-fix-phpunit-cover
- dev-test-travis
- dev-add-travis
- dev-test-githubhook
- dev-fix-phpcs-problems
- dev-add-responsivedisplayad
- dev-add-eta-handlepolicyviolation
- dev-add-handlepolicyviolation
- dev-fix-googleadsmetadatatrait
- dev-release-v2-4f786170048c9154205a
- dev-prevent-risky-tests
- dev-add-instantiate-classes-test
- dev-small-fix-getaccountinfo
- dev-temp-fix-logmessageformattertest
- dev-update-changelog-v1.4.1
- dev-update-readme-devsite
- dev-specify-metadata-size
- dev-logging-default
- dev-fix-phpcs-ruleset
- dev-fix-phpcs-issues
- dev-proxy-support
- dev-refactor-mjs-example
- dev-update-changelog-v1.4.0
- dev-gen-src-adjust-timeout
- dev-refactor-mutatejobservice-example
- dev-add-completecampaigns-usingmutatejobservice
- dev-remove_unnecessary_dependencies
- dev-release-V1_2-803d12cc5be885b2c4ce
- dev-release-V1_2-a4c81da9d57f7d4b2db2
- dev-release-V1_2-d3ec18e46ec5cc39750b
- dev-release-v1_2-81fce7266cf132a19d9c
- dev-update-handlepartialfailure
- dev-docker-container
- dev-update-gitattributes
- dev-create-migration-examples
- dev-move-partial-failure-example
- dev-type-hint-with-login-customer-id
- dev-release-v1_1-542f8fa0a9645565530c
- dev-handle-partial-failures
- dev-hide-googleadsfailure
- dev-ignore-vscode-config
- dev-upgrade-phpunit-7
- dev-updating-composerjson
- dev-fix-adwords-googleads
- dev-update-readme-v1
- dev-release-V1_0-149baa4222fdd504ac03
- dev-release-v0_7-2bb0a4fb907b4624f750
- dev-add-gethoteladsperformance-example
- dev-add-listaccessible-customers
- dev-generatekeywordideas-ex
- dev-create-customer-ex
- dev-update-readme-grpc
- dev-dismiss-recommendation-ex
- dev-release-v0_6-66e389139035e5390f57
- dev-release-v0_5-5631a06d4c91b8157e60
- dev-release-v0_4-37b78dd1b2a5c5ef827f
- dev-release-v0_3-e139d2fc3b06d9026a67
- dev-release-stage
This package is auto-updated.
Last update: 2024-09-12 05:45:59 UTC
README
此项目托管了Google Ads API的PHP客户端库。它遵循PHP日落时间表,并在最低要求的PHP版本达到其生命周期的4到5个月后更新composer.json文件。基于现有的支持PHP版本,更新大约每年发生一次。
重要 如#880中宣布,PHP版本的Google Ads API客户端库已更新为需要PHP 8作为最低版本。这意味着支持PHP 7的库的最终版本是v19.2.0,支持Google Ads API v12到v14。
Google Ads API v14计划于2024年5月底停用。因此,PHP 7用户大约有11个月的时间迁移到PHP 8,以便无缝继续使用此库。
功能
要求
- 支持32位和64位PHP系统,但我们强烈建议如果可能的话使用64位。这是因为Google Ads API的许多字段被指定为64位整数,并且将32位系统中的值从
float
强制转换为int
可能会导致问题。32位PHP系统支持的整数最大值通常是2147483647,有关更多详细信息,请参阅PHP_INT_MAX。 - 此库依赖于Composer。如果您尚未在计算机上安装它,请遵循Linux/Unix/OS X的安装指南或Windows的安装指南。在本指南的其余部分中,我们假设您正在使用Linux/Unix/OS X并且已全局安装Composer,因此您的安装Composer可以在命令行上作为
composer
使用。 - 系统要求和依赖关系可以在该库的composer.json中找到。
- PHP:您可以在
require
键下的"php"
中找到所需的最低PHP版本,该键位于composer.json
文件中。我们通常将其设置为PHP开发团队仍提供安全补丁的最小PHP版本。当此类版本停止支持时,我们将相应地更新composer文件。目前,更新频率大约为一年一次,根据官方时间表。访问此页面了解PHP的介绍。 - gRPC:要安装gRPC PHP扩展,请确保满足项目文档中列出的任何附加要求。您可以通过阅读我们的传输指南了解更多关于如何使用此库的gRPC信息。使用
PECL
安装通常需要几分钟。- 使用命令
sudo pecl install grpc
安装扩展。 - 将
extension=grpc.so
行添加到php.ini
文件中。 - 在终端中运行
php -i | grep grpc
:如果返回一些内容,则表示它已正确安装和配置。
- 使用命令
- Protobuf:要安装Protobuf PHP扩展,请确保满足项目文档中列出的任何附加要求。如果在安装过程中遇到任何错误,您可以跳过此步骤,将使用PHP实现。您可以通过阅读我们的Protobuf实现指南了解更多关于如何使用此库的Protobuf信息。使用
PECL
安装通常需要几分钟。- 使用命令
sudo pecl install protobuf
安装扩展。 - 将
extension=protobuf.so
行添加到php.ini
文件中。 - 在终端中运行
php -i | grep protobuf
:如果返回一些内容,则表示它已正确安装和配置。
- 使用命令
- PHP:您可以在
- 您需要一个开发人员令牌才能连接到Google Ads API。
- 库的一个版本通常支持Google Ads API的多个版本。您可以通过查看CHANGELOG.md文件来识别哪些版本的库添加或删除了对特定版本Google Ads API的支持。例如,Google Ads API的
V7
版本在库的v9.0.0
版本中添加,如此处所述。
入门指南
运行代码示例
如果您想尝试我们的代码示例,请按照以下步骤操作。
-
通过以下方式在您选择的目录中克隆此项目:
git clone https://github.com/googleads/google-ads-php.git
-
切换到
google-ads-php
目录。cd google-ads-php
您将看到一些文件和子目录
composer.json
:此库的要求的composer文件。src
:库的源代码。tests
:库代码的测试。examples
:许多示例,演示如何使用Google Ads API通过库执行常见用例。metadata
:一些源代码内部使用的元数据文件。它们是自动生成的文件,因此您不应该修改它们。
-
在命令提示符中运行
composer install
。这将安装使用库和运行示例所需的所有依赖项。 -
设置您的OAuth2凭据。
Google Ads API使用OAuth2作为认证机制。根据您的用例选择合适的选项,并阅读并遵循示例打印到控制台中的说明。
-
将示例中的
google_ads_php.ini
(点击此处访问)复制到您的家目录。此库通过使用EnvironmentalVariables::getHome()
来确定您的计算机的家目录。 -
按照https://developers.google.com/google-ads/api/docs/oauth/cloud-project中的说明创建OAuth2客户端ID和密钥,用于
已安装的应用程序
OAuth2流程。 -
运行
GenerateUserCredentials
示例,该示例将提示您输入OAuth2客户端ID和密钥。 -
将示例最后一步的输出复制到您家目录中的
google_ads_php.ini
文件中。别忘了填写您的开发者令牌。
-
-
运行GetCampaigns示例以测试您的凭据是否有效。您还需要将不带连字符的您的Google Ads账户的客户ID作为命令行参数传递
php examples/BasicOperations/GetCampaigns.php --customerId <YOUR_CUSTOMER_ID>
注意:代码示例旨在从命令提示符运行,而不是通过网络浏览器。
-
探索其他示例。
示例目录中包含几个有用的示例。大多数示例都需要参数。您可以通过将
--help
作为命令行参数运行代码示例来查看所需参数。注意:您将在这些示例的源代码中找到格式为
[START...]
和[END...]
的注释。这些仅用于技术目的,您可以完全忽略它们。
将库安装为项目的依赖项
- 切换到您的项目的根目录。
- 在命令提示符中运行
composer require googleads/google-ads-php
。这将在此项目的根目录的vendor/
目录中安装此库及其所有依赖项。 - 设置您的OAuth2凭据,如前文所述。
- 您现在可以通过导入其类来使用此库,如代码示例中所示。
基本用法
实例化客户端
要使用Google Ads API发出请求,您首先需要创建一个GoogleAdsClient。
有关在实例化时如何配置客户端的更多信息,请参阅配置指南。
获取服务客户端
一旦您有了GoogleAdsClient
的一个实例,您就可以使用其中一个get...ServiceClient()
方法获取特定服务的服务客户端。
创建的服务客户端可以是基于useGapicV2Source
配置值的GAPIC(生成API客户端)v1或v2源代码。有关详细信息,请参阅GAPIC和配置字段。
客户端配置
查看配置指南。
传输
可以使用不同类型的传输。有关更多信息,请参阅传输指南。
Protobuf
无论使用哪种传输方式请求Google Ads API,都会使用Protobuf。
有关更多信息,请参阅Protobuf指南。
在Docker容器中运行
请参阅在Docker容器中运行指南。
日志记录
请参阅日志记录指南。
代理配置
请参阅代理指南。
性能
请参阅性能指南。