Create and Update Reports

The Reports service for the Campaign Manager 360 API allows you to create and update Report Builder reports using report resource objects. A report resource outlines basic information about a report to be run, as well as the structure of the report output.

This guide details how to programmatically create and update Report Builder reports via the Reports service.

Configure a report resource

The first step in creating or updating a Report Builder report is to configure a report resource object. If you're creating a new report, you'll start with an empty resource and set the necessary fields. If you're updating an existing report, you have a choice of:

  1. Preferred: Performing a partial update . Using this approach, you'll start with an empty resource and set the fields you'd like to change. A partial update only saves changes to fields you specify.
  2. Performing a full update. Using this approach, you'll load an existing report resource and directly modify its fields. A full update always saves all of the report's fields.

The exact contents of a report resource vary depending on the type of report you're configuring. Even so, there are a few fields that are common to all report types:

Field
Description
Required fields
name
The name of the report.
type
The type of the report.
Optional fields
delivery
The report's email delivery settings.
fileName
The filename used when generating report files for this report.
format
The output format of the report, either CSV or Excel.
schedule
A schedule used to run your report on a recurring basis.

These common fields make up the skeleton of your report. The example below illustrates the creation of a new standard report resource:

C#

  Report 
  
 report 
  
 = 
  
 new 
  
 Report 
 (); 
 // Set the required fields "name" and "type". 
 report 
 . 
 Name 
  
 = 
  
 "Example standard report" 
 ; 
 report 
 . 
 Type 
  
 = 
  
 "STANDARD" 
 ; 
 // Set optional fields. 
 report 
 . 
 FileName 
  
 = 
  
 "example_report" 
 ; 
 report 
 . 
 Format 
  
 = 
  
 "CSV" 
 ; 
 

Java

  Report 
  
 report 
  
 = 
  
 new 
  
 Report 
 (); 
 // Set the required fields "name" and "type". 
 report 
 . 
 setName 
 ( 
 "Example standard report" 
 ); 
 report 
 . 
 setType 
 ( 
 "STANDARD" 
 ); 
 // Set optional fields 
 report 
 . 
 setFileName 
 ( 
 "example_report" 
 ); 
 report 
 . 
 setFormat 
 ( 
 "CSV" 
 ); 
 

PHP

  $report = new Google_Service_Dfareporting_Report(); 
 // Set the required fields "name" and "type". 
 $report->setName('Example standard report'); 
 $report->setType('STANDARD'); 
 // Set optional fields. 
 $report->setFileName('example_report'); 
 $report->setFormat('CSV'); 
 

Python

  report 
 = 
 { 
 # Set the required fields "name" and "type". 
 'name' 
 : 
 'Example Standard Report' 
 , 
 'type' 
 : 
 'STANDARD' 
 , 
 # Set optional fields. 
 'fileName' 
 : 
 'example_report' 
 , 
 'format' 
 : 
 'CSV' 
 } 
 

Ruby

  report 
  
 = 
  
 DfareportingUtils 
 :: 
 API_NAMESPACE 
 :: 
 Report 
 . 
 new 
 ( 
  
 # Set the required fields "name" and "type". 
  
 name 
 : 
  
 'Example Standard Report' 
 , 
  
 type 
 : 
  
 'STANDARD' 
 , 
  
 # Set optional fields. 
  
 file_name 
 : 
  
 'example_report' 
 , 
  
 format 
 : 
  
 'CSV' 
 ) 
 

Define the report criteria

Once you've chosen a report type and configured common fields, the next step is to define the report criteria. The report criteria are used to limit the scope of your report, ensuring only relevant information is returned. It also defines the structure of the report output.

The criteria used depends on the type of report. The relationship between report type and criteria is explained in the following table:

Report type Criteria field
STANDARD criteria
REACH reachCriteria
PATH_TO_CONVERSION pathToConversionCriteria
FLOODLIGHT floodlightCriteria
CROSS_DIMENSION_REACH crossDimensionReachCriteria

While each of these type-specific criteria expose a slightly different set of fields, there is a set of common criteria fields that are generally useful for controlling report output:

