Protocole GAPIC

Le code source du répertoire src/Google/Ads/GoogleAds/vX de la bibliothèque cliente PHP de l'API Google Ads, où X correspond à la version de l'API Google Ads, est généré automatiquement à l'aide du générateur GAPIC (Generated API Client), en fonction des fichiers proto publiés.

Le code source généré est ensuite modifié pour contenir des références aux traits et aux classes nécessaires à la création des clients de service fonctionnant avec l'API Google Ads à l'aide de la classe GoogleAdsClient, qui est créée en appelant GoogleAdsClientBuilder::build(). GoogleAdsClient et GoogleAdsClientBuilder sont des cours créés manuellement et situés dans src/Google/Ads/GoogleAds/Lib/vX/.

Emplacements des classes générées

Les clients de service post-traités se trouvent dans src/Google/Ads/GoogleAds/VX/Services/Client/.

Utilisation

Vous devez créer un objet de requête et le transmettre au client que vous souhaitez utiliser. Dans certains cas, vous pouvez créer un objet de requête de plusieurs façons, car certains clients disposent également d'une méthode pratique appelée build() pour transmettre les paramètres obligatoires.

Exemple 1.1 : Méthodes avec paramètres obligatoires

L'exemple de code suivant montre comment appeler CampaignService::mutate(). Tous les paramètres ($customerId et $operations) sont obligatoires. Par conséquent, le build() qui accepte les deux paramètres est généré dans le code.

Modèle 1

$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build(
      $customerId,
      $campaignOperations
    )
);

Modèle 2

$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$request = (new MutateCampaignsRequest())
    ->setCustomerId($customerId)
    ->setCampaignOperations($campaignOperations);
$response = $campaignServiceClient->mutateCampaigns($request);

Exemple 1.2 : Méthodes avec paramètres obligatoires et facultatifs

L'exemple de code suivant appelle GoogleAdsServiceClient::search(). Dans cet exemple, le build() généré dans le code n'accepte que deux paramètres ($customerId et $query), car il s'agit de paramètres obligatoires. Pour demander le nombre total de résultats correspondant à la requête en ignorant la clause LIMIT, vous devez le définir explicitement à l'aide de setReturnTotalResultsCount(). Vous pouvez également transmettre tous les paramètres ensemble au constructeur de SearchGoogleAdsRequest, comme indiqué dans le modèle 3.

Modèle 1

$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query)
        ->setReturnTotalResultsCount(true)
);

Modèle 2

$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
    ->setCustomerId($customerId)
    ->setQuery($query)
    ->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);

Modèle 3

$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest([
    'customer_id' => $customerId,
    'query' => $query,
    'return_total_results_count' => true
]);
$response = $googleAdsServiceClient->search($request);

Exemple 2 : Méthodes avec uniquement des paramètres facultatifs

Cet exemple montre comment appeler GeoTargetConstantServiceClient::suggestGeoTargetConstants(). Étant donné que tous les paramètres de GeoTargetConstantServiceClient::suggestGeoTargetConstants() sont facultatifs, build() n'est pas généré dans le code source dans ce cas. Vous devez créer l'objet de requête vous-même.

Modèle 1

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
    ->setLocale($locale)
    ->setCountryCode($countryCode)
    ->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
    $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);

Modèle 2

$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
    new SuggestGeoTargetConstantsRequest([
        'locale' => $locale,
        'country_code' => $countryCode,
        'location_names' => new LocationNames(['names' => $locationNames])
    ])
);