完成所有设置后,确保您可以成功发送选段 向 Search Ads 360 API 发出请求。以下代码示例演示了如何 发送异步请求 ,查看广告客户名下的广告系列列表。如果请求 成功后,就会收到 Search Ads 360 API 的响应,告知您报告已创建 但尚未准备就绪(这是因为异步请求需要 实际上是下载报告)。
您需要在 请求。要查找您的代理机构 ID,请按以下步骤操作:
- 访问 Search Ads 360 界面。
- 您的代理机构 ID 和广告客户 ID 将显示在网址中,紧跟在
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" }
使用 Search Ads 360 实用程序脚本发送此请求
要发送原始 JSON POST 请求,您可以使用 sa360Api.py 脚本如下:
- 复制示例 JSON 对象(两者之间的所有内容,包括两者之间的内容)
大括号中的内容)复制到名为
request.txt
的新文本文件中。 - 将 JSON 代码中的代理机构 ID 更改为您自己的代理机构 ID。
- 移除所有评论,例如
// The date column segments the report by individual days.
- 将您的 OAuth 2.0 凭据整合到一个以英文逗号分隔的字符串中,如下所示:
跟随:
client-ID,client-secret,refresh-token
(此字符串与您运行sa360Api.py --login
时sa360Api.py
输出的字符串相同,如设置 授权。) - 按如下方式调用
sa360Api.py
:
sa360Api.py --cred CREDENTIALS --server API-method --post < request.txt
在上面的命令中,将CREDENTIALS
替换成您在上一步中组建的字符串。
将API-method
替换成下面框中的 POST 方法的名称。例如:
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())