Отправить образец запроса

После того как вы все настроили, убедитесь, что вы можете успешно отправить образец запроса в Search Ads 360 API. В следующем примере кода показано, как отправить асинхронный запрос на список кампаний вашего рекламодателя. Если запрос будет успешным, вы получите ответ от Search Ads 360 API о том, что отчет создан, но не готов (это связано с тем, что асинхронные запросы требуют дополнительных запросов для фактической загрузки отчета).

В запросе вам нужно будет указать собственный токен доступа OAuth 2.0 и собственный идентификатор агентства. Чтобы найти идентификатор вашего агентства:

  1. Посетите пользовательский интерфейс Search Ads 360 .
  2. Идентификаторы вашего агентства и рекламодателя отображаются в URL-адресе сразу после префикса ay= и av= . Например:
    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"
}

Чтобы отправить необработанный запрос JSON POST, вы можете использовать сценарий sa360Api.py следующим образом:

  1. Скопируйте пример объекта JSON (все, что находится между двумя фигурными скобками и включая их) в новый текстовый файл с именем request.txt .
  2. Измените идентификатор агентства, указанный в коде JSON, на свой собственный идентификатор агентства.
  3. Удалите все комментарии, например: // The date column segments the report by individual days.
  4. Соберите свои учетные данные OAuth 2.0 в одну строку, разделенную запятыми, следующим образом:
    client-ID,client-secret,refresh-token
    (Это та же строка, которую sa360Api.py выводит при запуске sa360Api.py --login как описано в разделе «Настройка авторизации» .)
  5. Вызовите sa360Api.py следующим образом:
    sa360Api.py --cred CREDENTIALS --server API-method --post < request.txt
    В приведенной выше команде замените строку CREDENTIALS на строку, которую вы собрали на предыдущем шаге.
    Замените имя метода POST в поле ниже на API-method .

    Например:
    sa360Api.py --cred 123456789123.apps.googleusercontent.com,ABCDEFGHIJKLMNOPQR_abcdef,1/HIJklM01OPQR23NOP456rst890uvw --server https://www.googleapis.com/doubleclicksearch/v2/reports/generate --post < request.txt

Ява

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

.СЕТЬ

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

Питон

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())