Field Description
dateRange The dates for which this report should be run. Can be used to specify either a custom start and end date or a relative date range .
dimensionFilters A list of filters that restrict the results returned. See the query filter values section for more information on configuring filters.
dimensions A list of Campaign Manager 360 elements to include in the report output.
metricNames Standard units of measure to include in the report output.

See the section on determining field compatibility for more information on choosing dimensions, metrics, and filters for your report. Additional type-specific criteria fields are explained in the reference documentation and the help center .

The example below adds a basic criteria to our standard report resource:

C#

  // Define a date range to report on. This example uses explicit start and 
 // end dates to mimic the "LAST_30_DAYS" relative date range. 
 DateRange 
  
 dateRange 
  
 = 
  
 new 
  
 DateRange 
 (); 
 dateRange 
 . 
 EndDate 
  
 = 
  
 DateTime 
 . 
 Now 
 . 
 ToString 
 ( 
 "yyyy-MM-dd" 
 ); 
 dateRange 
 . 
 StartDate 
  
 = 
  
 DateTime 
 . 
 Now 
 . 
 AddDays 
 ( 
 - 
 30 
 ). 
 ToString 
 ( 
 "yyyy-MM-dd" 
 ); 
 // Create a report criteria. 
 SortedDimension 
  
 dimension 
  
 = 
  
 new 
  
 SortedDimension 
 (); 
 dimension 
 . 
 Name 
  
 = 
  
 "advertiser" 
 ; 
 Report 
 . 
 CriteriaData 
  
 criteria 
  
 = 
  
 new 
  
 Report 
 . 
 CriteriaData 
 (); 
 criteria 
 . 
 DateRange 
  
 = 
  
 dateRange 
 ; 
 criteria 
 . 
 Dimensions 
  
 = 
  
 new 
  
 List<SortedDimension> 
 () 
  
 { 
  
 dimension 
  
 }; 
 criteria 
 . 
 MetricNames 
  
 = 
  
 new 
  
 List<string> 
 () 
  
 { 
  
 "clicks" 
 , 
  
 "impressions" 
 }; 
 // Add the criteria to the report resource. 
 report 
 . 
 Criteria 
  
 = 
  
 criteria 
 ; 
 

Java

  // Define a date range to report on. This example uses explicit start and end dates to mimic 
 // the "LAST_MONTH" relative date range. 
 DateRange 
  
 dateRange 
  
 = 
  
 new 
  
 DateRange 
 (); 
 dateRange 
 . 
 setEndDate 
 ( 
 new 
  
 DateTime 
 ( 
 true 
 , 
  
 System 
 . 
 currentTimeMillis 
 (), 
  
 null 
 )); 
 Calendar 
  
 lastMonth 
  
 = 
  
 Calendar 
 . 
 getInstance 
 (); 
 lastMonth 
 . 
 add 
 ( 
 Calendar 
 . 
 MONTH 
 , 
  
 - 
 1 
 ); 
 dateRange 
 . 
 setStartDate 
 ( 
 new 
  
 DateTime 
 ( 
 true 
 , 
  
 lastMonth 
 . 
 getTimeInMillis 
 (), 
  
 null 
 )); 
 // Create a report criteria. 
 Report 
 . 
 Criteria 
  
 criteria 
  
 = 
  
 new 
  
 Report 
 . 
 Criteria 
 (); 
 criteria 
 . 
 setDateRange 
 ( 
 dateRange 
 ); 
 criteria 
 . 
 setDimensions 
 ( 
 Lists 
 . 
 newArrayList 
 ( 
 new 
  
 SortedDimension 
 (). 
 setName 
 ( 
 "advertiser" 
 ))); 
 criteria 
 . 
 setMetricNames 
 ( 
 Lists 
 . 
 newArrayList 
 ( 
 "clicks" 
 , 
  
 "impressions" 
 )); 
 // Add the criteria to the report resource. 
 report 
 . 
 setCriteria 
 ( 
 criteria 
 ); 
 

