คําขอแบบพร้อมกัน

Search Ads 360 Reporting API เวอร์ชันใหม่พร้อมใช้งานแล้ว โดย API ใหม่จะมี ความยืดหยุ่นที่เพิ่มขึ้นในการสร้างรายงานที่กำหนดเองและผสานรวมข้อมูลไว้ในแอปพลิเคชันการรายงานของคุณ และกระบวนการต่างๆ ดูข้อมูลเพิ่มเติมเกี่ยวกับการย้ายข้อมูลไปยังและการใช้การรายงาน Search Ads 360 เวอร์ชันใหม่ API

หากคุณกำลังขอรายงานผู้ลงโฆษณาหรือบัญชีเครื่องมือค้นหาขนาดเล็กถึงปานกลาง คุณสามารถ ส่งคำขอรายงานแบบซิงโครนัสเพียงรายการเดียว Search Ads 360 API จะส่งคืนรายงานทั้งฉบับในออบเจ็กต์ JSON เพื่อตอบสนองต่อคำขอ คำขอที่โหลดพร้อมกันไม่ได้:

หากคุณต้องการรายงานผู้ลงโฆษณาจำนวนมากหรือบัญชีเครื่องมือค้นหา เราขอแนะนำให้ใช้รายงานแบบอะซิงโครนัส ของเรา

วิธีส่งคำขอพร้อมกัน

โทรติดต่อ Reports.generate() เพื่อระบุประเภทข้อมูลที่คุณต้องการในรายงานผู้ลงโฆษณาหรือบัญชีเครื่องมือค้นหา

Search Ads 360 จะตรวจสอบคำขอ สร้างรายงาน และแสดงผลรายงานเป็นแหล่งข้อมูลของรายงานใน เนื้อหาการตอบกลับ

ตัวอย่างคำขอที่โหลดพร้อมกันไม่ได้

ต่อไปนี้เป็นตัวอย่าง Reports.generate() อีกครั้ง

JSON

POST  https://www.googleapis.com/doubleclicksearch/v2/reports/generate
Authorization: Bearer your OAuth 2.0 access token
Content-type: application/json

{
  "reportScope": {
    "agencyId": "12300000000000456", // Replace with your ID
    "advertiserId": "21700000000011523", // Replace with your ID
    "engineAccountId": "700000000073991" // Replace with your ID
  },
  "reportType": "account",              // This report covers all revenue and visits in the
                                        // engine account specified in reportScope.
  "columns": [
    { "columnName": "date" },           // The date column segments the report by individual days.

    { "columnName": "dfaRevenue" },     // Here are some metric columns available for keyword
    {                                   // reports.
      "columnName": "visits",
      "startDate": "2013-01-01",        // Each metric column can optionally specify its own start 
      "endDate": "2013-01-31",          // and end date; by default the report timeRange is used.
      "headerText": "January visits"    // Every column can optionally specify a headerText, which
                                        // changes the name of the column in the report.
    }
  ],
  "timeRange" : {
    "startDate" : "2012-05-01",         // Dates are inclusive and specified in YYYY-MM-DD format.
    "endDate" : "2013-05-01"

    // Alternatively, try the "changedMetricsSinceTimestamp" or "changedAttributesSinceTimestamp"
    // options. See Incremental reports.

  },
  "statisticsCurrency": "agency",       // Required. See Currency for statistics.
  "verifySingleTimeZone": false,        // Optional. Defaults to false. See Time zone.
  "includeRemovedEntities": false           // Optional. Defaults to false.
}
        

Java

  public static void main(String[] args) throws Exception {
    Doubleclicksearch service = getService(); // See Set Up Your Application.
    Report report = generateAccountReport(service);
    outputReport(report, "./");
  }

  /**
   * Creates an account report using the synchronous Report.generate method.
   *
   * @throws IOException
   */
  private static Report generateAccountReport(Doubleclicksearch service) throws IOException {
    try {
      return service.reports().generate(generateAccountRequest()).execute();
    } 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.
    }
  }

  /**
   * Creates a simple static request that lists the clicks and visits for an engine account. Use
   * your own agency ID, advertiser ID, and engine account ID.
   */
  private static ReportRequest generateAccountRequest() {
    return new ReportRequest().setReportScope(
      new ReportScope()
        .setAgencyId(20700000000000451L) // Replace with your ID
        .setAdvertiserId(21700000000010391L) // Replace with your ID
        .setEngineAccountId(700000000042201L)) // Replace with your ID
        .setReportType("account")
        .setColumns(Arrays.asList(new ReportApiColumnSpec[] {
            new ReportApiColumnSpec().setColumnName("date"),
            new ReportApiColumnSpec().setColumnName("dfaRevenue"),
            new ReportApiColumnSpec()
                .setColumnName("visits")
                .setHeaderText("January visits")
                .setStartDate("2013-01-01")
                .setEndDate("2013-01-31"),}))
        .setTimeRange(new TimeRange()
          .setStartDate("2012-05-01")
          .setEndDate("2013-05-01"))
        .setStatisticsCurrency("agency");
  }

  /**
   * Outputs a synchronous report to a file.
   */
  private static void outputReport(Report report, String localPath)
      throws IOException {
    FileOutputStream outputStream = new FileOutputStream(new File(localPath, "Report"));
    final PrintStream printStream = new PrintStream(outputStream);
    printStream.print(report);
    printStream.close();
  }
        

