לאחר ההגדרה של הכול, צריך לוודא שאפשר לשלוח דוגמה לשלוח בקשה ל-Search Ads 360 API. דוגמת הקוד הבאה ממחישה איך לשלוח בקשה אסינכרונית לרשימת הקמפיינים בחשבון המפרסם שלכם. אם הבקשה הפעולה בוצעה בהצלחה, תקבלו תשובה מ-Search Ads 360 API שהדוח נוצר אך לא מוכן (כלומר מכיוון שבקשות אסינכרוניות דורשות בקשות נוספות כדי להוריד דוח בפועל).
עליך לציין אסימון גישה משלך מסוג OAuth 2.0 ומזהה סוכנות משלך ב לבקשה. איפה מופיע מזהה הסוכנות:
- נכנסים לממשק המשתמש של Search Ads 360.
- מזהי הסוכנות והמפרסם מוצגים בכתובת ה-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" }
כדי לשלוח את הבקשה, צריך להשתמש בסקריפט של כלי השירות של Search Ads 360
כדי לשלוח בקשת JSON POST גולמית, אפשר להשתמש ב-sa360Api.py סקריפט באופן הבא:
- מעתיקים את אובייקט ה-JSON לדוגמה (כל מה שמופיע בין השניים, כולל
סוגריים מסולסלים) בקובץ טקסט חדש בשם
request.txt
. - משנים את מזהה הסוכנות שמופיע בקוד ה-JSON למזהה הסוכנות שלכם.
- מסירים תגובות, למשל
// The date column segments the report by individual days.
- מרכיבים את פרטי הכניסה של OAuth 2.0 במחרוזת אחת שמופרדת בפסיקים
עוקב:
client-ID,client-secret,refresh-token
(זו אותה המחרוזת ש-sa360Api.py
יוצרת כשמריצים אתsa360Api.py --login
, כפי שמתואר בהגדרה הרשאה). - מפעילים את
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
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())