PHP

  // Define a date range to report on. This example uses explicit start and 
 // end dates to mimic the "LAST_30_DAYS" relative date range. 
 $dateRange = new Google_Service_Dfareporting_DateRange(); 
 $dateRange->setStartDate( 
 date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') - 30, date('Y'))) 
 ); 
 $dateRange->setEndDate(date('Y-m-d')); 
 // Create a report criteria. 
 $dimension = new Google_Service_Dfareporting_SortedDimension(); 
 $dimension->setName('advertiser'); 
 $criteria = new Google_Service_Dfareporting_ReportCriteria(); 
 $criteria->setDateRange($dateRange); 
 $criteria->setDimensions([$dimension]); 
 $criteria->setMetricNames(['clicks', 'impressions']); 
 // Add the criteria to the report resource. 
 $report->setCriteria($criteria); 
 

Python

  # Define a date range to report on. This example uses explicit start and end 
 # dates to mimic the "LAST_30_DAYS" relative date range. 
 end_date 
 = 
 date 
 . 
 today 
 () 
 start_date 
 = 
 end_date 
 - 
 timedelta 
 ( 
 days 
 = 
 30 
 ) 
 # Create a report criteria. 
 criteria 
 = 
 { 
 'dateRange' 
 : 
 { 
 'startDate' 
 : 
 start_date 
 . 
 strftime 
 ( 
 '%Y-%m- 
 %d 
 ' 
 ), 
 'endDate' 
 : 
 end_date 
 . 
 strftime 
 ( 
 '%Y-%m- 
 %d 
 ' 
 ) 
 }, 
 'dimensions' 
 : 
 [{ 
 'name' 
 : 
 'advertiser' 
 }], 
 'metricNames' 
 : 
 [ 
 'clicks' 
 , 
 'impressions' 
 ] 
 } 
 # Add the criteria to the report resource. 
 report 
 [ 
 'criteria' 
 ] 
 = 
 criteria 
 

Ruby

  # Define a date range to report on. This example uses explicit start and end 
 # dates to mimic the "LAST_30_DAYS" relative date range. 
 start_date 
  
 = 
  
 DateTime 
 . 
 now 
 . 
 prev_day 
 ( 
 30 
 ) 
 . 
 strftime 
 ( 
 '%Y-%m-%d' 
 ) 
 end_date 
  
 = 
  
 DateTime 
 . 
 now 
 . 
 strftime 
 ( 
 '%Y-%m-%d' 
 ) 
 # Create a report criteria 
 criteria 
  
 = 
  
 DfareportingUtils 
 :: 
 API_NAMESPACE 
 :: 
 Report 
 :: 
 Criteria 
 . 
 new 
 ( 
  
 date_range 
 : 
  
 DfareportingUtils 
 :: 
 API_NAMESPACE 
 :: 
 DateRange 
 . 
 new 
 ( 
  
 start_date 
 : 
  
 start_date 
 , 
  
 end_date 
 : 
  
 end_date 
  
 ), 
  
 dimensions 
 : 
  
 [ 
  
 DfareportingUtils 
 :: 
 API_NAMESPACE 
 :: 
 SortedDimension 
 . 
 new 
 ( 
  
 name 
 : 
  
 'advertiser' 
  
 ) 
  
 ] 
 , 
  
 metric_names 
 : 
  
 [ 
 'clicks' 
 , 
  
 'impressions' 
 ] 
 ) 
 # Add the criteria to the report resource. 
 report 
 . 
 criteria 
  
 = 
  
 criteria 
 

Query filter values

When configuring filters for a report, you need to specify the exact values that the filters will use to restrict the report output. If you aren't sure what the possible values for a particular filter are, look them up using the DimensionValues service.

A basic dimension values query contains a dimension name , as well as a start date and end date . The start and end dates limit the response to values valid within that time period. Additional filters can be specified if you need to limit the query results further.

The below example looks up valid advertiser filter values during the dates that our report will run and adds them to the report criteria:

