إرسال نموذج طلب

بعد إعداد كل شيء، تأكّد من أنه يمكنك إرسال نموذج طلب بنجاح إلى واجهة برمجة التطبيقات في "إعلانات شبكة البحث 360". يوضح نموذج الشفرة التالي كيفية إرسال طلب غير متزامن إلى جانب قائمة بالحملات ضمن المعلن. إذا نجح الطلب، ستتلقى استجابة من واجهة برمجة التطبيقات في "إعلانات شبكة البحث 360" تفيد بأن التقرير قد تم إنشاؤه ولكن ليس جاهزًا (نظرًا لأن الطلبات غير المتزامنة تتطلب طلبات إضافية لتنزيل تقرير فعليًا).

ستحتاج إلى تحديد رمز الدخول المميز لبروتوكول OAuth 2.0 ورقم تعريف وكالتك الخاص في الطلب. للعثور على رقم تعريف وكالتك:

  1. انتقِل إلى واجهة مستخدم "إعلانات شبكة البحث 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"
}

لغة 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
        {
            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())