Une fois la configuration terminée, vérifiez que vous pouvez envoyer un exemple à l'API Search Ads 360. L'exemple de code suivant montre comment envoyer une requête asynchrone pour la liste des campagnes de votre annonceur. Si la demande si l'opération réussit, vous recevez une réponse de l'API Search Ads 360 indiquant que le rapport a été créé mais pas prêts (car les requêtes asynchrones nécessitent des requêtes supplémentaires télécharger un rapport).
Vous devez spécifier votre propre jeton d'accès OAuth 2.0 et votre ID d'agence dans la demande. Pour trouver votre ID d'agence:
- Accédez à l'interface utilisateur de Search Ads 360.
- Vos références d'agence et d'annonceur sont affichées dans l'URL, juste après la balise
Préfixes
ay=
etav=
. Exemple:
https://searchads.google.com/ds/cm/cm/cm/cm#campaigns.ay=123456789012345678;av=123456789012345678;
JSON
POST https://www.googleapis.com/doubleclicksearch/v2/reports Authorization: Bearer your OAuth 2.0 access token Content-type: application/json { "reportScope": { "agencyId": "your agency ID", "advertiserId": "your advertiser ID" }, "reportType": "campaign", "columns": [ { "columnName": "campaignId" }, { "columnName": "campaign" } ], "downloadFormat": "csv", "maxRowsPerFile": 6000000, "statisticsCurrency": "agency" }
Utilisez le script de l'utilitaire Search Ads 360 pour envoyer cette demande.
Pour envoyer une requête POST JSON brute, vous pouvez utiliser la classe sa360Api.py script comme suit:
- Copiez l'exemple d'objet JSON (tout ce qui se trouve entre les deux
accolades) dans un nouveau fichier texte nommé
request.txt
. - Remplacez l'ID d'agence indiqué dans le code JSON par votre propre ID d'agence.
- Supprimez tous les commentaires, tels que
// The date column segments the report by individual days.
- Assemblez vos identifiants OAuth 2.0 en une seule chaîne, délimitée par des virgules,
suivant:
client-ID,client-secret,refresh-token
(Il s'agit de la même chaîne que génèresa360Api.py
lorsque vous exécutezsa360Api.py --login
, comme décrit dans la section Configurer l'autorisation.) - Appelez
sa360Api.py
comme suit:
sa360Api.py --cred CREDENTIALS --server API-method --post < request.txt
Dans la commande ci-dessus, remplacez la chaîne assemblée à l'étape précédente parCREDENTIALS
.
RemplacezAPI-method
par le nom de la méthode POST indiqué dans la zone ci-dessous.Par exemple:
sa360Api.py --cred 123456789123.apps.googleusercontent.com,ABCDEFGHIJKLMNOPQR_abcdef,1/HIJklM01OPQR23NOP456rst890uvw --server https://www.googleapis.com/doubleclicksearch/v2/reports/generate --post < request.txt
Java
import com.google.api.client.googleapis.json.GoogleJsonError.ErrorInfo; import com.google.api.client.googleapis.json.GoogleJsonResponseException; import com.google.api.services.doubleclicksearch.Doubleclicksearch; import com.google.api.services.doubleclicksearch.model.ReportApiColumnSpec; import com.google.api.services.doubleclicksearch.model.ReportRequest; import com.google.api.services.doubleclicksearch.model.ReportRequest.ReportScope; import com.google.api.services.doubleclicksearch.model.ReportRequest.TimeRange; import java.io.IOException; import java.util.Arrays; /** * Creates a campaign report request, submits the report, and returns the report ID. */ private static String createReport(Doubleclicksearch service) throws IOException { try { return service.reports().request(createSampleRequest()).execute().getId(); } catch (GoogleJsonResponseException e) { System.err.println("Report request was rejected."); for (ErrorInfo error : e.getDetails().getErrors()) { System.err.println(error.getMessage()); } System.exit(e.getStatusCode()); return null; // Unreachable code. } } /** * Returns a simple static request that lists the ID and name of all * campaigns under agency 20100000000000895 and advertiser 21700000000011523. * Substitute your own agency ID and advertiser IDs for the IDs in this sample. */ private static ReportRequest createSampleRequest() { return new ReportRequest() .setReportScope(new ReportScope() .setAgencyId(20100000000000895L) // Replace with your ID .setAdvertiserId(21700000000011523L)) // Replace with your ID .setReportType("campaign") .setColumns(Arrays.asList( new ReportApiColumnSpec[] { new ReportApiColumnSpec().setColumnName("campaignId"), new ReportApiColumnSpec().setColumnName("campaign") })) .setTimeRange(new TimeRange() .setStartDate("2014-05-01") .setEndDate("2014-05-01")) .setDownloadFormat("csv") .setStatisticsCurrency("usd") .setMaxRowsPerFile(5000000); }
.NET
using System; using System.Collections.Generic; using System.IO; using System.Threading; using Google.Apis.Auth.OAuth2; using Google.Apis.Auth.OAuth2.Flows; using api = Google.Apis.Doubleclicksearch.v2; /// <summary> /// Creates a campaign report request, submits the report, and returns the report ID. /// </summary> /// <param name="service">Search Ads API service.</param> private static string CreateReport(api.DoubleclicksearchService service) { var req = service.Reports.Request(CreateSampleRequest()); var report = req.Execute(); Console.WriteLine("Created report: ID={0}", report.Id); return report.Id; } /// <summary> /// Returns a simple static request that lists the ID and name of all /// campaigns under agency 20100000000000895 and advertiser 21700000000011523. /// Substitute your own agency ID and advertiser IDs for the IDs in this sample. /// </summary> private static api.Data.ReportRequest CreateSampleRequest() { return new api.Data.ReportRequest { ReportScope = new api.Data.ReportRequest.ReportScopeData { AgencyId = 20100000000000895, AdvertiserId = 21700000000011523, }, ReportType = "campaign", Columns = new List<api.Data.ReportRequest.ColumnsData> { new api.Data.ReportRequest.ColumnsData { ColumnName = "campaignId", }, new api.Data.ReportRequest.ColumnsData { ColumnName = "campaign", }, }, TimeRange = new api.Data.ReportRequest.TimeRangeData { StartDate = "2014-01-01", EndDate = "2014-01-31", }, DownloadFormat = "csv", StatisticsCurrency = "usd", MaxRowsPerFile = 5000000, }; }
Python
def generate_report(service): """Generate and print sample report. Args: service: An authorized Doubleclicksearch service. See Set Up Your Application. """ request = service.reports().request( body = { "reportScope": { "agencyId": "your agency ID", "advertiserId": "your advertiser ID" }, "reportType": "campaign", "columns": [ { "columnName": "campaignId" }, { "columnName": "campaign" } ], "downloadFormat": "csv", "maxRowsPerFile": 6000000, "statisticsCurrency": "agency" } ) pprint.pprint(request.execute())