C#

  // Query advertiser dimension values for report run dates. 
 DimensionValueRequest 
  
 request 
  
 = 
  
 new 
  
 DimensionValueRequest 
 (); 
 request 
 . 
 StartDate 
  
 = 
  
 report 
 . 
 Criteria 
 . 
 DateRange 
 . 
 StartDate 
 ; 
 request 
 . 
 EndDate 
  
 = 
  
 report 
 . 
 Criteria 
 . 
 DateRange 
 . 
 EndDate 
 ; 
 request 
 . 
 DimensionName 
  
 = 
  
 "advertiser" 
 ; 
 DimensionValueList 
  
 values 
  
 = 
  
 service 
 . 
 DimensionValues 
 . 
 Query 
 ( 
 request 
 , 
  
 profileId 
 ). 
 Execute 
 (); 
 if 
  
 ( 
 values 
 . 
 Items 
 . 
 Any 
 ()) 
  
 { 
  
 // Add a value as a filter to the report criteria. 
  
 report 
 . 
 Criteria 
 . 
 DimensionFilters 
  
 = 
  
 new 
  
 List<DimensionValue> 
 () 
  
 { 
  
 values 
 . 
 Items 
 [ 
 0 
 ] 
  
 }; 
 } 
 

Java

  // Query advertiser dimension values for report run dates. 
 DimensionValueRequest 
  
 request 
  
 = 
  
 new 
  
 DimensionValueRequest 
 (); 
 request 
 . 
 setStartDate 
 ( 
 report 
 . 
 getCriteria 
 (). 
 getDateRange 
 (). 
 getStartDate 
 ()); 
 request 
 . 
 setEndDate 
 ( 
 report 
 . 
 getCriteria 
 (). 
 getDateRange 
 (). 
 getEndDate 
 ()); 
 request 
 . 
 setDimensionName 
 ( 
 "advertiser" 
 ); 
 DimensionValueList 
  
 values 
  
 = 
  
 reporting 
 . 
 dimensionValues 
 (). 
 query 
 ( 
 profileId 
 , 
  
 request 
 ). 
 execute 
 (); 
 if 
  
 ( 
 ! 
 values 
 . 
 getItems 
 (). 
 isEmpty 
 ()) 
  
 { 
  
 // Add a value as a filter to the report criteria. 
  
 List<DimensionValue> 
  
 filters 
  
 = 
  
 Lists 
 . 
 newArrayList 
 ( 
 values 
 . 
 getItems 
 (). 
 get 
 ( 
 0 
 )); 
  
 report 
 . 
 getCriteria 
 (). 
 setDimensionFilters 
 ( 
 filters 
 ); 
 } 
 

PHP

  // Query advertiser dimension values for report run dates. 
 $request = new Google_Service_Dfareporting_DimensionValueRequest(); 
 $request->setStartDate( 
 $report->getCriteria()->getDateRange()->getStartDate() 
 ); 
 $request->setEndDate( 
 $report->getCriteria()->getDateRange()->getEndDate() 
 ); 
 $request->setDimensionName('advertiser'); 
 $values = 
 $this->service->dimensionValues->query($userProfileId, $request); 
 if (!empty($values->getItems())) { 
 // Add a value as a filter to the report criteria. 
 $report->getCriteria()->setDimensionFilters([$values->getItems()[0]]); 
 } 
 

Python

  # Query advertiser dimension values for report run dates. 
 request 
 = 
 { 
 'dimensionName' 
 : 
 'advertiser' 
 , 
 'endDate' 
 : 
 report 
 [ 
 'criteria' 
 ][ 
 'dateRange' 
 ][ 
 'endDate' 
 ], 
 'startDate' 
 : 
 report 
 [ 
 'criteria' 
 ][ 
 'dateRange' 
 ][ 
 'startDate' 
 ] 
 } 
 values 
 = 
 service 
 . 
 dimensionValues 
 () 
 . 
 query 
 ( 
 profileId 
 = 
 profile_id 
 , 
 body 
 = 
 request 
 ) 
 . 
 execute 
 () 
 if 
 values 
 [ 
 'items' 
 ]: 
 # Add a value as a filter to the report criteria. 
 report 
 [ 
 'criteria' 
 ][ 
 'dimensionFilters' 
 ] 
 = 
 [ 
 values 
 [ 
 'items' 
 ][ 
 0 
 ]] 
 