Python

def generate_report(service):
  """Generate and print sample report.

  Args:
    service: An authorized Doubleclicksearch service.  See Set Up Your Application.
  """
  request = service.reports().generate(
      body=
      {
        "reportScope
            "agencyId": "12300000000000456", // Replace with your ID
            "advertiserId": "21700000000011523", // Replace with your ID
            "engineAccountId": "700000000073991" // Replace with your ID
            },
        "reportType": "account",
        "columns": [
            { "columnName": "date" },
            { "columnName": "dfaRevenue" },
            {
              "columnName": "visits",
              "startDate": "2013-01-01",
              "endDate": "2013-01-31",
              "headerText": "January visits"
             }
        ],
        "timeRange" : {
            "startDate" : "2012-05-01",
            "endDate" : "2013-05-01"
        },
        "statisticsCurrency": "agency",
        "verifySingleTimeZone": "false",
        "includeRemovedEntities": "false"
        }
  )

  pprint.pprint(request.execute())

รายงานตัวอย่าง

การตอบกลับคำขอแบบซิงโครนัสคือออบเจ็กต์รายงาน หากตรวจสอบคำขอสำเร็จ พร็อพเพอร์ตี้ 2-3 รายการแรกในออบเจ็กต์จะมีข้อมูลเมตาที่ อธิบายคำขอที่คุณส่ง ตัวรายงานเองอยู่ในrowsของออบเจ็กต์

{
  "kind":"doubleclicksearch#report",
  "request":{
    "columns":[
      {"columnName":"date"},
      {"columnName":"dfaRevenue"},
      {"columnName":"visits","endDate":"2013-01-31","headerText":"visits last month","startDate":"2013-01-01"}
    ],
    "includeDeletedEntities":false,
    "reportScope":{
      "agencyId":"12300000000000456",
      "advertiserId":"21700000000011523",
      "engineAccountId":"700000000073991"
     },
    "reportType":"account",
    "rowCount":10000,
    "startRow":0,
    "statisticsCurrency":"agency",
    "timeRange":{
      "endDate":"2013-05-01",
      "startDate":"2012-05-01"
     }
  },
  "rowCount":366,
  "rows":[
    {
      "date":"2012-05-01",
      "dfaRevenue":0.0,
      "visits last month":0.0
    },
    {
      "date":"2012-05-02",
      "dfaRevenue":0.0,
      "visits last month":0.0
    },
    {
      "date":"2012-05-03",
      "dfaRevenue":0.0,
      "visits last month":0.0
    },
    {
      "date":"2012-05-04",
      "dfaRevenue":0.0,
      "visits last month":0.0
     },
     ...
  ]
}
        

หากตรวจสอบไม่สำเร็จ

หากรายงานไม่ผ่านการตรวจสอบ Search Ads 360 จะแสดงการตอบกลับ HTTP 400 ที่มีออบเจ็กต์แสดงข้อผิดพลาด ตัวอย่างเช่น ตัวอย่างคำขอข้างต้นไม่ได้ระบุ เอเจนซี:

{
 "error": {
   "code": 400,
   "message": "statisticsCurrency: the agency in scope does not have a valid currency. Please make sure the agency is properly initialized in Search Ads 360."
 }
}

การแยกรายงานที่โหลดพร้อมกันเป็นหลายคำตอบ

โดยค่าเริ่มต้น คำขอแบบซิงโครนัสจะแสดงผล 10, 000 แถวแรก หากต้องการเปลี่ยนลักษณะการทำงานดังกล่าว ใช้ Reports.request.startRow และ Reports.request.rowCount เพื่อดึงข้อมูลเฉพาะบางส่วนในรายงานพร้อมกับคำขอแต่ละรายการ

ตัวอย่างการแยกรายงานแบบซิงโครนัส

ตัวอย่างเช่น คำขอนี้จะแสดงผลแถวร้อยแถวแรก (0 ถึง 99) ของรายงานเอเจนซี ที่แบ่งกลุ่มตามวัน ได้แก่

{
  "reportScope": {
    "agencyId": "12300000000000456", // Replace with your ID
    "advertiserId": "21700000000011523", // Replace with your ID
    "engineAccountId": "700000000073991" // Replace with your ID
  },
  "reportType": "account",
  "columns": [
    { "columnName": "date" },
    { "columnName": "dfaRevenue" }
  ],
  "timeRange" : {
    "startDate" : "2012-05-01",
    "endDate" : "2013-05-01"
  },
  "startRow":"0",
  "rowCount":"100",
  "statisticsCurrency": "agency",
  "verifySingleTimeZone": false,
  "includeRemovedEntities": false
}
    

คุณสามารถทำตามคำขอนี้ด้วยคำขออื่นสำหรับแถว 100 ถึง 199

{
  "reportScope": {
    "agencyId": "12300000000000456", // Replace with your ID
    "advertiserId": "21700000000011523", // Replace with your ID
    "engineAccountId": "700000000073991" // Replace with your ID
  },
  "reportType": "account",
  "columns": [
    { "columnName": "date" },
    { "columnName": "dfaRevenue" }
  ],
  "timeRange" : {
    "startDate" : "2012-05-01",
    "endDate" : "2013-05-01"
  },
  "startRow":"100",
  "rowCount":"100",
  "statisticsCurrency": "agency",
  "verifySingleTimeZone": false,
  "includeRemovedEntities": false
}