dagyrazev / google-ads-php
PHP 7.0.3的Google Ads API客户端
Requires
- php: >=7.2
- google/gax: ^1.3.0
- google/protobuf: ^3.11.4
- monolog/monolog: ^1.23.0 || ^2.0
- ulrichsg/getopt-php: ^3.2.2
Requires (Dev)
- ext-bcmath: *
- phpunit/phpunit: ^7.5
- react/http: ^0.8.3
- squizlabs/php_codesniffer: ^3.5
Suggests
- php-64bit: >=7.1
- 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
- react/http: To run the AuthenticateInWebApplication.php example
- dev-dev-fix-php
- 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.6-alpha
- v0.5.0
- v0.5-alpha
- v0.4.0
- v0.4-alpha
- 0.3.0
- v0.2.0
- 0.1.0
- dev-fix-php
- dev-master
- 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 not auto-updated.
Last update: 2024-09-28 09:32:33 UTC
README
此项目托管了Google Ads API的PHP客户端库。
功能
要求
- 此库依赖于Composer。如果您尚未在计算机上安装它,请遵循Linux/Unix/OS X安装指南或Windows安装指南。在本指南的其余部分,我们假设您正在使用Linux/Unix/OS X并且已全局安装Composer,因此,您的安装Composer可以通过命令行作为
composer
使用。 - 系统要求和依赖关系可以在本库的composer.json中找到。
- 此库所需的最小PHP版本是PHP开发团队仍然提供安全修复的最低PHP版本。每当此类版本被淘汰时,我们将相应地更新composer文件。目前,更新频率大约每年一次,基于官方计划。
- 要安装gRPC PHP扩展,请遵循此页的“安装gRPC PHP扩展”部分。
- 使用命令
sudo pecl install grpc
安装扩展。 - 将一行
extension=grpc.so
添加到php.ini
文件中。 - 在终端中运行
php -i | grep grpc
:如果返回一些内容,则表示安装和配置良好。
- 使用命令
- 要安装Protobuf PHP扩展,请遵循此页下“Protobuf Runtime库”下的“C实现”部分。如果您遇到任何错误,可以跳过此步骤,而是使用PHP实现。更多详细信息请参阅Protobuf部分。
- 使用命令
sudo pecl install protobuf
安装扩展。 - 将一行
extension=protobuf.so
添加到php.ini
文件中。 - 在终端中运行
php -i | grep protobuf
:如果返回一些内容,则表示安装和配置良好。
- 使用命令
- 您需要一个开发者令牌才能连接到Google Ads API。
入门
-
通过
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 作为认证机制。根据您的用例选择下面的适当选项,并阅读并遵循示例打印到控制台上的说明。
如果您已经有了 AdWords API 的凭据...
-
如果您有用于 AdWords API 的
adsapi_php.ini
文件,将其复制并命名为google_ads_php.ini
。只需将节名称从[ADWORDS]
更改为[GOOGLE_ADS]
。 -
如果没有文件,将示例
google_ads_php.ini
复制到您的 主目录。此库通过使用EnvironmentalVariables::getHome()
来确定您的计算机的主目录。
如果您使用自己的凭据访问 Google Ads API...
-
将示例
google_ads_php.ini
复制到您的 主目录。此库通过使用EnvironmentalVariables::getHome()
来确定您的计算机的主目录。 -
按照 https://developers.google.com/google-ads/api/docs/oauth/cloud-project 中的说明创建 OAuth2 客户端 ID 和密钥,用于 已安装的应用程序 OAuth2 流。
-
运行 AuthenticateInStandaloneApplication 示例,该示例将提示您输入 OAuth2 客户端 ID 和密钥。
-
将示例的最后一步的输出复制到您主目录中的
google_ads_php.ini
文件中。别忘了填写您的开发人员令牌。
-
-
运行 GetCampaigns 示例 以测试您的凭据是否有效。您还需要作为命令行参数传递您的 Google Ads 账户的客户 ID(不带破折号)
php examples/BasicOperations/GetCampaigns.php --customerId <YOUR_CUSTOMER_ID>
注意:代码示例旨在从命令提示符运行,而不是通过网页浏览器。
-
探索其他示例。
示例目录 examples 包含几个有用的示例。大多数示例都需要参数。您可以通过将
--help
作为命令行参数运行代码示例来查看所需的参数。
基本用法
要通过 Google Ads API 发送请求,您首先需要创建一个 GoogleAdsClient。为了方便起见,您可以将所需的设置存储在具有以下格式的属性文件(google_ads_php.ini
)中
[GOOGLE_ADS]
developerToken = "INSERT_DEVELOPER_TOKEN_HERE"
[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"
如果您以管理帐户的身份进行认证,您还必须指定(不带破折号)的管理帐户 ID 作为登录客户 ID
[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
此配置文件格式类似于 AdWords API 的 PHP 客户端库 使用的格式。
如果您在主目录中有一个上述格式的 google_ads_php.ini
配置文件,您可以使用以下方式使用无参数版本的 fromFile()
$googleAdsClient = (new GoogleAdsClientBuilder()) ->fromFile() ->withOAuth2Credential($oAuth2Credential) ->build();
其中 $oAuth2Credential
是通过以下方式创建的
$oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
如果您的配置文件不在您的主目录中,您可以将文件位置传递给 fromFile
方法,如下所示
$oAuth2Credential = (new OAuth2TokenBuilder()) ->fromFile('/path/to/google_ads_php.ini') ->build(); $googleAdsClient = (new GoogleAdsClientBuilder()) ->fromFile('/path/to/google_ads_php.ini') ->withOAuth2Credential($oAuth2Credential) ->build();
您还可以通过指定运行时客户端 ID、客户端密钥和刷新令牌来构造 OAuth2 凭据对象,然后将该对象传递给 GoogleAdsClientBuilder
,如下所示
$oAuth2Credential = (new OAuth2TokenBuilder()) ->withClientId('INSERT_CLIENT_ID') ->withClientSecret('INSERT_CLIENT_SECRET') ->withRefreshToken('INSERT_REFRESH_TOKEN') ->build(); $googleAdsClient = (new GoogleAdsClientBuilder()) ->withOAuth2Credential($oAuth2Credential) ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE') ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE') ->build();
获取服务客户端
一旦你有了 GoogleAdsClient
的实例,你可以使用 get...ServiceClient()
中的任一方法获取特定服务的服务客户端。
传输
可以使用不同类型的传输。有关更多信息,请参阅传输指南。
Protobuf
Protobuf 在请求 Google Ads API 时,无论使用哪种传输都会使用。
有关更多信息,请参阅Protobuf 指南。
在 Docker 容器中运行
请参阅在 Docker 容器中运行指南。
日志记录
请参阅日志记录指南。
代理配置
请参阅代理指南。
性能
请参阅性能指南。