Ruby

  # Query advertiser dimension values for report run dates. 
 dimension 
  
 = 
  
 DfareportingUtils 
 :: 
 API_NAMESPACE 
 :: 
 DimensionValueRequest 
 . 
 new 
 ( 
  
 dimension_name 
 : 
  
 'advertiser' 
 , 
  
 start_date 
 : 
  
 report 
 . 
 criteria 
 . 
 date_range 
 . 
 start_date 
 , 
  
 end_date 
 : 
  
 report 
 . 
 criteria 
 . 
 date_range 
 . 
 end_date 
 ) 
 values 
  
 = 
  
 service 
 . 
 query_dimension_value 
 ( 
 profile_id 
 , 
  
 dimension 
 ) 
 unless 
  
 values 
 . 
 items 
 . 
 empty? 
  
 # Add a value as a filter to the report criteria. 
  
 report 
 . 
 criteria 
 . 
 dimension_filters 
  
 = 
  
 [ 
 values 
 . 
 items 
 . 
 first 
 ] 
 end 
 

Determine field compatibility

When configuring your report criteria, it's important to remember that not all combinations of metrics, dimensions, and filters are valid. You won't be allowed to save a report that contains an invalid combination, so it's important to ensure the fields you plan to use are compatible with one another.

As you build your report resource, you can pass it into the Reports.compatibleFields service to see which fields are valid given the ones you've already selected. The configuration of the report will be analyzed, and a response containing the compatible dimensions, metrics, and filters will be returned. Since the fields in this response are not all guaranteed to be compatible with one another, you may need to make multiple requests to ensure all the fields you choose will work together.

The example below illustrates how to make a sample compatible fields request, using our report resource as input:

C#

  CompatibleFields 
  
 fields 
  
 = 
  
 service 
 . 
 Reports 
 . 
 CompatibleFields 
 . 
 Query 
 ( 
 report 
 , 
  
 profileId 
 ). 
 Execute 
 (); 
 ReportCompatibleFields 
  
 reportFields 
  
 = 
  
 fields 
 . 
 ReportCompatibleFields 
 ; 
 if 
 ( 
 reportFields 
 . 
 Dimensions 
 . 
 Any 
 ()) 
  
 { 
  
 // Add a compatible dimension to the report. 
  
 Dimension 
  
 dimension 
  
 = 
  
 reportFields 
 . 
 Dimensions 
 [ 
 0 
 ]; 
  
 SortedDimension 
  
 sortedDimension 
  
 = 
  
 new 
  
 SortedDimension 
 (); 
  
 sortedDimension 
 . 
 Name 
  
 = 
  
 dimension 
 . 
 Name 
 ; 
  
 report 
 . 
 Criteria 
 . 
 Dimensions 
 . 
 Add 
 ( 
 sortedDimension 
 ); 
 } 
  
 else 
  
 if 
  
 ( 
 reportFields 
 . 
 Metrics 
 . 
 Any 
 ()) 
  
 { 
  
 // Add a compatible metric to the report. 
  
 Metric 
  
 metric 
  
 = 
  
 reportFields 
 . 
 Metrics 
 [ 
 0 
 ]; 
  
 report 
 . 
 Criteria 
 . 
 MetricNames 
 . 
 Add 
 ( 
 metric 
 . 
 Name 
 ); 
 } 
 

