1// Copyright 2020 Google LLC. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Code generated file. DO NOT EDIT. 6 7// Package doubleclicksearch provides access to the Search Ads 360 API. 8// 9// For product documentation, see: https://developers.google.com/search-ads 10// 11// Creating a client 12// 13// Usage example: 14// 15// import "google.golang.org/api/doubleclicksearch/v2" 16// ... 17// ctx := context.Background() 18// doubleclicksearchService, err := doubleclicksearch.NewService(ctx) 19// 20// In this example, Google Application Default Credentials are used for authentication. 21// 22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. 23// 24// Other authentication options 25// 26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27// 28// doubleclicksearchService, err := doubleclicksearch.NewService(ctx, option.WithAPIKey("AIza...")) 29// 30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31// 32// config := &oauth2.Config{...} 33// // ... 34// token, err := config.Exchange(ctx, ...) 35// doubleclicksearchService, err := doubleclicksearch.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36// 37// See https://godoc.org/google.golang.org/api/option/ for details on options. 38package doubleclicksearch // import "google.golang.org/api/doubleclicksearch/v2" 39 40import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 internaloption "google.golang.org/api/option/internaloption" 56 htransport "google.golang.org/api/transport/http" 57) 58 59// Always reference these packages, just in case the auto-generated code 60// below doesn't. 61var _ = bytes.NewBuffer 62var _ = strconv.Itoa 63var _ = fmt.Sprintf 64var _ = json.NewDecoder 65var _ = io.Copy 66var _ = url.Parse 67var _ = gensupport.MarshalJSON 68var _ = googleapi.Version 69var _ = errors.New 70var _ = strings.Replace 71var _ = context.Canceled 72var _ = internaloption.WithDefaultEndpoint 73 74const apiId = "doubleclicksearch:v2" 75const apiName = "doubleclicksearch" 76const apiVersion = "v2" 77const basePath = "https://www.googleapis.com/" 78const mtlsBasePath = "https://www.mtls.googleapis.com/" 79 80// OAuth2 scopes used by this API. 81const ( 82 // View and manage your advertising data in DoubleClick Search 83 DoubleclicksearchScope = "https://www.googleapis.com/auth/doubleclicksearch" 84) 85 86// NewService creates a new Service. 87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { 88 scopesOption := option.WithScopes( 89 "https://www.googleapis.com/auth/doubleclicksearch", 90 ) 91 // NOTE: prepend, so we don't override user-specified scopes. 92 opts = append([]option.ClientOption{scopesOption}, opts...) 93 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 94 opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) 95 client, endpoint, err := htransport.NewClient(ctx, opts...) 96 if err != nil { 97 return nil, err 98 } 99 s, err := New(client) 100 if err != nil { 101 return nil, err 102 } 103 if endpoint != "" { 104 s.BasePath = endpoint 105 } 106 return s, nil 107} 108 109// New creates a new Service. It uses the provided http.Client for requests. 110// 111// Deprecated: please use NewService instead. 112// To provide a custom HTTP client, use option.WithHTTPClient. 113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 114func New(client *http.Client) (*Service, error) { 115 if client == nil { 116 return nil, errors.New("client is nil") 117 } 118 s := &Service{client: client, BasePath: basePath} 119 s.Conversion = NewConversionService(s) 120 s.Reports = NewReportsService(s) 121 s.SavedColumns = NewSavedColumnsService(s) 122 return s, nil 123} 124 125type Service struct { 126 client *http.Client 127 BasePath string // API endpoint base URL 128 UserAgent string // optional additional User-Agent fragment 129 130 Conversion *ConversionService 131 132 Reports *ReportsService 133 134 SavedColumns *SavedColumnsService 135} 136 137func (s *Service) userAgent() string { 138 if s.UserAgent == "" { 139 return googleapi.UserAgent 140 } 141 return googleapi.UserAgent + " " + s.UserAgent 142} 143 144func NewConversionService(s *Service) *ConversionService { 145 rs := &ConversionService{s: s} 146 return rs 147} 148 149type ConversionService struct { 150 s *Service 151} 152 153func NewReportsService(s *Service) *ReportsService { 154 rs := &ReportsService{s: s} 155 return rs 156} 157 158type ReportsService struct { 159 s *Service 160} 161 162func NewSavedColumnsService(s *Service) *SavedColumnsService { 163 rs := &SavedColumnsService{s: s} 164 return rs 165} 166 167type SavedColumnsService struct { 168 s *Service 169} 170 171// Availability: A message containing availability data relevant to 172// DoubleClick Search. 173type Availability struct { 174 // AdvertiserId: DS advertiser ID. 175 AdvertiserId int64 `json:"advertiserId,omitempty,string"` 176 177 // AgencyId: DS agency ID. 178 AgencyId int64 `json:"agencyId,omitempty,string"` 179 180 // AvailabilityTimestamp: The time by which all conversions have been 181 // uploaded, in epoch millis UTC. 182 AvailabilityTimestamp int64 `json:"availabilityTimestamp,omitempty,string"` 183 184 // SegmentationId: The numeric segmentation identifier (for example, 185 // DoubleClick Search 186 // Floodlight activity ID). 187 SegmentationId int64 `json:"segmentationId,omitempty,string"` 188 189 // SegmentationName: The friendly segmentation identifier (for example, 190 // DoubleClick Search 191 // Floodlight activity name). 192 SegmentationName string `json:"segmentationName,omitempty"` 193 194 // SegmentationType: The segmentation type that this availability is for 195 // (its default value is 196 // `FLOODLIGHT`). 197 SegmentationType string `json:"segmentationType,omitempty"` 198 199 // ForceSendFields is a list of field names (e.g. "AdvertiserId") to 200 // unconditionally include in API requests. By default, fields with 201 // empty values are omitted from API requests. However, any non-pointer, 202 // non-interface field appearing in ForceSendFields will be sent to the 203 // server regardless of whether the field is empty or not. This may be 204 // used to include empty fields in Patch requests. 205 ForceSendFields []string `json:"-"` 206 207 // NullFields is a list of field names (e.g. "AdvertiserId") to include 208 // in API requests with the JSON null value. By default, fields with 209 // empty values are omitted from API requests. However, any field with 210 // an empty value appearing in NullFields will be sent to the server as 211 // null. It is an error if a field in this list has a non-empty value. 212 // This may be used to include null fields in Patch requests. 213 NullFields []string `json:"-"` 214} 215 216func (s *Availability) MarshalJSON() ([]byte, error) { 217 type NoMethod Availability 218 raw := NoMethod(*s) 219 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 220} 221 222// Conversion: A conversion containing data relevant to DoubleClick 223// Search. 224type Conversion struct { 225 // AdGroupId: DS ad group ID. 226 AdGroupId int64 `json:"adGroupId,omitempty,string"` 227 228 // AdId: DS ad ID. 229 AdId int64 `json:"adId,omitempty,string"` 230 231 // AdvertiserId: DS advertiser ID. 232 AdvertiserId int64 `json:"advertiserId,omitempty,string"` 233 234 // AgencyId: DS agency ID. 235 AgencyId int64 `json:"agencyId,omitempty,string"` 236 237 // AttributionModel: Available to advertisers only after contacting 238 // DoubleClick Search customer 239 // support. 240 AttributionModel string `json:"attributionModel,omitempty"` 241 242 // CampaignId: DS campaign ID. 243 CampaignId int64 `json:"campaignId,omitempty,string"` 244 245 // Channel: Sales channel for the product. Acceptable values are: 246 // <ul> 247 // <li>"local": a physical store</li> <li>"online": 248 // an online store</li> </ul> 249 Channel string `json:"channel,omitempty"` 250 251 // ClickId: DS click ID for the conversion. 252 ClickId string `json:"clickId,omitempty"` 253 254 // ConversionId: For offline conversions, advertisers provide this ID. 255 // Advertisers can 256 // specify any ID that is meaningful to them. Each conversion in a 257 // request 258 // must specify a unique ID, and the combination of ID and timestamp 259 // must be 260 // unique amongst all conversions within the advertiser.<br> For 261 // online 262 // conversions, DS copies the `dsConversionId` or 263 // `floodlightOrderId` into this property depending on the 264 // advertiser's Floodlight instructions. 265 ConversionId string `json:"conversionId,omitempty"` 266 267 // ConversionModifiedTimestamp: The time at which the conversion was 268 // last modified, in epoch millis UTC. 269 ConversionModifiedTimestamp int64 `json:"conversionModifiedTimestamp,omitempty,string"` 270 271 // ConversionTimestamp: The time at which the conversion took place, in 272 // epoch millis UTC. 273 ConversionTimestamp string `json:"conversionTimestamp,omitempty"` 274 275 // CountMillis: Available to advertisers only after contacting 276 // DoubleClick Search customer 277 // support. 278 CountMillis int64 `json:"countMillis,omitempty,string"` 279 280 // CriterionId: DS criterion (keyword) ID. 281 CriterionId int64 `json:"criterionId,omitempty,string"` 282 283 // CurrencyCode: The currency code for the conversion's revenue. Should 284 // be in ISO 4217 285 // alphabetic (3-char) format. 286 CurrencyCode string `json:"currencyCode,omitempty"` 287 288 // CustomDimension: Custom dimensions for the conversion, which can be 289 // used to filter data in a 290 // report. 291 CustomDimension []*CustomDimension `json:"customDimension,omitempty"` 292 293 // CustomMetric: Custom metrics for the conversion. 294 CustomMetric []*CustomMetric `json:"customMetric,omitempty"` 295 296 // DeviceType: The type of device on which the conversion occurred. 297 DeviceType string `json:"deviceType,omitempty"` 298 299 // DsConversionId: ID that DoubleClick Search generates for each 300 // conversion. 301 DsConversionId int64 `json:"dsConversionId,omitempty,string"` 302 303 // EngineAccountId: DS engine account ID. 304 EngineAccountId int64 `json:"engineAccountId,omitempty,string"` 305 306 // FloodlightOrderId: The Floodlight order ID provided by the advertiser 307 // for the conversion. 308 FloodlightOrderId string `json:"floodlightOrderId,omitempty"` 309 310 // InventoryAccountId: ID that DS generates and uses to uniquely 311 // identify the inventory account 312 // that contains the product. 313 InventoryAccountId int64 `json:"inventoryAccountId,omitempty,string"` 314 315 // ProductCountry: The country registered for the Merchant Center feed 316 // that contains the 317 // product. Use an ISO 3166 code to specify a country. 318 ProductCountry string `json:"productCountry,omitempty"` 319 320 // ProductGroupId: DS product group ID. 321 ProductGroupId int64 `json:"productGroupId,omitempty,string"` 322 323 // ProductId: The product ID (SKU). 324 ProductId string `json:"productId,omitempty"` 325 326 // ProductLanguage: The language registered for the Merchant Center feed 327 // that contains the 328 // product. Use an ISO 639 code to specify a language. 329 ProductLanguage string `json:"productLanguage,omitempty"` 330 331 // QuantityMillis: The quantity of this conversion, in millis. 332 QuantityMillis int64 `json:"quantityMillis,omitempty,string"` 333 334 // RevenueMicros: The revenue amount of this `TRANSACTION` conversion, 335 // in micros 336 // (value multiplied by 1000000, no decimal). For example, to specify 337 // a 338 // revenue value of "10" enter "10000000" (10 million) in your request. 339 RevenueMicros string `json:"revenueMicros,omitempty"` 340 341 // SegmentationId: The numeric segmentation identifier (for example, 342 // DoubleClick Search 343 // Floodlight activity ID). 344 SegmentationId int64 `json:"segmentationId,omitempty,string"` 345 346 // SegmentationName: The friendly segmentation identifier (for example, 347 // DoubleClick Search 348 // Floodlight activity name). 349 SegmentationName string `json:"segmentationName,omitempty"` 350 351 // SegmentationType: The segmentation type of this conversion (for 352 // example, 353 // `FLOODLIGHT`). 354 SegmentationType string `json:"segmentationType,omitempty"` 355 356 // State: The state of the conversion, that is, either `ACTIVE` 357 // or 358 // `REMOVED`. Note: state DELETED is deprecated. 359 State string `json:"state,omitempty"` 360 361 // StoreId: The ID of the local store for which the product was 362 // advertised. Applicable 363 // only when the channel is "local". 364 StoreId string `json:"storeId,omitempty"` 365 366 // Type: The type of the conversion, that is, either `ACTION` 367 // or 368 // `TRANSACTION`. An `ACTION` conversion is an action by 369 // the user that has no monetarily quantifiable value, while 370 // a 371 // `TRANSACTION` conversion is an action that does have a 372 // monetarily quantifiable value. Examples are email list 373 // signups 374 // (`ACTION`) versus ecommerce purchases 375 // (`TRANSACTION`). 376 Type string `json:"type,omitempty"` 377 378 // ForceSendFields is a list of field names (e.g. "AdGroupId") to 379 // unconditionally include in API requests. By default, fields with 380 // empty values are omitted from API requests. However, any non-pointer, 381 // non-interface field appearing in ForceSendFields will be sent to the 382 // server regardless of whether the field is empty or not. This may be 383 // used to include empty fields in Patch requests. 384 ForceSendFields []string `json:"-"` 385 386 // NullFields is a list of field names (e.g. "AdGroupId") to include in 387 // API requests with the JSON null value. By default, fields with empty 388 // values are omitted from API requests. However, any field with an 389 // empty value appearing in NullFields will be sent to the server as 390 // null. It is an error if a field in this list has a non-empty value. 391 // This may be used to include null fields in Patch requests. 392 NullFields []string `json:"-"` 393} 394 395func (s *Conversion) MarshalJSON() ([]byte, error) { 396 type NoMethod Conversion 397 raw := NoMethod(*s) 398 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 399} 400 401// ConversionList: A list of conversions. 402type ConversionList struct { 403 // Conversion: The conversions being requested. 404 Conversion []*Conversion `json:"conversion,omitempty"` 405 406 // Kind: Identifies this as a ConversionList resource. Value: the fixed 407 // string 408 // <code>doubleclicksearch#conversionList</code>. 409 Kind string `json:"kind,omitempty"` 410 411 // ServerResponse contains the HTTP response code and headers from the 412 // server. 413 googleapi.ServerResponse `json:"-"` 414 415 // ForceSendFields is a list of field names (e.g. "Conversion") to 416 // unconditionally include in API requests. By default, fields with 417 // empty values are omitted from API requests. However, any non-pointer, 418 // non-interface field appearing in ForceSendFields will be sent to the 419 // server regardless of whether the field is empty or not. This may be 420 // used to include empty fields in Patch requests. 421 ForceSendFields []string `json:"-"` 422 423 // NullFields is a list of field names (e.g. "Conversion") to include in 424 // API requests with the JSON null value. By default, fields with empty 425 // values are omitted from API requests. However, any field with an 426 // empty value appearing in NullFields will be sent to the server as 427 // null. It is an error if a field in this list has a non-empty value. 428 // This may be used to include null fields in Patch requests. 429 NullFields []string `json:"-"` 430} 431 432func (s *ConversionList) MarshalJSON() ([]byte, error) { 433 type NoMethod ConversionList 434 raw := NoMethod(*s) 435 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 436} 437 438// CustomDimension: A message containing the custom dimension. 439type CustomDimension struct { 440 // Name: Custom dimension name. 441 Name string `json:"name,omitempty"` 442 443 // Value: Custom dimension value. 444 Value string `json:"value,omitempty"` 445 446 // ForceSendFields is a list of field names (e.g. "Name") to 447 // unconditionally include in API requests. By default, fields with 448 // empty values are omitted from API requests. However, any non-pointer, 449 // non-interface field appearing in ForceSendFields will be sent to the 450 // server regardless of whether the field is empty or not. This may be 451 // used to include empty fields in Patch requests. 452 ForceSendFields []string `json:"-"` 453 454 // NullFields is a list of field names (e.g. "Name") to include in API 455 // requests with the JSON null value. By default, fields with empty 456 // values are omitted from API requests. However, any field with an 457 // empty value appearing in NullFields will be sent to the server as 458 // null. It is an error if a field in this list has a non-empty value. 459 // This may be used to include null fields in Patch requests. 460 NullFields []string `json:"-"` 461} 462 463func (s *CustomDimension) MarshalJSON() ([]byte, error) { 464 type NoMethod CustomDimension 465 raw := NoMethod(*s) 466 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 467} 468 469// CustomMetric: A message containing the custom metric. 470type CustomMetric struct { 471 // Name: Custom metric name. 472 Name string `json:"name,omitempty"` 473 474 // Value: Custom metric numeric value. 475 Value float64 `json:"value,omitempty"` 476 477 // ForceSendFields is a list of field names (e.g. "Name") to 478 // unconditionally include in API requests. By default, fields with 479 // empty values are omitted from API requests. However, any non-pointer, 480 // non-interface field appearing in ForceSendFields will be sent to the 481 // server regardless of whether the field is empty or not. This may be 482 // used to include empty fields in Patch requests. 483 ForceSendFields []string `json:"-"` 484 485 // NullFields is a list of field names (e.g. "Name") to include in API 486 // requests with the JSON null value. By default, fields with empty 487 // values are omitted from API requests. However, any field with an 488 // empty value appearing in NullFields will be sent to the server as 489 // null. It is an error if a field in this list has a non-empty value. 490 // This may be used to include null fields in Patch requests. 491 NullFields []string `json:"-"` 492} 493 494func (s *CustomMetric) MarshalJSON() ([]byte, error) { 495 type NoMethod CustomMetric 496 raw := NoMethod(*s) 497 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 498} 499 500func (s *CustomMetric) UnmarshalJSON(data []byte) error { 501 type NoMethod CustomMetric 502 var s1 struct { 503 Value gensupport.JSONFloat64 `json:"value"` 504 *NoMethod 505 } 506 s1.NoMethod = (*NoMethod)(s) 507 if err := json.Unmarshal(data, &s1); err != nil { 508 return err 509 } 510 s.Value = float64(s1.Value) 511 return nil 512} 513 514// Report: A DoubleClick Search report. This object contains the report 515// request, some 516// report metadata such as currency code, and the generated report rows 517// or 518// report files. 519type Report struct { 520 // Files: Asynchronous report only. Contains a list of generated report 521 // files once 522 // the report has successfully completed. 523 Files []*ReportFiles `json:"files,omitempty"` 524 525 // Id: Asynchronous report only. Id of the report. 526 Id string `json:"id,omitempty"` 527 528 // IsReportReady: Asynchronous report only. True if and only if the 529 // report has completed 530 // successfully and the report files are ready to be downloaded. 531 IsReportReady bool `json:"isReportReady,omitempty"` 532 533 // Kind: Identifies this as a Report resource. Value: the fixed 534 // string 535 // `doubleclicksearch#report`. 536 Kind string `json:"kind,omitempty"` 537 538 // Request: The request that created the report. Optional fields not 539 // specified in the 540 // original request are filled with default values. 541 Request *ReportRequest `json:"request,omitempty"` 542 543 // RowCount: The number of report rows generated by the report, not 544 // including headers. 545 RowCount int64 `json:"rowCount,omitempty"` 546 547 // Rows: Synchronous report only. Generated report rows. 548 Rows []googleapi.RawMessage `json:"rows,omitempty"` 549 550 // StatisticsCurrencyCode: The currency code of all monetary values 551 // produced in the report, including 552 // values that are set by users (e.g., keyword bid settings) and 553 // metrics 554 // (e.g., cost and revenue). The currency code of a report is determined 555 // by 556 // the `statisticsCurrency` field of the report request. 557 StatisticsCurrencyCode string `json:"statisticsCurrencyCode,omitempty"` 558 559 // StatisticsTimeZone: If all statistics of the report are sourced from 560 // the same time zone, this 561 // would be it. Otherwise the field is unset. 562 StatisticsTimeZone string `json:"statisticsTimeZone,omitempty"` 563 564 // ServerResponse contains the HTTP response code and headers from the 565 // server. 566 googleapi.ServerResponse `json:"-"` 567 568 // ForceSendFields is a list of field names (e.g. "Files") to 569 // unconditionally include in API requests. By default, fields with 570 // empty values are omitted from API requests. However, any non-pointer, 571 // non-interface field appearing in ForceSendFields will be sent to the 572 // server regardless of whether the field is empty or not. This may be 573 // used to include empty fields in Patch requests. 574 ForceSendFields []string `json:"-"` 575 576 // NullFields is a list of field names (e.g. "Files") to include in API 577 // requests with the JSON null value. By default, fields with empty 578 // values are omitted from API requests. However, any field with an 579 // empty value appearing in NullFields will be sent to the server as 580 // null. It is an error if a field in this list has a non-empty value. 581 // This may be used to include null fields in Patch requests. 582 NullFields []string `json:"-"` 583} 584 585func (s *Report) MarshalJSON() ([]byte, error) { 586 type NoMethod Report 587 raw := NoMethod(*s) 588 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 589} 590 591type ReportFiles struct { 592 // ByteCount: The size of this report file in bytes. 593 ByteCount int64 `json:"byteCount,omitempty,string"` 594 595 // Url: Use this url to download the report file. 596 Url string `json:"url,omitempty"` 597 598 // ForceSendFields is a list of field names (e.g. "ByteCount") to 599 // unconditionally include in API requests. By default, fields with 600 // empty values are omitted from API requests. However, any non-pointer, 601 // non-interface field appearing in ForceSendFields will be sent to the 602 // server regardless of whether the field is empty or not. This may be 603 // used to include empty fields in Patch requests. 604 ForceSendFields []string `json:"-"` 605 606 // NullFields is a list of field names (e.g. "ByteCount") to include in 607 // API requests with the JSON null value. By default, fields with empty 608 // values are omitted from API requests. However, any field with an 609 // empty value appearing in NullFields will be sent to the server as 610 // null. It is an error if a field in this list has a non-empty value. 611 // This may be used to include null fields in Patch requests. 612 NullFields []string `json:"-"` 613} 614 615func (s *ReportFiles) MarshalJSON() ([]byte, error) { 616 type NoMethod ReportFiles 617 raw := NoMethod(*s) 618 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 619} 620 621// ReportApiColumnSpec: A request object used to create a DoubleClick 622// Search report. 623type ReportApiColumnSpec struct { 624 // ColumnName: Name of a DoubleClick Search column to include in the 625 // report. 626 ColumnName string `json:"columnName,omitempty"` 627 628 // CustomDimensionName: Segments a report by a custom dimension. The 629 // report must be scoped to an 630 // advertiser or lower, and the custom dimension must already be set up 631 // in 632 // DoubleClick Search. The custom dimension name, which appears in 633 // DoubleClick 634 // Search, is case sensitive.\ 635 // If used in a conversion report, returns the 636 // value of the specified custom dimension for the given conversion, if 637 // set. 638 // This column does not segment the conversion report. 639 CustomDimensionName string `json:"customDimensionName,omitempty"` 640 641 // CustomMetricName: Name of a custom metric to include in the report. 642 // The report must be scoped 643 // to an advertiser or lower, and the custom metric must already be set 644 // up in 645 // DoubleClick Search. The custom metric name, which appears in 646 // DoubleClick 647 // Search, is case sensitive. 648 CustomMetricName string `json:"customMetricName,omitempty"` 649 650 // EndDate: Inclusive day in YYYY-MM-DD format. When provided, this 651 // overrides the 652 // overall time range of the report for this column only. Must be 653 // provided 654 // together with `startDate`. 655 EndDate string `json:"endDate,omitempty"` 656 657 // GroupByColumn: Synchronous report only. Set to `true` to group by 658 // this column. 659 // Defaults to `false`. 660 GroupByColumn bool `json:"groupByColumn,omitempty"` 661 662 // HeaderText: Text used to identify this column in the report output; 663 // defaults to 664 // `columnName` or `savedColumnName` when not specified. 665 // This can be used to prevent collisions between DoubleClick Search 666 // columns 667 // and saved columns with the same name. 668 HeaderText string `json:"headerText,omitempty"` 669 670 // PlatformSource: The platform that is used to provide data for the 671 // custom dimension. 672 // Acceptable values are "floodlight". 673 PlatformSource string `json:"platformSource,omitempty"` 674 675 // ProductReportPerspective: Returns metrics only for a specific type of 676 // product activity. Accepted 677 // values are: <ul> <li>"sold": returns metrics only for products 678 // that were sold</li> <li>"advertised": returns metrics only 679 // for 680 // products that were advertised in a Shopping campaign, and that might 681 // or 682 // might not have been sold</li> </ul> 683 ProductReportPerspective string `json:"productReportPerspective,omitempty"` 684 685 // SavedColumnName: Name of a saved column to include in the report. The 686 // report must be scoped 687 // at advertiser or lower, and this saved column must already be created 688 // in 689 // the DoubleClick Search UI. 690 SavedColumnName string `json:"savedColumnName,omitempty"` 691 692 // StartDate: Inclusive date in YYYY-MM-DD format. When provided, this 693 // overrides the 694 // overall time range of the report for this column only. Must be 695 // provided 696 // together with `endDate`. 697 StartDate string `json:"startDate,omitempty"` 698 699 // ForceSendFields is a list of field names (e.g. "ColumnName") to 700 // unconditionally include in API requests. By default, fields with 701 // empty values are omitted from API requests. However, any non-pointer, 702 // non-interface field appearing in ForceSendFields will be sent to the 703 // server regardless of whether the field is empty or not. This may be 704 // used to include empty fields in Patch requests. 705 ForceSendFields []string `json:"-"` 706 707 // NullFields is a list of field names (e.g. "ColumnName") to include in 708 // API requests with the JSON null value. By default, fields with empty 709 // values are omitted from API requests. However, any field with an 710 // empty value appearing in NullFields will be sent to the server as 711 // null. It is an error if a field in this list has a non-empty value. 712 // This may be used to include null fields in Patch requests. 713 NullFields []string `json:"-"` 714} 715 716func (s *ReportApiColumnSpec) MarshalJSON() ([]byte, error) { 717 type NoMethod ReportApiColumnSpec 718 raw := NoMethod(*s) 719 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 720} 721 722// ReportRequest: A request object used to create a DoubleClick Search 723// report. 724type ReportRequest struct { 725 // Columns: The columns to include in the report. This includes both 726 // DoubleClick Search 727 // columns and saved columns. For DoubleClick Search columns, only 728 // the 729 // `columnName` parameter is required. For saved columns only 730 // the 731 // `savedColumnName` parameter is required. Both 732 // `columnName` and `savedColumnName` cannot be set in 733 // the same stanza.\ 734 // The maximum number of columns per request is 300. 735 Columns []*ReportApiColumnSpec `json:"columns,omitempty"` 736 737 // DownloadFormat: Format that the report should be returned in. 738 // Currently `csv` or 739 // `tsv` is supported. 740 DownloadFormat string `json:"downloadFormat,omitempty"` 741 742 // Filters: A list of filters to be applied to the report.\ 743 // The maximum number of filters per request is 300. 744 Filters []*ReportRequestFilters `json:"filters,omitempty"` 745 746 // IncludeDeletedEntities: Determines if removed entities should be 747 // included in the report. Defaults 748 // to `false`. Deprecated, please use 749 // `includeRemovedEntities` instead. 750 IncludeDeletedEntities bool `json:"includeDeletedEntities,omitempty"` 751 752 // IncludeRemovedEntities: Determines if removed entities should be 753 // included in the report. Defaults 754 // to `false`. 755 IncludeRemovedEntities bool `json:"includeRemovedEntities,omitempty"` 756 757 // MaxRowsPerFile: Asynchronous report only. The maximum number of rows 758 // per report file. A 759 // large report is split into many files based on this field. 760 // Acceptable 761 // values are `1000000` to `100000000`, inclusive. 762 MaxRowsPerFile int64 `json:"maxRowsPerFile,omitempty"` 763 764 // OrderBy: Synchronous report only. A list of columns and directions 765 // defining sorting 766 // to be performed on the report rows.\ 767 // The maximum number of orderings per request is 300. 768 OrderBy []*ReportRequestOrderBy `json:"orderBy,omitempty"` 769 770 // ReportScope: The reportScope is a set of IDs that are used to 771 // determine which subset of 772 // entities will be returned in the report. The full lineage of IDs from 773 // the 774 // lowest scoped level desired up through agency is required. 775 ReportScope *ReportRequestReportScope `json:"reportScope,omitempty"` 776 777 // ReportType: Determines the type of rows that are returned in the 778 // report. For example, 779 // if you specify `reportType: keyword`, each row in the report 780 // will contain data about a keyword. See the [Types 781 // of 782 // Reports](/search-ads/v2/report-types/) reference for the columns that 783 // are 784 // available for each type. 785 ReportType string `json:"reportType,omitempty"` 786 787 // RowCount: Synchronous report only. The maximum number of rows to 788 // return; additional 789 // rows are dropped. Acceptable values are `0` to 790 // `10000`, inclusive. Defaults to `10000`. 791 RowCount int64 `json:"rowCount,omitempty"` 792 793 // StartRow: Synchronous report only. Zero-based index of the first row 794 // to return. 795 // Acceptable values are `0` to `50000`, inclusive. 796 // Defaults to `0`. 797 StartRow int64 `json:"startRow,omitempty"` 798 799 // StatisticsCurrency: Specifies the currency in which monetary will be 800 // returned. Possible values 801 // are: `usd`, `agency` (valid if the report is scoped 802 // to agency or lower), `advertiser` (valid if the report is scoped 803 // to * advertiser or lower), or `account` (valid if the report 804 // is 805 // scoped to engine account or lower). 806 StatisticsCurrency string `json:"statisticsCurrency,omitempty"` 807 808 // TimeRange: If metrics are requested in a report, this argument will 809 // be used to 810 // restrict the metrics to a specific time range. 811 TimeRange *ReportRequestTimeRange `json:"timeRange,omitempty"` 812 813 // VerifySingleTimeZone: If `true`, the report would only be created if 814 // all the requested 815 // stat data are sourced from a single timezone. Defaults to 816 // `false`. 817 VerifySingleTimeZone bool `json:"verifySingleTimeZone,omitempty"` 818 819 // ForceSendFields is a list of field names (e.g. "Columns") to 820 // unconditionally include in API requests. By default, fields with 821 // empty values are omitted from API requests. However, any non-pointer, 822 // non-interface field appearing in ForceSendFields will be sent to the 823 // server regardless of whether the field is empty or not. This may be 824 // used to include empty fields in Patch requests. 825 ForceSendFields []string `json:"-"` 826 827 // NullFields is a list of field names (e.g. "Columns") to include in 828 // API requests with the JSON null value. By default, fields with empty 829 // values are omitted from API requests. However, any field with an 830 // empty value appearing in NullFields will be sent to the server as 831 // null. It is an error if a field in this list has a non-empty value. 832 // This may be used to include null fields in Patch requests. 833 NullFields []string `json:"-"` 834} 835 836func (s *ReportRequest) MarshalJSON() ([]byte, error) { 837 type NoMethod ReportRequest 838 raw := NoMethod(*s) 839 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 840} 841 842type ReportRequestFilters struct { 843 // Column: Column to perform the filter on. This can be a DoubleClick 844 // Search column 845 // or a saved column. 846 Column *ReportApiColumnSpec `json:"column,omitempty"` 847 848 // Operator: Operator to use in the filter. See the filter reference for 849 // a list of 850 // available operators. 851 Operator string `json:"operator,omitempty"` 852 853 // Values: A list of values to filter the column value against.\ 854 // The maximum number of filter values per request is 300. 855 Values []interface{} `json:"values,omitempty"` 856 857 // ForceSendFields is a list of field names (e.g. "Column") to 858 // unconditionally include in API requests. By default, fields with 859 // empty values are omitted from API requests. However, any non-pointer, 860 // non-interface field appearing in ForceSendFields will be sent to the 861 // server regardless of whether the field is empty or not. This may be 862 // used to include empty fields in Patch requests. 863 ForceSendFields []string `json:"-"` 864 865 // NullFields is a list of field names (e.g. "Column") to include in API 866 // requests with the JSON null value. By default, fields with empty 867 // values are omitted from API requests. However, any field with an 868 // empty value appearing in NullFields will be sent to the server as 869 // null. It is an error if a field in this list has a non-empty value. 870 // This may be used to include null fields in Patch requests. 871 NullFields []string `json:"-"` 872} 873 874func (s *ReportRequestFilters) MarshalJSON() ([]byte, error) { 875 type NoMethod ReportRequestFilters 876 raw := NoMethod(*s) 877 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 878} 879 880type ReportRequestOrderBy struct { 881 // Column: Column to perform the sort on. This can be a DoubleClick 882 // Search-defined 883 // column or a saved column. 884 Column *ReportApiColumnSpec `json:"column,omitempty"` 885 886 // SortOrder: The sort direction, which is either `ascending` 887 // or 888 // `descending`. 889 SortOrder string `json:"sortOrder,omitempty"` 890 891 // ForceSendFields is a list of field names (e.g. "Column") to 892 // unconditionally include in API requests. By default, fields with 893 // empty values are omitted from API requests. However, any non-pointer, 894 // non-interface field appearing in ForceSendFields will be sent to the 895 // server regardless of whether the field is empty or not. This may be 896 // used to include empty fields in Patch requests. 897 ForceSendFields []string `json:"-"` 898 899 // NullFields is a list of field names (e.g. "Column") to include in API 900 // requests with the JSON null value. By default, fields with empty 901 // values are omitted from API requests. However, any field with an 902 // empty value appearing in NullFields will be sent to the server as 903 // null. It is an error if a field in this list has a non-empty value. 904 // This may be used to include null fields in Patch requests. 905 NullFields []string `json:"-"` 906} 907 908func (s *ReportRequestOrderBy) MarshalJSON() ([]byte, error) { 909 type NoMethod ReportRequestOrderBy 910 raw := NoMethod(*s) 911 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 912} 913 914// ReportRequestReportScope: The reportScope is a set of IDs that are 915// used to determine which subset of 916// entities will be returned in the report. The full lineage of IDs from 917// the 918// lowest scoped level desired up through agency is required. 919type ReportRequestReportScope struct { 920 // AdGroupId: DS ad group ID. 921 AdGroupId int64 `json:"adGroupId,omitempty,string"` 922 923 // AdId: DS ad ID. 924 AdId int64 `json:"adId,omitempty,string"` 925 926 // AdvertiserId: DS advertiser ID. 927 AdvertiserId int64 `json:"advertiserId,omitempty,string"` 928 929 // AgencyId: DS agency ID. 930 AgencyId int64 `json:"agencyId,omitempty,string"` 931 932 // CampaignId: DS campaign ID. 933 CampaignId int64 `json:"campaignId,omitempty,string"` 934 935 // EngineAccountId: DS engine account ID. 936 EngineAccountId int64 `json:"engineAccountId,omitempty,string"` 937 938 // KeywordId: DS keyword ID. 939 KeywordId int64 `json:"keywordId,omitempty,string"` 940 941 // ForceSendFields is a list of field names (e.g. "AdGroupId") to 942 // unconditionally include in API requests. By default, fields with 943 // empty values are omitted from API requests. However, any non-pointer, 944 // non-interface field appearing in ForceSendFields will be sent to the 945 // server regardless of whether the field is empty or not. This may be 946 // used to include empty fields in Patch requests. 947 ForceSendFields []string `json:"-"` 948 949 // NullFields is a list of field names (e.g. "AdGroupId") to include in 950 // API requests with the JSON null value. By default, fields with empty 951 // values are omitted from API requests. However, any field with an 952 // empty value appearing in NullFields will be sent to the server as 953 // null. It is an error if a field in this list has a non-empty value. 954 // This may be used to include null fields in Patch requests. 955 NullFields []string `json:"-"` 956} 957 958func (s *ReportRequestReportScope) MarshalJSON() ([]byte, error) { 959 type NoMethod ReportRequestReportScope 960 raw := NoMethod(*s) 961 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 962} 963 964// ReportRequestTimeRange: If metrics are requested in a report, this 965// argument will be used to 966// restrict the metrics to a specific time range. 967type ReportRequestTimeRange struct { 968 // ChangedAttributesSinceTimestamp: Inclusive UTC timestamp in RFC 969 // format, e.g., 970 // `2013-07-16T10:16:23.555Z`. See additional references on how 971 // changed attribute reports work. 972 ChangedAttributesSinceTimestamp string `json:"changedAttributesSinceTimestamp,omitempty"` 973 974 // ChangedMetricsSinceTimestamp: Inclusive UTC timestamp in RFC format, 975 // e.g., 976 // `2013-07-16T10:16:23.555Z`. See additional references on how 977 // changed metrics reports work. 978 ChangedMetricsSinceTimestamp string `json:"changedMetricsSinceTimestamp,omitempty"` 979 980 // EndDate: Inclusive date in YYYY-MM-DD format. 981 EndDate string `json:"endDate,omitempty"` 982 983 // StartDate: Inclusive date in YYYY-MM-DD format. 984 StartDate string `json:"startDate,omitempty"` 985 986 // ForceSendFields is a list of field names (e.g. 987 // "ChangedAttributesSinceTimestamp") to unconditionally include in API 988 // requests. By default, fields with empty values are omitted from API 989 // requests. However, any non-pointer, non-interface field appearing in 990 // ForceSendFields will be sent to the server regardless of whether the 991 // field is empty or not. This may be used to include empty fields in 992 // Patch requests. 993 ForceSendFields []string `json:"-"` 994 995 // NullFields is a list of field names (e.g. 996 // "ChangedAttributesSinceTimestamp") to include in API requests with 997 // the JSON null value. By default, fields with empty values are omitted 998 // from API requests. However, any field with an empty value appearing 999 // in NullFields will be sent to the server as null. It is an error if a 1000 // field in this list has a non-empty value. This may be used to include 1001 // null fields in Patch requests. 1002 NullFields []string `json:"-"` 1003} 1004 1005func (s *ReportRequestTimeRange) MarshalJSON() ([]byte, error) { 1006 type NoMethod ReportRequestTimeRange 1007 raw := NoMethod(*s) 1008 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1009} 1010 1011// SavedColumn: A saved column 1012type SavedColumn struct { 1013 // Kind: Identifies this as a SavedColumn resource. Value: the fixed 1014 // string 1015 // <code>doubleclicksearch#savedColumn</code>. 1016 Kind string `json:"kind,omitempty"` 1017 1018 // SavedColumnName: The name of the saved column. 1019 SavedColumnName string `json:"savedColumnName,omitempty"` 1020 1021 // Type: The type of data this saved column will produce. 1022 Type string `json:"type,omitempty"` 1023 1024 // ForceSendFields is a list of field names (e.g. "Kind") to 1025 // unconditionally include in API requests. By default, fields with 1026 // empty values are omitted from API requests. However, any non-pointer, 1027 // non-interface field appearing in ForceSendFields will be sent to the 1028 // server regardless of whether the field is empty or not. This may be 1029 // used to include empty fields in Patch requests. 1030 ForceSendFields []string `json:"-"` 1031 1032 // NullFields is a list of field names (e.g. "Kind") to include in API 1033 // requests with the JSON null value. By default, fields with empty 1034 // values are omitted from API requests. However, any field with an 1035 // empty value appearing in NullFields will be sent to the server as 1036 // null. It is an error if a field in this list has a non-empty value. 1037 // This may be used to include null fields in Patch requests. 1038 NullFields []string `json:"-"` 1039} 1040 1041func (s *SavedColumn) MarshalJSON() ([]byte, error) { 1042 type NoMethod SavedColumn 1043 raw := NoMethod(*s) 1044 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1045} 1046 1047// SavedColumnList: A list of saved columns. Advertisers create saved 1048// columns to report on 1049// Floodlight activities, Google Analytics goals, or custom KPIs. To 1050// request 1051// reports with saved columns, 1052// you'll need the saved column names that are available from this list. 1053type SavedColumnList struct { 1054 // Items: The saved columns being requested. 1055 Items []*SavedColumn `json:"items,omitempty"` 1056 1057 // Kind: Identifies this as a SavedColumnList resource. Value: the fixed 1058 // string 1059 // <code>doubleclicksearch#savedColumnList</code>. 1060 Kind string `json:"kind,omitempty"` 1061 1062 // ServerResponse contains the HTTP response code and headers from the 1063 // server. 1064 googleapi.ServerResponse `json:"-"` 1065 1066 // ForceSendFields is a list of field names (e.g. "Items") to 1067 // unconditionally include in API requests. By default, fields with 1068 // empty values are omitted from API requests. However, any non-pointer, 1069 // non-interface field appearing in ForceSendFields will be sent to the 1070 // server regardless of whether the field is empty or not. This may be 1071 // used to include empty fields in Patch requests. 1072 ForceSendFields []string `json:"-"` 1073 1074 // NullFields is a list of field names (e.g. "Items") to include in API 1075 // requests with the JSON null value. By default, fields with empty 1076 // values are omitted from API requests. However, any field with an 1077 // empty value appearing in NullFields will be sent to the server as 1078 // null. It is an error if a field in this list has a non-empty value. 1079 // This may be used to include null fields in Patch requests. 1080 NullFields []string `json:"-"` 1081} 1082 1083func (s *SavedColumnList) MarshalJSON() ([]byte, error) { 1084 type NoMethod SavedColumnList 1085 raw := NoMethod(*s) 1086 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1087} 1088 1089// UpdateAvailabilityRequest: The request to update availability. 1090type UpdateAvailabilityRequest struct { 1091 // Availabilities: The availabilities being requested. 1092 Availabilities []*Availability `json:"availabilities,omitempty"` 1093 1094 // ForceSendFields is a list of field names (e.g. "Availabilities") to 1095 // unconditionally include in API requests. By default, fields with 1096 // empty values are omitted from API requests. However, any non-pointer, 1097 // non-interface field appearing in ForceSendFields will be sent to the 1098 // server regardless of whether the field is empty or not. This may be 1099 // used to include empty fields in Patch requests. 1100 ForceSendFields []string `json:"-"` 1101 1102 // NullFields is a list of field names (e.g. "Availabilities") to 1103 // include in API requests with the JSON null value. By default, fields 1104 // with empty values are omitted from API requests. However, any field 1105 // with an empty value appearing in NullFields will be sent to the 1106 // server as null. It is an error if a field in this list has a 1107 // non-empty value. This may be used to include null fields in Patch 1108 // requests. 1109 NullFields []string `json:"-"` 1110} 1111 1112func (s *UpdateAvailabilityRequest) MarshalJSON() ([]byte, error) { 1113 type NoMethod UpdateAvailabilityRequest 1114 raw := NoMethod(*s) 1115 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1116} 1117 1118// UpdateAvailabilityResponse: The response to a update availability 1119// request. 1120type UpdateAvailabilityResponse struct { 1121 // Availabilities: The availabilities being returned. 1122 Availabilities []*Availability `json:"availabilities,omitempty"` 1123 1124 // ServerResponse contains the HTTP response code and headers from the 1125 // server. 1126 googleapi.ServerResponse `json:"-"` 1127 1128 // ForceSendFields is a list of field names (e.g. "Availabilities") to 1129 // unconditionally include in API requests. By default, fields with 1130 // empty values are omitted from API requests. However, any non-pointer, 1131 // non-interface field appearing in ForceSendFields will be sent to the 1132 // server regardless of whether the field is empty or not. This may be 1133 // used to include empty fields in Patch requests. 1134 ForceSendFields []string `json:"-"` 1135 1136 // NullFields is a list of field names (e.g. "Availabilities") to 1137 // include in API requests with the JSON null value. By default, fields 1138 // with empty values are omitted from API requests. However, any field 1139 // with an empty value appearing in NullFields will be sent to the 1140 // server as null. It is an error if a field in this list has a 1141 // non-empty value. This may be used to include null fields in Patch 1142 // requests. 1143 NullFields []string `json:"-"` 1144} 1145 1146func (s *UpdateAvailabilityResponse) MarshalJSON() ([]byte, error) { 1147 type NoMethod UpdateAvailabilityResponse 1148 raw := NoMethod(*s) 1149 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1150} 1151 1152// method id "doubleclicksearch.conversion.get": 1153 1154type ConversionGetCall struct { 1155 s *Service 1156 agencyId int64 1157 advertiserId int64 1158 engineAccountId int64 1159 urlParams_ gensupport.URLParams 1160 ifNoneMatch_ string 1161 ctx_ context.Context 1162 header_ http.Header 1163} 1164 1165// Get: Retrieves a list of conversions from a DoubleClick Search engine 1166// account. 1167func (r *ConversionService) Get(agencyId int64, advertiserId int64, engineAccountId int64, endDate int64, rowCount int64, startDate int64, startRow int64) *ConversionGetCall { 1168 c := &ConversionGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1169 c.agencyId = agencyId 1170 c.advertiserId = advertiserId 1171 c.engineAccountId = engineAccountId 1172 c.urlParams_.Set("endDate", fmt.Sprint(endDate)) 1173 c.urlParams_.Set("rowCount", fmt.Sprint(rowCount)) 1174 c.urlParams_.Set("startDate", fmt.Sprint(startDate)) 1175 c.urlParams_.Set("startRow", fmt.Sprint(startRow)) 1176 return c 1177} 1178 1179// AdGroupId sets the optional parameter "adGroupId": Numeric ID of the 1180// ad group. 1181func (c *ConversionGetCall) AdGroupId(adGroupId int64) *ConversionGetCall { 1182 c.urlParams_.Set("adGroupId", fmt.Sprint(adGroupId)) 1183 return c 1184} 1185 1186// AdId sets the optional parameter "adId": Numeric ID of the ad. 1187func (c *ConversionGetCall) AdId(adId int64) *ConversionGetCall { 1188 c.urlParams_.Set("adId", fmt.Sprint(adId)) 1189 return c 1190} 1191 1192// CampaignId sets the optional parameter "campaignId": Numeric ID of 1193// the campaign. 1194func (c *ConversionGetCall) CampaignId(campaignId int64) *ConversionGetCall { 1195 c.urlParams_.Set("campaignId", fmt.Sprint(campaignId)) 1196 return c 1197} 1198 1199// CriterionId sets the optional parameter "criterionId": Numeric ID of 1200// the criterion. 1201func (c *ConversionGetCall) CriterionId(criterionId int64) *ConversionGetCall { 1202 c.urlParams_.Set("criterionId", fmt.Sprint(criterionId)) 1203 return c 1204} 1205 1206// Fields allows partial responses to be retrieved. See 1207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1208// for more information. 1209func (c *ConversionGetCall) Fields(s ...googleapi.Field) *ConversionGetCall { 1210 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1211 return c 1212} 1213 1214// IfNoneMatch sets the optional parameter which makes the operation 1215// fail if the object's ETag matches the given value. This is useful for 1216// getting updates only after the object has changed since the last 1217// request. Use googleapi.IsNotModified to check whether the response 1218// error from Do is the result of In-None-Match. 1219func (c *ConversionGetCall) IfNoneMatch(entityTag string) *ConversionGetCall { 1220 c.ifNoneMatch_ = entityTag 1221 return c 1222} 1223 1224// Context sets the context to be used in this call's Do method. Any 1225// pending HTTP request will be aborted if the provided context is 1226// canceled. 1227func (c *ConversionGetCall) Context(ctx context.Context) *ConversionGetCall { 1228 c.ctx_ = ctx 1229 return c 1230} 1231 1232// Header returns an http.Header that can be modified by the caller to 1233// add HTTP headers to the request. 1234func (c *ConversionGetCall) Header() http.Header { 1235 if c.header_ == nil { 1236 c.header_ = make(http.Header) 1237 } 1238 return c.header_ 1239} 1240 1241func (c *ConversionGetCall) doRequest(alt string) (*http.Response, error) { 1242 reqHeaders := make(http.Header) 1243 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 1244 for k, v := range c.header_ { 1245 reqHeaders[k] = v 1246 } 1247 reqHeaders.Set("User-Agent", c.s.userAgent()) 1248 if c.ifNoneMatch_ != "" { 1249 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 1250 } 1251 var body io.Reader = nil 1252 c.urlParams_.Set("alt", alt) 1253 c.urlParams_.Set("prettyPrint", "false") 1254 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion") 1255 urls += "?" + c.urlParams_.Encode() 1256 req, err := http.NewRequest("GET", urls, body) 1257 if err != nil { 1258 return nil, err 1259 } 1260 req.Header = reqHeaders 1261 googleapi.Expand(req.URL, map[string]string{ 1262 "agencyId": strconv.FormatInt(c.agencyId, 10), 1263 "advertiserId": strconv.FormatInt(c.advertiserId, 10), 1264 "engineAccountId": strconv.FormatInt(c.engineAccountId, 10), 1265 }) 1266 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1267} 1268 1269// Do executes the "doubleclicksearch.conversion.get" call. 1270// Exactly one of *ConversionList or error will be non-nil. Any non-2xx 1271// status code is an error. Response headers are in either 1272// *ConversionList.ServerResponse.Header or (if a response was returned 1273// at all) in error.(*googleapi.Error).Header. Use 1274// googleapi.IsNotModified to check whether the returned error was 1275// because http.StatusNotModified was returned. 1276func (c *ConversionGetCall) Do(opts ...googleapi.CallOption) (*ConversionList, error) { 1277 gensupport.SetOptions(c.urlParams_, opts...) 1278 res, err := c.doRequest("json") 1279 if res != nil && res.StatusCode == http.StatusNotModified { 1280 if res.Body != nil { 1281 res.Body.Close() 1282 } 1283 return nil, &googleapi.Error{ 1284 Code: res.StatusCode, 1285 Header: res.Header, 1286 } 1287 } 1288 if err != nil { 1289 return nil, err 1290 } 1291 defer googleapi.CloseBody(res) 1292 if err := googleapi.CheckResponse(res); err != nil { 1293 return nil, err 1294 } 1295 ret := &ConversionList{ 1296 ServerResponse: googleapi.ServerResponse{ 1297 Header: res.Header, 1298 HTTPStatusCode: res.StatusCode, 1299 }, 1300 } 1301 target := &ret 1302 if err := gensupport.DecodeResponse(target, res); err != nil { 1303 return nil, err 1304 } 1305 return ret, nil 1306 // { 1307 // "description": "Retrieves a list of conversions from a DoubleClick Search engine account.", 1308 // "flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion", 1309 // "httpMethod": "GET", 1310 // "id": "doubleclicksearch.conversion.get", 1311 // "parameterOrder": [ 1312 // "agencyId", 1313 // "advertiserId", 1314 // "engineAccountId", 1315 // "endDate", 1316 // "rowCount", 1317 // "startDate", 1318 // "startRow" 1319 // ], 1320 // "parameters": { 1321 // "adGroupId": { 1322 // "description": "Numeric ID of the ad group.", 1323 // "format": "int64", 1324 // "location": "query", 1325 // "type": "string" 1326 // }, 1327 // "adId": { 1328 // "description": "Numeric ID of the ad.", 1329 // "format": "int64", 1330 // "location": "query", 1331 // "type": "string" 1332 // }, 1333 // "advertiserId": { 1334 // "description": "Numeric ID of the advertiser.", 1335 // "format": "int64", 1336 // "location": "path", 1337 // "required": true, 1338 // "type": "string" 1339 // }, 1340 // "agencyId": { 1341 // "description": "Numeric ID of the agency.", 1342 // "format": "int64", 1343 // "location": "path", 1344 // "required": true, 1345 // "type": "string" 1346 // }, 1347 // "campaignId": { 1348 // "description": "Numeric ID of the campaign.", 1349 // "format": "int64", 1350 // "location": "query", 1351 // "type": "string" 1352 // }, 1353 // "criterionId": { 1354 // "description": "Numeric ID of the criterion.", 1355 // "format": "int64", 1356 // "location": "query", 1357 // "type": "string" 1358 // }, 1359 // "endDate": { 1360 // "description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", 1361 // "format": "int32", 1362 // "location": "query", 1363 // "maximum": "99991231", 1364 // "minimum": "20091101", 1365 // "required": true, 1366 // "type": "integer" 1367 // }, 1368 // "engineAccountId": { 1369 // "description": "Numeric ID of the engine account.", 1370 // "format": "int64", 1371 // "location": "path", 1372 // "required": true, 1373 // "type": "string" 1374 // }, 1375 // "rowCount": { 1376 // "description": "The number of conversions to return per call.", 1377 // "format": "int32", 1378 // "location": "query", 1379 // "maximum": "1000", 1380 // "minimum": "1", 1381 // "required": true, 1382 // "type": "integer" 1383 // }, 1384 // "startDate": { 1385 // "description": "First date (inclusive) on which to retrieve conversions. Format is\nyyyymmdd.", 1386 // "format": "int32", 1387 // "location": "query", 1388 // "maximum": "99991231", 1389 // "minimum": "20091101", 1390 // "required": true, 1391 // "type": "integer" 1392 // }, 1393 // "startRow": { 1394 // "description": "The 0-based starting index for retrieving conversions results.", 1395 // "format": "uint32", 1396 // "location": "query", 1397 // "required": true, 1398 // "type": "integer" 1399 // } 1400 // }, 1401 // "path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion", 1402 // "response": { 1403 // "$ref": "ConversionList" 1404 // }, 1405 // "scopes": [ 1406 // "https://www.googleapis.com/auth/doubleclicksearch" 1407 // ] 1408 // } 1409 1410} 1411 1412// method id "doubleclicksearch.conversion.insert": 1413 1414type ConversionInsertCall struct { 1415 s *Service 1416 conversionlist *ConversionList 1417 urlParams_ gensupport.URLParams 1418 ctx_ context.Context 1419 header_ http.Header 1420} 1421 1422// Insert: Inserts a batch of new conversions into DoubleClick Search. 1423func (r *ConversionService) Insert(conversionlist *ConversionList) *ConversionInsertCall { 1424 c := &ConversionInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1425 c.conversionlist = conversionlist 1426 return c 1427} 1428 1429// Fields allows partial responses to be retrieved. See 1430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1431// for more information. 1432func (c *ConversionInsertCall) Fields(s ...googleapi.Field) *ConversionInsertCall { 1433 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1434 return c 1435} 1436 1437// Context sets the context to be used in this call's Do method. Any 1438// pending HTTP request will be aborted if the provided context is 1439// canceled. 1440func (c *ConversionInsertCall) Context(ctx context.Context) *ConversionInsertCall { 1441 c.ctx_ = ctx 1442 return c 1443} 1444 1445// Header returns an http.Header that can be modified by the caller to 1446// add HTTP headers to the request. 1447func (c *ConversionInsertCall) Header() http.Header { 1448 if c.header_ == nil { 1449 c.header_ = make(http.Header) 1450 } 1451 return c.header_ 1452} 1453 1454func (c *ConversionInsertCall) doRequest(alt string) (*http.Response, error) { 1455 reqHeaders := make(http.Header) 1456 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 1457 for k, v := range c.header_ { 1458 reqHeaders[k] = v 1459 } 1460 reqHeaders.Set("User-Agent", c.s.userAgent()) 1461 var body io.Reader = nil 1462 body, err := googleapi.WithoutDataWrapper.JSONReader(c.conversionlist) 1463 if err != nil { 1464 return nil, err 1465 } 1466 reqHeaders.Set("Content-Type", "application/json") 1467 c.urlParams_.Set("alt", alt) 1468 c.urlParams_.Set("prettyPrint", "false") 1469 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/conversion") 1470 urls += "?" + c.urlParams_.Encode() 1471 req, err := http.NewRequest("POST", urls, body) 1472 if err != nil { 1473 return nil, err 1474 } 1475 req.Header = reqHeaders 1476 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1477} 1478 1479// Do executes the "doubleclicksearch.conversion.insert" call. 1480// Exactly one of *ConversionList or error will be non-nil. Any non-2xx 1481// status code is an error. Response headers are in either 1482// *ConversionList.ServerResponse.Header or (if a response was returned 1483// at all) in error.(*googleapi.Error).Header. Use 1484// googleapi.IsNotModified to check whether the returned error was 1485// because http.StatusNotModified was returned. 1486func (c *ConversionInsertCall) Do(opts ...googleapi.CallOption) (*ConversionList, error) { 1487 gensupport.SetOptions(c.urlParams_, opts...) 1488 res, err := c.doRequest("json") 1489 if res != nil && res.StatusCode == http.StatusNotModified { 1490 if res.Body != nil { 1491 res.Body.Close() 1492 } 1493 return nil, &googleapi.Error{ 1494 Code: res.StatusCode, 1495 Header: res.Header, 1496 } 1497 } 1498 if err != nil { 1499 return nil, err 1500 } 1501 defer googleapi.CloseBody(res) 1502 if err := googleapi.CheckResponse(res); err != nil { 1503 return nil, err 1504 } 1505 ret := &ConversionList{ 1506 ServerResponse: googleapi.ServerResponse{ 1507 Header: res.Header, 1508 HTTPStatusCode: res.StatusCode, 1509 }, 1510 } 1511 target := &ret 1512 if err := gensupport.DecodeResponse(target, res); err != nil { 1513 return nil, err 1514 } 1515 return ret, nil 1516 // { 1517 // "description": "Inserts a batch of new conversions into DoubleClick Search.", 1518 // "flatPath": "doubleclicksearch/v2/conversion", 1519 // "httpMethod": "POST", 1520 // "id": "doubleclicksearch.conversion.insert", 1521 // "parameterOrder": [], 1522 // "parameters": {}, 1523 // "path": "doubleclicksearch/v2/conversion", 1524 // "request": { 1525 // "$ref": "ConversionList" 1526 // }, 1527 // "response": { 1528 // "$ref": "ConversionList" 1529 // }, 1530 // "scopes": [ 1531 // "https://www.googleapis.com/auth/doubleclicksearch" 1532 // ] 1533 // } 1534 1535} 1536 1537// method id "doubleclicksearch.conversion.update": 1538 1539type ConversionUpdateCall struct { 1540 s *Service 1541 conversionlist *ConversionList 1542 urlParams_ gensupport.URLParams 1543 ctx_ context.Context 1544 header_ http.Header 1545} 1546 1547// Update: Updates a batch of conversions in DoubleClick Search. 1548func (r *ConversionService) Update(conversionlist *ConversionList) *ConversionUpdateCall { 1549 c := &ConversionUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1550 c.conversionlist = conversionlist 1551 return c 1552} 1553 1554// Fields allows partial responses to be retrieved. See 1555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1556// for more information. 1557func (c *ConversionUpdateCall) Fields(s ...googleapi.Field) *ConversionUpdateCall { 1558 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1559 return c 1560} 1561 1562// Context sets the context to be used in this call's Do method. Any 1563// pending HTTP request will be aborted if the provided context is 1564// canceled. 1565func (c *ConversionUpdateCall) Context(ctx context.Context) *ConversionUpdateCall { 1566 c.ctx_ = ctx 1567 return c 1568} 1569 1570// Header returns an http.Header that can be modified by the caller to 1571// add HTTP headers to the request. 1572func (c *ConversionUpdateCall) Header() http.Header { 1573 if c.header_ == nil { 1574 c.header_ = make(http.Header) 1575 } 1576 return c.header_ 1577} 1578 1579func (c *ConversionUpdateCall) doRequest(alt string) (*http.Response, error) { 1580 reqHeaders := make(http.Header) 1581 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 1582 for k, v := range c.header_ { 1583 reqHeaders[k] = v 1584 } 1585 reqHeaders.Set("User-Agent", c.s.userAgent()) 1586 var body io.Reader = nil 1587 body, err := googleapi.WithoutDataWrapper.JSONReader(c.conversionlist) 1588 if err != nil { 1589 return nil, err 1590 } 1591 reqHeaders.Set("Content-Type", "application/json") 1592 c.urlParams_.Set("alt", alt) 1593 c.urlParams_.Set("prettyPrint", "false") 1594 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/conversion") 1595 urls += "?" + c.urlParams_.Encode() 1596 req, err := http.NewRequest("PUT", urls, body) 1597 if err != nil { 1598 return nil, err 1599 } 1600 req.Header = reqHeaders 1601 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1602} 1603 1604// Do executes the "doubleclicksearch.conversion.update" call. 1605// Exactly one of *ConversionList or error will be non-nil. Any non-2xx 1606// status code is an error. Response headers are in either 1607// *ConversionList.ServerResponse.Header or (if a response was returned 1608// at all) in error.(*googleapi.Error).Header. Use 1609// googleapi.IsNotModified to check whether the returned error was 1610// because http.StatusNotModified was returned. 1611func (c *ConversionUpdateCall) Do(opts ...googleapi.CallOption) (*ConversionList, error) { 1612 gensupport.SetOptions(c.urlParams_, opts...) 1613 res, err := c.doRequest("json") 1614 if res != nil && res.StatusCode == http.StatusNotModified { 1615 if res.Body != nil { 1616 res.Body.Close() 1617 } 1618 return nil, &googleapi.Error{ 1619 Code: res.StatusCode, 1620 Header: res.Header, 1621 } 1622 } 1623 if err != nil { 1624 return nil, err 1625 } 1626 defer googleapi.CloseBody(res) 1627 if err := googleapi.CheckResponse(res); err != nil { 1628 return nil, err 1629 } 1630 ret := &ConversionList{ 1631 ServerResponse: googleapi.ServerResponse{ 1632 Header: res.Header, 1633 HTTPStatusCode: res.StatusCode, 1634 }, 1635 } 1636 target := &ret 1637 if err := gensupport.DecodeResponse(target, res); err != nil { 1638 return nil, err 1639 } 1640 return ret, nil 1641 // { 1642 // "description": "Updates a batch of conversions in DoubleClick Search.", 1643 // "flatPath": "doubleclicksearch/v2/conversion", 1644 // "httpMethod": "PUT", 1645 // "id": "doubleclicksearch.conversion.update", 1646 // "parameterOrder": [], 1647 // "parameters": {}, 1648 // "path": "doubleclicksearch/v2/conversion", 1649 // "request": { 1650 // "$ref": "ConversionList" 1651 // }, 1652 // "response": { 1653 // "$ref": "ConversionList" 1654 // }, 1655 // "scopes": [ 1656 // "https://www.googleapis.com/auth/doubleclicksearch" 1657 // ] 1658 // } 1659 1660} 1661 1662// method id "doubleclicksearch.conversion.updateAvailability": 1663 1664type ConversionUpdateAvailabilityCall struct { 1665 s *Service 1666 updateavailabilityrequest *UpdateAvailabilityRequest 1667 urlParams_ gensupport.URLParams 1668 ctx_ context.Context 1669 header_ http.Header 1670} 1671 1672// UpdateAvailability: Updates the availabilities of a batch of 1673// floodlight activities in 1674// DoubleClick Search. 1675func (r *ConversionService) UpdateAvailability(updateavailabilityrequest *UpdateAvailabilityRequest) *ConversionUpdateAvailabilityCall { 1676 c := &ConversionUpdateAvailabilityCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1677 c.updateavailabilityrequest = updateavailabilityrequest 1678 return c 1679} 1680 1681// Fields allows partial responses to be retrieved. See 1682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1683// for more information. 1684func (c *ConversionUpdateAvailabilityCall) Fields(s ...googleapi.Field) *ConversionUpdateAvailabilityCall { 1685 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1686 return c 1687} 1688 1689// Context sets the context to be used in this call's Do method. Any 1690// pending HTTP request will be aborted if the provided context is 1691// canceled. 1692func (c *ConversionUpdateAvailabilityCall) Context(ctx context.Context) *ConversionUpdateAvailabilityCall { 1693 c.ctx_ = ctx 1694 return c 1695} 1696 1697// Header returns an http.Header that can be modified by the caller to 1698// add HTTP headers to the request. 1699func (c *ConversionUpdateAvailabilityCall) Header() http.Header { 1700 if c.header_ == nil { 1701 c.header_ = make(http.Header) 1702 } 1703 return c.header_ 1704} 1705 1706func (c *ConversionUpdateAvailabilityCall) doRequest(alt string) (*http.Response, error) { 1707 reqHeaders := make(http.Header) 1708 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 1709 for k, v := range c.header_ { 1710 reqHeaders[k] = v 1711 } 1712 reqHeaders.Set("User-Agent", c.s.userAgent()) 1713 var body io.Reader = nil 1714 body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateavailabilityrequest) 1715 if err != nil { 1716 return nil, err 1717 } 1718 reqHeaders.Set("Content-Type", "application/json") 1719 c.urlParams_.Set("alt", alt) 1720 c.urlParams_.Set("prettyPrint", "false") 1721 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/conversion/updateAvailability") 1722 urls += "?" + c.urlParams_.Encode() 1723 req, err := http.NewRequest("POST", urls, body) 1724 if err != nil { 1725 return nil, err 1726 } 1727 req.Header = reqHeaders 1728 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1729} 1730 1731// Do executes the "doubleclicksearch.conversion.updateAvailability" call. 1732// Exactly one of *UpdateAvailabilityResponse or error will be non-nil. 1733// Any non-2xx status code is an error. Response headers are in either 1734// *UpdateAvailabilityResponse.ServerResponse.Header or (if a response 1735// was returned at all) in error.(*googleapi.Error).Header. Use 1736// googleapi.IsNotModified to check whether the returned error was 1737// because http.StatusNotModified was returned. 1738func (c *ConversionUpdateAvailabilityCall) Do(opts ...googleapi.CallOption) (*UpdateAvailabilityResponse, error) { 1739 gensupport.SetOptions(c.urlParams_, opts...) 1740 res, err := c.doRequest("json") 1741 if res != nil && res.StatusCode == http.StatusNotModified { 1742 if res.Body != nil { 1743 res.Body.Close() 1744 } 1745 return nil, &googleapi.Error{ 1746 Code: res.StatusCode, 1747 Header: res.Header, 1748 } 1749 } 1750 if err != nil { 1751 return nil, err 1752 } 1753 defer googleapi.CloseBody(res) 1754 if err := googleapi.CheckResponse(res); err != nil { 1755 return nil, err 1756 } 1757 ret := &UpdateAvailabilityResponse{ 1758 ServerResponse: googleapi.ServerResponse{ 1759 Header: res.Header, 1760 HTTPStatusCode: res.StatusCode, 1761 }, 1762 } 1763 target := &ret 1764 if err := gensupport.DecodeResponse(target, res); err != nil { 1765 return nil, err 1766 } 1767 return ret, nil 1768 // { 1769 // "description": "Updates the availabilities of a batch of floodlight activities in\nDoubleClick Search.", 1770 // "flatPath": "doubleclicksearch/v2/conversion/updateAvailability", 1771 // "httpMethod": "POST", 1772 // "id": "doubleclicksearch.conversion.updateAvailability", 1773 // "parameterOrder": [], 1774 // "parameters": {}, 1775 // "path": "doubleclicksearch/v2/conversion/updateAvailability", 1776 // "request": { 1777 // "$ref": "UpdateAvailabilityRequest" 1778 // }, 1779 // "response": { 1780 // "$ref": "UpdateAvailabilityResponse" 1781 // }, 1782 // "scopes": [ 1783 // "https://www.googleapis.com/auth/doubleclicksearch" 1784 // ] 1785 // } 1786 1787} 1788 1789// method id "doubleclicksearch.reports.generate": 1790 1791type ReportsGenerateCall struct { 1792 s *Service 1793 reportrequest *ReportRequest 1794 urlParams_ gensupport.URLParams 1795 ctx_ context.Context 1796 header_ http.Header 1797} 1798 1799// Generate: Generates and returns a report immediately. 1800func (r *ReportsService) Generate(reportrequest *ReportRequest) *ReportsGenerateCall { 1801 c := &ReportsGenerateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1802 c.reportrequest = reportrequest 1803 return c 1804} 1805 1806// Fields allows partial responses to be retrieved. See 1807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1808// for more information. 1809func (c *ReportsGenerateCall) Fields(s ...googleapi.Field) *ReportsGenerateCall { 1810 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1811 return c 1812} 1813 1814// Context sets the context to be used in this call's Do method. Any 1815// pending HTTP request will be aborted if the provided context is 1816// canceled. 1817func (c *ReportsGenerateCall) Context(ctx context.Context) *ReportsGenerateCall { 1818 c.ctx_ = ctx 1819 return c 1820} 1821 1822// Header returns an http.Header that can be modified by the caller to 1823// add HTTP headers to the request. 1824func (c *ReportsGenerateCall) Header() http.Header { 1825 if c.header_ == nil { 1826 c.header_ = make(http.Header) 1827 } 1828 return c.header_ 1829} 1830 1831func (c *ReportsGenerateCall) doRequest(alt string) (*http.Response, error) { 1832 reqHeaders := make(http.Header) 1833 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 1834 for k, v := range c.header_ { 1835 reqHeaders[k] = v 1836 } 1837 reqHeaders.Set("User-Agent", c.s.userAgent()) 1838 var body io.Reader = nil 1839 body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportrequest) 1840 if err != nil { 1841 return nil, err 1842 } 1843 reqHeaders.Set("Content-Type", "application/json") 1844 c.urlParams_.Set("alt", alt) 1845 c.urlParams_.Set("prettyPrint", "false") 1846 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports/generate") 1847 urls += "?" + c.urlParams_.Encode() 1848 req, err := http.NewRequest("POST", urls, body) 1849 if err != nil { 1850 return nil, err 1851 } 1852 req.Header = reqHeaders 1853 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1854} 1855 1856// Do executes the "doubleclicksearch.reports.generate" call. 1857// Exactly one of *Report or error will be non-nil. Any non-2xx status 1858// code is an error. Response headers are in either 1859// *Report.ServerResponse.Header or (if a response was returned at all) 1860// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 1861// check whether the returned error was because http.StatusNotModified 1862// was returned. 1863func (c *ReportsGenerateCall) Do(opts ...googleapi.CallOption) (*Report, error) { 1864 gensupport.SetOptions(c.urlParams_, opts...) 1865 res, err := c.doRequest("json") 1866 if res != nil && res.StatusCode == http.StatusNotModified { 1867 if res.Body != nil { 1868 res.Body.Close() 1869 } 1870 return nil, &googleapi.Error{ 1871 Code: res.StatusCode, 1872 Header: res.Header, 1873 } 1874 } 1875 if err != nil { 1876 return nil, err 1877 } 1878 defer googleapi.CloseBody(res) 1879 if err := googleapi.CheckResponse(res); err != nil { 1880 return nil, err 1881 } 1882 ret := &Report{ 1883 ServerResponse: googleapi.ServerResponse{ 1884 Header: res.Header, 1885 HTTPStatusCode: res.StatusCode, 1886 }, 1887 } 1888 target := &ret 1889 if err := gensupport.DecodeResponse(target, res); err != nil { 1890 return nil, err 1891 } 1892 return ret, nil 1893 // { 1894 // "description": "Generates and returns a report immediately.", 1895 // "flatPath": "doubleclicksearch/v2/reports/generate", 1896 // "httpMethod": "POST", 1897 // "id": "doubleclicksearch.reports.generate", 1898 // "parameterOrder": [], 1899 // "parameters": {}, 1900 // "path": "doubleclicksearch/v2/reports/generate", 1901 // "request": { 1902 // "$ref": "ReportRequest" 1903 // }, 1904 // "response": { 1905 // "$ref": "Report" 1906 // }, 1907 // "scopes": [ 1908 // "https://www.googleapis.com/auth/doubleclicksearch" 1909 // ] 1910 // } 1911 1912} 1913 1914// method id "doubleclicksearch.reports.get": 1915 1916type ReportsGetCall struct { 1917 s *Service 1918 reportId string 1919 urlParams_ gensupport.URLParams 1920 ifNoneMatch_ string 1921 ctx_ context.Context 1922 header_ http.Header 1923} 1924 1925// Get: Polls for the status of a report request. 1926func (r *ReportsService) Get(reportId string) *ReportsGetCall { 1927 c := &ReportsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1928 c.reportId = reportId 1929 return c 1930} 1931 1932// Fields allows partial responses to be retrieved. See 1933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1934// for more information. 1935func (c *ReportsGetCall) Fields(s ...googleapi.Field) *ReportsGetCall { 1936 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1937 return c 1938} 1939 1940// IfNoneMatch sets the optional parameter which makes the operation 1941// fail if the object's ETag matches the given value. This is useful for 1942// getting updates only after the object has changed since the last 1943// request. Use googleapi.IsNotModified to check whether the response 1944// error from Do is the result of In-None-Match. 1945func (c *ReportsGetCall) IfNoneMatch(entityTag string) *ReportsGetCall { 1946 c.ifNoneMatch_ = entityTag 1947 return c 1948} 1949 1950// Context sets the context to be used in this call's Do method. Any 1951// pending HTTP request will be aborted if the provided context is 1952// canceled. 1953func (c *ReportsGetCall) Context(ctx context.Context) *ReportsGetCall { 1954 c.ctx_ = ctx 1955 return c 1956} 1957 1958// Header returns an http.Header that can be modified by the caller to 1959// add HTTP headers to the request. 1960func (c *ReportsGetCall) Header() http.Header { 1961 if c.header_ == nil { 1962 c.header_ = make(http.Header) 1963 } 1964 return c.header_ 1965} 1966 1967func (c *ReportsGetCall) doRequest(alt string) (*http.Response, error) { 1968 reqHeaders := make(http.Header) 1969 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 1970 for k, v := range c.header_ { 1971 reqHeaders[k] = v 1972 } 1973 reqHeaders.Set("User-Agent", c.s.userAgent()) 1974 if c.ifNoneMatch_ != "" { 1975 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 1976 } 1977 var body io.Reader = nil 1978 c.urlParams_.Set("alt", alt) 1979 c.urlParams_.Set("prettyPrint", "false") 1980 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports/{reportId}") 1981 urls += "?" + c.urlParams_.Encode() 1982 req, err := http.NewRequest("GET", urls, body) 1983 if err != nil { 1984 return nil, err 1985 } 1986 req.Header = reqHeaders 1987 googleapi.Expand(req.URL, map[string]string{ 1988 "reportId": c.reportId, 1989 }) 1990 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1991} 1992 1993// Do executes the "doubleclicksearch.reports.get" call. 1994// Exactly one of *Report or error will be non-nil. Any non-2xx status 1995// code is an error. Response headers are in either 1996// *Report.ServerResponse.Header or (if a response was returned at all) 1997// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 1998// check whether the returned error was because http.StatusNotModified 1999// was returned. 2000func (c *ReportsGetCall) Do(opts ...googleapi.CallOption) (*Report, error) { 2001 gensupport.SetOptions(c.urlParams_, opts...) 2002 res, err := c.doRequest("json") 2003 if res != nil && res.StatusCode == http.StatusNotModified { 2004 if res.Body != nil { 2005 res.Body.Close() 2006 } 2007 return nil, &googleapi.Error{ 2008 Code: res.StatusCode, 2009 Header: res.Header, 2010 } 2011 } 2012 if err != nil { 2013 return nil, err 2014 } 2015 defer googleapi.CloseBody(res) 2016 if err := googleapi.CheckResponse(res); err != nil { 2017 return nil, err 2018 } 2019 ret := &Report{ 2020 ServerResponse: googleapi.ServerResponse{ 2021 Header: res.Header, 2022 HTTPStatusCode: res.StatusCode, 2023 }, 2024 } 2025 target := &ret 2026 if err := gensupport.DecodeResponse(target, res); err != nil { 2027 return nil, err 2028 } 2029 return ret, nil 2030 // { 2031 // "description": "Polls for the status of a report request.", 2032 // "flatPath": "doubleclicksearch/v2/reports/{reportId}", 2033 // "httpMethod": "GET", 2034 // "id": "doubleclicksearch.reports.get", 2035 // "parameterOrder": [ 2036 // "reportId" 2037 // ], 2038 // "parameters": { 2039 // "reportId": { 2040 // "description": "ID of the report request being polled.", 2041 // "location": "path", 2042 // "required": true, 2043 // "type": "string" 2044 // } 2045 // }, 2046 // "path": "doubleclicksearch/v2/reports/{reportId}", 2047 // "response": { 2048 // "$ref": "Report" 2049 // }, 2050 // "scopes": [ 2051 // "https://www.googleapis.com/auth/doubleclicksearch" 2052 // ] 2053 // } 2054 2055} 2056 2057// method id "doubleclicksearch.reports.getFile": 2058 2059type ReportsGetFileCall struct { 2060 s *Service 2061 reportId string 2062 reportFragment int64 2063 urlParams_ gensupport.URLParams 2064 ifNoneMatch_ string 2065 ctx_ context.Context 2066 header_ http.Header 2067} 2068 2069// GetFile: Downloads a report file encoded in UTF-8. 2070func (r *ReportsService) GetFile(reportId string, reportFragment int64) *ReportsGetFileCall { 2071 c := &ReportsGetFileCall{s: r.s, urlParams_: make(gensupport.URLParams)} 2072 c.reportId = reportId 2073 c.reportFragment = reportFragment 2074 return c 2075} 2076 2077// Fields allows partial responses to be retrieved. See 2078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 2079// for more information. 2080func (c *ReportsGetFileCall) Fields(s ...googleapi.Field) *ReportsGetFileCall { 2081 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 2082 return c 2083} 2084 2085// IfNoneMatch sets the optional parameter which makes the operation 2086// fail if the object's ETag matches the given value. This is useful for 2087// getting updates only after the object has changed since the last 2088// request. Use googleapi.IsNotModified to check whether the response 2089// error from Do is the result of In-None-Match. 2090func (c *ReportsGetFileCall) IfNoneMatch(entityTag string) *ReportsGetFileCall { 2091 c.ifNoneMatch_ = entityTag 2092 return c 2093} 2094 2095// Context sets the context to be used in this call's Do and Download 2096// methods. Any pending HTTP request will be aborted if the provided 2097// context is canceled. 2098func (c *ReportsGetFileCall) Context(ctx context.Context) *ReportsGetFileCall { 2099 c.ctx_ = ctx 2100 return c 2101} 2102 2103// Header returns an http.Header that can be modified by the caller to 2104// add HTTP headers to the request. 2105func (c *ReportsGetFileCall) Header() http.Header { 2106 if c.header_ == nil { 2107 c.header_ = make(http.Header) 2108 } 2109 return c.header_ 2110} 2111 2112func (c *ReportsGetFileCall) doRequest(alt string) (*http.Response, error) { 2113 reqHeaders := make(http.Header) 2114 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 2115 for k, v := range c.header_ { 2116 reqHeaders[k] = v 2117 } 2118 reqHeaders.Set("User-Agent", c.s.userAgent()) 2119 if c.ifNoneMatch_ != "" { 2120 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 2121 } 2122 var body io.Reader = nil 2123 c.urlParams_.Set("alt", alt) 2124 c.urlParams_.Set("prettyPrint", "false") 2125 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}") 2126 urls += "?" + c.urlParams_.Encode() 2127 req, err := http.NewRequest("GET", urls, body) 2128 if err != nil { 2129 return nil, err 2130 } 2131 req.Header = reqHeaders 2132 googleapi.Expand(req.URL, map[string]string{ 2133 "reportId": c.reportId, 2134 "reportFragment": strconv.FormatInt(c.reportFragment, 10), 2135 }) 2136 return gensupport.SendRequest(c.ctx_, c.s.client, req) 2137} 2138 2139// Download fetches the API endpoint's "media" value, instead of the normal 2140// API response value. If the returned error is nil, the Response is guaranteed to 2141// have a 2xx status code. Callers must close the Response.Body as usual. 2142func (c *ReportsGetFileCall) Download(opts ...googleapi.CallOption) (*http.Response, error) { 2143 gensupport.SetOptions(c.urlParams_, opts...) 2144 res, err := c.doRequest("media") 2145 if err != nil { 2146 return nil, err 2147 } 2148 if err := googleapi.CheckMediaResponse(res); err != nil { 2149 res.Body.Close() 2150 return nil, err 2151 } 2152 return res, nil 2153} 2154 2155// Do executes the "doubleclicksearch.reports.getFile" call. 2156func (c *ReportsGetFileCall) Do(opts ...googleapi.CallOption) error { 2157 gensupport.SetOptions(c.urlParams_, opts...) 2158 res, err := c.doRequest("json") 2159 if err != nil { 2160 return err 2161 } 2162 defer googleapi.CloseBody(res) 2163 if err := googleapi.CheckResponse(res); err != nil { 2164 return err 2165 } 2166 return nil 2167 // { 2168 // "description": "Downloads a report file encoded in UTF-8.", 2169 // "flatPath": "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}", 2170 // "httpMethod": "GET", 2171 // "id": "doubleclicksearch.reports.getFile", 2172 // "parameterOrder": [ 2173 // "reportId", 2174 // "reportFragment" 2175 // ], 2176 // "parameters": { 2177 // "reportFragment": { 2178 // "description": "The index of the report fragment to download.", 2179 // "format": "int32", 2180 // "location": "path", 2181 // "minimum": "0", 2182 // "required": true, 2183 // "type": "integer" 2184 // }, 2185 // "reportId": { 2186 // "description": "ID of the report.", 2187 // "location": "path", 2188 // "required": true, 2189 // "type": "string" 2190 // } 2191 // }, 2192 // "path": "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}", 2193 // "scopes": [ 2194 // "https://www.googleapis.com/auth/doubleclicksearch" 2195 // ], 2196 // "supportsMediaDownload": true, 2197 // "useMediaDownloadService": true 2198 // } 2199 2200} 2201 2202// method id "doubleclicksearch.reports.request": 2203 2204type ReportsRequestCall struct { 2205 s *Service 2206 reportrequest *ReportRequest 2207 urlParams_ gensupport.URLParams 2208 ctx_ context.Context 2209 header_ http.Header 2210} 2211 2212// Request: Inserts a report request into the reporting system. 2213func (r *ReportsService) Request(reportrequest *ReportRequest) *ReportsRequestCall { 2214 c := &ReportsRequestCall{s: r.s, urlParams_: make(gensupport.URLParams)} 2215 c.reportrequest = reportrequest 2216 return c 2217} 2218 2219// Fields allows partial responses to be retrieved. See 2220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 2221// for more information. 2222func (c *ReportsRequestCall) Fields(s ...googleapi.Field) *ReportsRequestCall { 2223 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 2224 return c 2225} 2226 2227// Context sets the context to be used in this call's Do method. Any 2228// pending HTTP request will be aborted if the provided context is 2229// canceled. 2230func (c *ReportsRequestCall) Context(ctx context.Context) *ReportsRequestCall { 2231 c.ctx_ = ctx 2232 return c 2233} 2234 2235// Header returns an http.Header that can be modified by the caller to 2236// add HTTP headers to the request. 2237func (c *ReportsRequestCall) Header() http.Header { 2238 if c.header_ == nil { 2239 c.header_ = make(http.Header) 2240 } 2241 return c.header_ 2242} 2243 2244func (c *ReportsRequestCall) doRequest(alt string) (*http.Response, error) { 2245 reqHeaders := make(http.Header) 2246 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 2247 for k, v := range c.header_ { 2248 reqHeaders[k] = v 2249 } 2250 reqHeaders.Set("User-Agent", c.s.userAgent()) 2251 var body io.Reader = nil 2252 body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportrequest) 2253 if err != nil { 2254 return nil, err 2255 } 2256 reqHeaders.Set("Content-Type", "application/json") 2257 c.urlParams_.Set("alt", alt) 2258 c.urlParams_.Set("prettyPrint", "false") 2259 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports") 2260 urls += "?" + c.urlParams_.Encode() 2261 req, err := http.NewRequest("POST", urls, body) 2262 if err != nil { 2263 return nil, err 2264 } 2265 req.Header = reqHeaders 2266 return gensupport.SendRequest(c.ctx_, c.s.client, req) 2267} 2268 2269// Do executes the "doubleclicksearch.reports.request" call. 2270// Exactly one of *Report or error will be non-nil. Any non-2xx status 2271// code is an error. Response headers are in either 2272// *Report.ServerResponse.Header or (if a response was returned at all) 2273// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 2274// check whether the returned error was because http.StatusNotModified 2275// was returned. 2276func (c *ReportsRequestCall) Do(opts ...googleapi.CallOption) (*Report, error) { 2277 gensupport.SetOptions(c.urlParams_, opts...) 2278 res, err := c.doRequest("json") 2279 if res != nil && res.StatusCode == http.StatusNotModified { 2280 if res.Body != nil { 2281 res.Body.Close() 2282 } 2283 return nil, &googleapi.Error{ 2284 Code: res.StatusCode, 2285 Header: res.Header, 2286 } 2287 } 2288 if err != nil { 2289 return nil, err 2290 } 2291 defer googleapi.CloseBody(res) 2292 if err := googleapi.CheckResponse(res); err != nil { 2293 return nil, err 2294 } 2295 ret := &Report{ 2296 ServerResponse: googleapi.ServerResponse{ 2297 Header: res.Header, 2298 HTTPStatusCode: res.StatusCode, 2299 }, 2300 } 2301 target := &ret 2302 if err := gensupport.DecodeResponse(target, res); err != nil { 2303 return nil, err 2304 } 2305 return ret, nil 2306 // { 2307 // "description": "Inserts a report request into the reporting system.", 2308 // "flatPath": "doubleclicksearch/v2/reports", 2309 // "httpMethod": "POST", 2310 // "id": "doubleclicksearch.reports.request", 2311 // "parameterOrder": [], 2312 // "parameters": {}, 2313 // "path": "doubleclicksearch/v2/reports", 2314 // "request": { 2315 // "$ref": "ReportRequest" 2316 // }, 2317 // "response": { 2318 // "$ref": "Report" 2319 // }, 2320 // "scopes": [ 2321 // "https://www.googleapis.com/auth/doubleclicksearch" 2322 // ] 2323 // } 2324 2325} 2326 2327// method id "doubleclicksearch.savedColumns.list": 2328 2329type SavedColumnsListCall struct { 2330 s *Service 2331 agencyId int64 2332 advertiserId int64 2333 urlParams_ gensupport.URLParams 2334 ifNoneMatch_ string 2335 ctx_ context.Context 2336 header_ http.Header 2337} 2338 2339// List: Retrieve the list of saved columns for a specified advertiser. 2340func (r *SavedColumnsService) List(agencyId int64, advertiserId int64) *SavedColumnsListCall { 2341 c := &SavedColumnsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 2342 c.agencyId = agencyId 2343 c.advertiserId = advertiserId 2344 return c 2345} 2346 2347// Fields allows partial responses to be retrieved. See 2348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 2349// for more information. 2350func (c *SavedColumnsListCall) Fields(s ...googleapi.Field) *SavedColumnsListCall { 2351 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 2352 return c 2353} 2354 2355// IfNoneMatch sets the optional parameter which makes the operation 2356// fail if the object's ETag matches the given value. This is useful for 2357// getting updates only after the object has changed since the last 2358// request. Use googleapi.IsNotModified to check whether the response 2359// error from Do is the result of In-None-Match. 2360func (c *SavedColumnsListCall) IfNoneMatch(entityTag string) *SavedColumnsListCall { 2361 c.ifNoneMatch_ = entityTag 2362 return c 2363} 2364 2365// Context sets the context to be used in this call's Do method. Any 2366// pending HTTP request will be aborted if the provided context is 2367// canceled. 2368func (c *SavedColumnsListCall) Context(ctx context.Context) *SavedColumnsListCall { 2369 c.ctx_ = ctx 2370 return c 2371} 2372 2373// Header returns an http.Header that can be modified by the caller to 2374// add HTTP headers to the request. 2375func (c *SavedColumnsListCall) Header() http.Header { 2376 if c.header_ == nil { 2377 c.header_ = make(http.Header) 2378 } 2379 return c.header_ 2380} 2381 2382func (c *SavedColumnsListCall) doRequest(alt string) (*http.Response, error) { 2383 reqHeaders := make(http.Header) 2384 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 2385 for k, v := range c.header_ { 2386 reqHeaders[k] = v 2387 } 2388 reqHeaders.Set("User-Agent", c.s.userAgent()) 2389 if c.ifNoneMatch_ != "" { 2390 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 2391 } 2392 var body io.Reader = nil 2393 c.urlParams_.Set("alt", alt) 2394 c.urlParams_.Set("prettyPrint", "false") 2395 urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns") 2396 urls += "?" + c.urlParams_.Encode() 2397 req, err := http.NewRequest("GET", urls, body) 2398 if err != nil { 2399 return nil, err 2400 } 2401 req.Header = reqHeaders 2402 googleapi.Expand(req.URL, map[string]string{ 2403 "agencyId": strconv.FormatInt(c.agencyId, 10), 2404 "advertiserId": strconv.FormatInt(c.advertiserId, 10), 2405 }) 2406 return gensupport.SendRequest(c.ctx_, c.s.client, req) 2407} 2408 2409// Do executes the "doubleclicksearch.savedColumns.list" call. 2410// Exactly one of *SavedColumnList or error will be non-nil. Any non-2xx 2411// status code is an error. Response headers are in either 2412// *SavedColumnList.ServerResponse.Header or (if a response was returned 2413// at all) in error.(*googleapi.Error).Header. Use 2414// googleapi.IsNotModified to check whether the returned error was 2415// because http.StatusNotModified was returned. 2416func (c *SavedColumnsListCall) Do(opts ...googleapi.CallOption) (*SavedColumnList, error) { 2417 gensupport.SetOptions(c.urlParams_, opts...) 2418 res, err := c.doRequest("json") 2419 if res != nil && res.StatusCode == http.StatusNotModified { 2420 if res.Body != nil { 2421 res.Body.Close() 2422 } 2423 return nil, &googleapi.Error{ 2424 Code: res.StatusCode, 2425 Header: res.Header, 2426 } 2427 } 2428 if err != nil { 2429 return nil, err 2430 } 2431 defer googleapi.CloseBody(res) 2432 if err := googleapi.CheckResponse(res); err != nil { 2433 return nil, err 2434 } 2435 ret := &SavedColumnList{ 2436 ServerResponse: googleapi.ServerResponse{ 2437 Header: res.Header, 2438 HTTPStatusCode: res.StatusCode, 2439 }, 2440 } 2441 target := &ret 2442 if err := gensupport.DecodeResponse(target, res); err != nil { 2443 return nil, err 2444 } 2445 return ret, nil 2446 // { 2447 // "description": "Retrieve the list of saved columns for a specified advertiser.", 2448 // "flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns", 2449 // "httpMethod": "GET", 2450 // "id": "doubleclicksearch.savedColumns.list", 2451 // "parameterOrder": [ 2452 // "agencyId", 2453 // "advertiserId" 2454 // ], 2455 // "parameters": { 2456 // "advertiserId": { 2457 // "description": "DS ID of the advertiser.", 2458 // "format": "int64", 2459 // "location": "path", 2460 // "required": true, 2461 // "type": "string" 2462 // }, 2463 // "agencyId": { 2464 // "description": "DS ID of the agency.", 2465 // "format": "int64", 2466 // "location": "path", 2467 // "required": true, 2468 // "type": "string" 2469 // } 2470 // }, 2471 // "path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns", 2472 // "response": { 2473 // "$ref": "SavedColumnList" 2474 // }, 2475 // "scopes": [ 2476 // "https://www.googleapis.com/auth/doubleclicksearch" 2477 // ] 2478 // } 2479 2480} 2481