A biblioteca de cliente PHP facilita as interações com a API Google Ads com a configuração mínima. No entanto, a performance depende muito de como a biblioteca é usada e integrada.
A maioria dessas práticas recomendadas são aplicáveis a todos os idiomas. Este guia aborda as específicas do PHP.
Implementação do Protobuf
O Protobuf é usado pelo gRPC e pela API Google Ads para mensagens de solicitação e resposta. Duas implementações estão disponíveis, embora a escrita em C tenha melhor desempenho.
Consulte o guia do Protobuf para mais informações.
Modo de operação do interpretador do PHP
O PHP é uma linguagem de script versátil e tem muitos modos de operação, dependendo do uso. O PHP CGI (Common Gateway Interface) tem uma vantagem notável porque pode compartilhar recursos entre execuções.
Versão do PHP
É recomendável fazer upgrade regularmente para uma versão mais recente do PHP, já que ela geralmente tem um desempenho geral melhor. Lista de versões do PHP com suporte.
Versões da API Google Ads não usadas
Todas as versões da biblioteca de cliente são compatíveis com várias versões da API Google Ads. Para cada versão da API Google Ads com suporte da biblioteca de cliente, há pacotes dedicados.
Os pacotes dedicados a versões da API Google Ads que não são usados podem ser removidos com segurança da biblioteca de cliente. Como pode ser útil acelerar a execução ou reduzir a pegada de memória, a biblioteca de cliente oferece utilitários para fazer isso de forma programática.
Exemplo
Suponha que você esteja implementando a biblioteca de cliente que usa apenas a versão mais recente
da API: v18
, e que você queira remover o suporte para as versões
da API não usadas: v17
e
v16
.
No arquivo composer.json
do projeto, defina um script do Composer (chamado
remove-google-ads-api-version-support
) que aproveite o utilitário fornecido pela
biblioteca de cliente, na classe
ApiVersionSupport
:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Em seguida, use o script do Composer com os números de versão como parâmetros e imprima algumas mensagens de status:
# Change the current directory to the project directory.
cd /path/to/the/project
# Install the project.
composer install
# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions v16 and v17 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 16 17
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor
A saída de execução de exemplo abaixo indica uma redução de 50 MB no tamanho do arquivo, e a
única versão com suporte restante é V18
:
# Supported Google Ads API versions:
V16
V17
V18
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 16 of Google Ads API...
Done
Removing support for the version 17 of Google Ads API...
Done
# Supported Google Ads API versions:
V18
# Vendor folder size:
60M ./vendor
Desenvolvimento x produção
O PHP é uma linguagem interpretada porque primeiro compila as instruções antes de executá-las. Isso geralmente é vantajoso, porque durante o desenvolvimento, as fontes geralmente mudam, enquanto o tempo de execução não é tão crucial. No entanto, o oposto é verdadeiro no momento da produção, já que a estabilidade e o desempenho se tornam as principais preocupações.
Cache
O armazenamento em cache é comum e altamente recomendado porque melhora o desempenho e aumenta a estabilidade ao armazenar instruções de script pré-compiladas.
O OPcache é a solução mais usada e está disponível por padrão.
Carregamento automático
O carregamento automático é comum porque melhora o desempenho e aumenta a estabilidade ao carregar informações pré-compiladas sobre as classes.
A biblioteca de cliente do PHP está em conformidade com a PSR-4 para
carregamento automático e fornece a definição como parte do
arquivo
composer.json
. As opções dedicadas do Composer, como
--optimize-autoloader
ou --classmap-authoritative
, por exemplo, podem ser
usadas imediatamente.
Logging
Definir registradores em um nível alto, como ERROR
, pode ajudar a reduzir o overhead do tempo de execução
e o consumo de memória.
Consulte o guia de registro para mais informações.
Depuração e criação de perfil
Recomendamos desativar as ferramentas de depurador e de perfil, já que elas geralmente têm alguns custos adicionais de tempo de execução.
Pré-carregar
Desde o PHP 7.4, o carregamento prévio da OPcache pode ser usado para carregar scripts na memória, indo além do armazenamento normal.
Um script precisa ser projetado para aproveitar esse recurso, mas a biblioteca de cliente do PHP não tem, já que não há uma maneira genérica de implementar o pré-carregamento da OPcache, e o trade-off entre o uso da memória e o ganho de desempenho é muito específico para um determinado projeto e execução.