Java

  CompatibleFields 
  
 fields 
  
 = 
  
 reporting 
 . 
 reports 
 (). 
 compatibleFields 
 () 
  
 . 
 query 
 ( 
 profileId 
 , 
  
 report 
 ). 
 execute 
 (); 
 ReportCompatibleFields 
  
 reportFields 
  
 = 
  
 fields 
 . 
 getReportCompatibleFields 
 (); 
 if 
  
 ( 
 ! 
 reportFields 
 . 
 getDimensions 
 (). 
 isEmpty 
 ()) 
  
 { 
  
 // Add a compatible dimension to the report. 
  
 Dimension 
  
 dimension 
  
 = 
  
 reportFields 
 . 
 getDimensions 
 (). 
 get 
 ( 
 0 
 ); 
  
 SortedDimension 
  
 sortedDimension 
  
 = 
  
 new 
  
 SortedDimension 
 (). 
 setName 
 ( 
 dimension 
 . 
 getName 
 ()); 
  
 report 
 . 
 getCriteria 
 (). 
 getDimensions 
 (). 
 add 
 ( 
 sortedDimension 
 ); 
 } 
  
 else 
  
 if 
  
 ( 
 ! 
 reportFields 
 . 
 getMetrics 
 (). 
 isEmpty 
 ()) 
  
 { 
  
 // Add a compatible metric to the report. 
  
 Metric 
  
 metric 
  
 = 
  
 reportFields 
 . 
 getMetrics 
 (). 
 get 
 ( 
 0 
 ); 
  
 report 
 . 
 getCriteria 
 (). 
 getMetricNames 
 (). 
 add 
 ( 
 metric 
 . 
 getName 
 ()); 
 } 
 

PHP

  $fields = $this->service->reports_compatibleFields->query( 
 $userProfileId, 
 $report 
 ); 
 $reportFields = $fields->getReportCompatibleFields(); 
 if (!empty($reportFields->getDimensions())) { 
 // Add a compatible dimension to the report. 
 $dimension = $reportFields->getDimensions()[0]; 
 $sortedDimension = new Google_Service_Dfareporting_SortedDimension(); 
 $sortedDimension->setName($dimension->getName()); 
 $report->getCriteria()->setDimensions( 
 array_merge( 
 $report->getCriteria()->getDimensions(), 
 [$sortedDimension] 
 ) 
 ); 
 } elseif (!empty($reportFields->getMetrics())) { 
 // Add a compatible metric to the report. 
 $metric = $reportFields->getMetrics()[0]; 
 $report->getCriteria()->setMetricNames( 
 array_merge( 
 $report->getCriteria()->getMetricNames(), 
 [$metric->getName()] 
 ) 
 ); 
 } 
 

Python

  fields 
 = 
 service 
 . 
 reports 
 () 
 . 
 compatibleFields 
 () 
 . 
 query 
 ( 
 profileId 
 = 
 profile_id 
 , 
 body 
 = 
 report 
 ) 
 . 
 execute 
 () 
 report_fields 
 = 
 fields 
 [ 
 'reportCompatibleFields' 
 ] 
 if 
 report_fields 
 [ 
 'dimensions' 
 ]: 
 # Add a compatible dimension to the report. 
 report 
 [ 
 'criteria' 
 ][ 
 'dimensions' 
 ] 
 . 
 append 
 ({ 
 'name' 
 : 
 report_fields 
 [ 
 'dimensions' 
 ][ 
 0 
 ][ 
 'name' 
 ] 
 }) 
 elif 
 report_fields 
 [ 
 'metrics' 
 ]: 
 # Add a compatible metric to the report. 
 report 
 [ 
 'criteria' 
 ][ 
 'metricNames' 
 ] 
 . 
 append 
 ( 
 report_fields 
 [ 
 'metrics' 
 ][ 
 0 
 ][ 
 'name' 
 ]) 
 

Ruby

  fields 
  
 = 
  
 service 
 . 
 query_report_compatible_field 
 ( 
 profile_id 
 , 
  
 report 
 ) 
 report_fields 
  
 = 
  
 fields 
 . 
 report_compatible_fields 
 if 
  
 report_fields 
 . 
 dimensions 
 . 
 any? 
  
 # Add a compatible dimension to the report. 
  
 report 
 . 
 criteria 
 . 
 dimensions 
  
<<  
 DfareportingUtils 
 :: 
 API_NAMESPACE 
 :: 
 SortedDimension 
 . 
 new 
 ( 
  
 name 
 : 
  
 report_fields 
 . 
 dimensions 
 . 
 first 
 . 
 name 
  
 ) 
 elsif 
  
 report_fields 
 . 
 metrics 
 . 
 any? 
  
 # Add a compatible metric to the report. 
  
 report 
 . 
 criteria 
 . 
 metric_names 
 << 
 report_fields 
 . 
 metrics 
 . 
 first 
 . 
 name 
 end 
 

