GAPIC

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])
    ])
);