El código fuente de src/Google/Ads/GoogleAds/vX
directorio de la biblioteca cliente de PHP de la API de Google Ads, en el que X es la API de Google Ads.
se genera automáticamente mediante el cliente de API generado por GAPIC
Generador, basado en la publicación
protocolo
archivos.
Luego, el código fuente generado se modifica para contener referencias a traits y
clases requeridas para crear los clientes de servicio que funcionan con la API de Google Ads usando
la clase GoogleAdsClient, que se crea llamando
GoogleAdsClientBuilder::build() GoogleAdsClient y GoogleAdsClientBuilder son clases creadas de forma manual que se encuentran en src/Google/Ads/GoogleAds/Lib/vX/.
Ubicaciones de clases generadas
Los clientes de servicio con procesamiento posterior se encuentran en
src/Google/Ads/GoogleAds/VX/Services/Client/
Uso
Debes crear un objeto de solicitud y pasarlo al cliente que quieras usar.
En algunos casos, tienes más de una forma de crear un objeto de solicitud porque algunos clientes también tienen un método conveniente llamado build() para pasar parámetros obligatorios.
Ejemplo 1.1: Métodos con parámetros obligatorios
En el siguiente código de muestra, se muestra cómo llamar a CampaignService::mutate(). Todos los parámetros ($customerId y $operations) son obligatorios, por lo que el build() que acepta ambos parámetros se genera en el código.
Patrón 1
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build( $customerId, $campaignOperations ) );
Patrón 2
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $request = (new MutateCampaignsRequest()) ->setCustomerId($customerId) ->setCampaignOperations($campaignOperations); $response = $campaignServiceClient->mutateCampaigns($request);
Ejemplo 1.2: Métodos con parámetros obligatorios y opcionales
El siguiente código de muestra llama a GoogleAdsServiceClient::search(). En este
Por ejemplo, el build() que se genera en el código solo acepta dos parámetros.
($customerId y $query) porque son parámetros obligatorios. Para solicitar la cantidad total de resultados que coinciden con la consulta sin tener en cuenta la cláusula LIMIT, debes configurarla de forma explícita con setReturnTotalResultsCount(). Como alternativa, puedes pasar todos los parámetros juntos al constructor de SearchGoogleAdsRequest, como se muestra en el patrón 3.
Patrón 1
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $response = $googleAdsServiceClient->search( SearchGoogleAdsRequest::build($customerId, $query) ->setReturnTotalResultsCount(true) );
Patrón 2
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest()) ->setCustomerId($customerId) ->setQuery($query) ->setReturnTotalResultsCount(true); $response = $googleAdsServiceClient->search($request);
Patrón 3
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); $request = (new SearchGoogleAdsRequest([ 'customer_id' => $customerId, 'query' => $query, 'return_total_results_count' => true ]); $response = $googleAdsServiceClient->search($request);
Ejemplo 2: Métodos con solo parámetros opcionales
En este ejemplo, se muestra cómo llamar a GeoTargetConstantServiceClient::suggestGeoTargetConstants(). Ya que todos
parámetros de GeoTargetConstantServiceClient::suggestGeoTargetConstants() son
opcional, build() no se genera en el código fuente en este caso; tú
tendrás que crear el objeto Request.
Patrón 1
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $request = (new SuggestGeoTargetConstantsRequest()) ->setLocale($locale) ->setCountryCode($countryCode) ->setLocationNames(new LocationNames(['names' => $locationNames])); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
Patrón 2
$geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient(); $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants( new SuggestGeoTargetConstantsRequest([ 'locale' => $locale, 'country_code' => $countryCode, 'location_names' => new LocationNames(['names' => $locationNames]) ]) );