Save the report

The final step in this process is to save your report resource. If you're creating a new report, you can insert it with a call to Reports.insert :

C#

  Report 
  
 insertedReport 
  
 = 
  
 service 
 . 
 Reports 
 . 
 Insert 
 ( 
 report 
 , 
  
 profileId 
 ). 
 Execute 
 (); 
 

Java

  Report 
  
 insertedReport 
  
 = 
  
 reporting 
 . 
 reports 
 (). 
 insert 
 ( 
 profileId 
 , 
  
 report 
 ). 
 execute 
 (); 
 

PHP

  $insertedReport = 
 $this->service->reports->insert($userProfileId, $report); 
 

Python

  inserted_report 
 = 
 service 
 . 
 reports 
 () 
 . 
 insert 
 ( 
 profileId 
 = 
 profile_id 
 , 
 body 
 = 
 report 
 ) 
 . 
 execute 
 () 
 

Ruby

  report 
  
 = 
  
 service 
 . 
 insert_report 
 ( 
 profile_id 
 , 
  
 report 
 ) 
 

If you're performing a partial update, you can save your changes by calling Reports.patch :

C#

  // Patch an existing report. 
 Report 
  
 patchedReport 
  
 = 
  
 service 
 . 
 Reports 
 . 
 Patch 
 ( 
 report 
 , 
  
 profileId 
 , 
  
 reportId 
 ). 
 Execute 
 (); 
 

Java

  // Patch an existing report. 
 Report 
  
 patchedReport 
  
 = 
  
 reporting 
 . 
 reports 
 (). 
 patch 
 ( 
 profileId 
 , 
  
 reportId 
 , 
  
 report 
 ). 
 execute 
 (); 
 

PHP

  # Patch an existing report. 
 $patchedReport = 
 $this->service->reports->patch($userProfileId, $reportId, $report) 
 

Python

  # Patch an existing report. 
 patched_report 
 = 
 service 
 . 
 reports 
 () 
 . 
 patch 
 ( 
 profileId 
 = 
 profile_id 
 , 
 reportId 
 = 
 report_id 
 , 
 body 
 = 
 report 
 ) 
 . 
 execute 
 (); 
 

Ruby

  # Patch an existing report. 
 patched_report 
  
 = 
  
 service 
 . 
 patch_report 
 ( 
 profile_id 
 , 
  
 report_id 
 , 
  
 report 
 ) 
 

Or, if you've decided to perform a full update, you can save your changes by calling Reports.update :

C#

  // Update an existing report. 
 Report 
  
 updatedReport 
  
 = 
  
 service 
 . 
 Reports 
 . 
 Update 
 ( 
 report 
 , 
  
 profileId 
 , 
  
 report 
 . 
 Id 
 ). 
 Execute 
 (); 
 

Java

  // Update an existing report. 
 Report 
  
 updatedReport 
  
 = 
  
 reporting 
 . 
 reports 
 (). 
 update 
 ( 
 profileId 
 , 
  
 report 
 . 
 getId 
 (), 
  
 report 
 ). 
 execute 
 (); 
 

PHP

  # Update an existing report. 
 $updatedReport = 
 $this->service->reports->update($userProfileId, $report->getId(), $report) 
 

Python

  # Update an existing report. 
 updated_report 
 = 
 service 
 . 
 reports 
 () 
 . 
 update 
 ( 
 profileId 
 = 
 profile_id 
 , 
 reportId 
 = 
 report 
 [ 
 'id' 
 ], 
 body 
 = 
 report 
 ) 
 . 
 execute 
 (); 
 

Ruby

  # Update an existing report. 
 updated_report 
  
 = 
  
 service 
 . 
 update_report 
 ( 
 profile_id 
 , 
  
 report 
 . 
 id 
 , 
  
 report 
 ); 
 

After a successful save request, a copy of the report resource will be returned in the response body. This resource will have a few new fields filled out, the most important of which is the id field . This id is what you will use to refer to this report throughout the rest of your workflow .

Create a Mobile Website
View Site in Mobile | Classic
Share by: