def main(client, order_id): # Initialize appropriate service. report_service = client.GetService('ReportService', version='v201408') # Create statement object to filter for an order. values = [{ 'key': 'id', 'value': { 'xsi_type': 'NumberValue', 'value': order_id } }] filter_statement = {'query': 'WHERE ORDER_ID = :id', 'values': values} # Create report job. report_job = { 'reportQuery': { 'dimensions': ['ORDER_ID', 'ORDER_NAME'], 'dimensionAttributes': ['ORDER_TRAFFICKER', 'ORDER_START_DATE_TIME', 'ORDER_END_DATE_TIME'], 'statement': filter_statement, 'columns': ['AD_SERVER_IMPRESSIONS', 'AD_SERVER_CLICKS', 'AD_SERVER_CTR', 'AD_SERVER_CPM_AND_CPC_REVENUE', 'AD_SERVER_WITHOUT_CPD_AVERAGE_ECPM'], 'dateRangeType': 'LAST_MONTH' } } # Run report. report_job = report_service.RunReportJob(report_job)[0] # Wait for report to complete. status = report_job['reportJobStatus'] while status != 'COMPLETED' and status != 'FAILED': print 'Report job with \'%s\' id is still running.' % report_job['id'] time.sleep(30) status = report_service.GetReportJob(report_job['id'])[0]['reportJobStatus'] if status == 'FAILED': print ('Report job with id \'%s\' failed to complete successfully.' % report_job['id']) else: # Change to your preferred export format. export_format = 'CSV_DUMP' report_file = tempfile.NamedTemporaryFile(suffix='.csv.gz', delete=False) # Download report data. DfpUtils.DownloadReportToFile( report_job['id'], export_format, report_service, report_file) report_file.close() # Display results. print 'Report job with id \'%s\' downloaded to:\n%s' % ( report_job['id'], report_file.name)
def main(client): # Initialize appropriate service. report_service = client.GetService('ReportService', version='v201403') # Create report job. report_job = { 'reportQuery': { 'dimensions': ['ORDER_ID', 'ORDER_NAME'], 'columns': [ 'MERGED_AD_SERVER_IMPRESSIONS', 'MERGED_AD_SERVER_CLICKS', 'MERGED_AD_SERVER_CTR', 'MERGED_AD_SERVER_CPM_AND_CPC_REVENUE', 'MERGED_AD_SERVER_WITHOUT_CPD_AVERAGE_ECPM' ], 'dateRangeType': 'LAST_MONTH' } } # Run report. report_job = report_service.RunReportJob(report_job)[0] # Wait for report to complete. status = report_job['reportJobStatus'] while status != 'COMPLETED' and status != 'FAILED': print 'Report job with \'%s\' id is still running.' % report_job['id'] time.sleep(30) status = report_service.GetReportJob( report_job['id'])[0]['reportJobStatus'] if status == 'FAILED': print('Report job with id \'%s\' failed to complete successfully.' % report_job['id']) else: # Change to your preferred export format. export_format = 'CSV_DUMP' report_file = tempfile.NamedTemporaryFile(suffix='.csv.gz', delete=False) # Download report data. DfpUtils.DownloadReportToFile(report_job['id'], export_format, report_service, report_file) report_file.close() # Display results. print 'Report job with id \'%s\' downloaded to:\n%s' % ( report_job['id'], report_file.name)
def main(client): # Initialize appropriate service. report_service = client.GetService('ReportService', version='v201411') # Create report job. report_job = { 'reportQuery': { 'dimensions': ['LINE_ITEM_ID', 'LINE_ITEM_NAME'], 'columns': ['REACH_FREQUENCY', 'REACH_AVERAGE_REVENUE', 'REACH'], 'dateRangeType': 'REACH_LIFETIME' } } # Run report. report_job = report_service.RunReportJob(report_job)[0] # Wait for report to complete. status = report_job['reportJobStatus'] while status != 'COMPLETED' and status != 'FAILED': print 'Report job with \'%s\' id is still running.' % report_job['id'] time.sleep(30) status = report_service.GetReportJob( report_job['id'])[0]['reportJobStatus'] if status == 'FAILED': print('Report job with id \'%s\' failed to complete successfully.' % report_job['id']) else: # Change to your preferred export format. export_format = 'CSV_DUMP' report_file = tempfile.NamedTemporaryFile(suffix='.csv.gz', delete=False) # Download report data. DfpUtils.DownloadReportToFile(report_job['id'], export_format, report_service, report_file) report_file.close() # Display results. print 'Report job with id \'%s\' downloaded to:\n%s' % ( report_job['id'], report_file.name)
def main(client, order_id): # Initialize appropriate services. line_item_service = client.GetService('LineItemService', version='v201311') report_service = client.GetService('ReportService', version='v201311') # Filter for line items of a given order. values = [{ 'key': 'orderId', 'value': { 'xsi_type': 'NumberValue', 'value': order_id } }] query = 'WHERE orderId = :orderId' # Create a filter statement. statement = DfpUtils.FilterStatement(query, values) # Collect all line item custom field IDs for an order. custom_field_ids = set() # Get users by statement. while True: response = line_item_service.GetLineItemsByStatement( statement.ToStatement())[0] line_items = response.get('results') if line_items: # Get custom field IDs from the line items of an order. for line_item in line_items: if 'customFieldValues' in line_item: for custom_field_value in line_item['customFieldValues']: custom_field_ids.add(custom_field_value['customFieldId']) statement.IncreaseOffsetBy(DfpUtils.PAGE_LIMIT) else: break # Create statement object to filter for an order. filter_statement = {'query': query, 'values': values} # Create report job. report_job = { 'reportQuery': { 'dimensions': ['LINE_ITEM_ID', 'LINE_ITEM_NAME'], 'statement': filter_statement, 'columns': ['AD_SERVER_IMPRESSIONS'], 'dateRangeType': 'LAST_MONTH', 'customFieldIds': list(custom_field_ids) } } # Run report. report_job = report_service.RunReportJob(report_job)[0] # Wait for report to complete. status = report_job['reportJobStatus'] while status != 'COMPLETED' and status != 'FAILED': print 'Report job with \'%s\' id is still running.' % report_job['id'] time.sleep(30) status = report_service.GetReportJob(report_job['id'])[0]['reportJobStatus'] if status == 'FAILED': print ('Report job with id \'%s\' failed to complete successfully.' % report_job['id']) else: # Change to your preferred export format. export_format = 'CSV_DUMP' report_file = tempfile.NamedTemporaryFile(suffix='.csv.gz', delete=False) # Download report data. DfpUtils.DownloadReportToFile( report_job['id'], export_format, report_service, report_file) report_file.close() # Display results. print 'Report job with id \'%s\' downloaded to:\n%s' % ( report_job['id'], report_file.name)
def main(client): # Initialize appropriate services. report_service = client.GetService('ReportService', version='v201405') network_service = client.GetService('NetworkService', version='v201405') # Get root ad unit id for network. root_ad_unit_id = ( network_service.GetCurrentNetwork()[0]['effectiveRootAdUnitId']) # Set filter statement and bind value for reportQuery. values = [{ 'key': 'parent_ad_unit_id', 'value': { 'xsi_type': 'NumberValue', 'value': root_ad_unit_id } }] filter_statement = { 'query': 'WHERE PARENT_AD_UNIT_ID = :parent_ad_unit_id', 'values': values } # Create report job. report_job = { 'reportQuery': { 'dimensions': ['DATE', 'AD_UNIT_NAME'], 'adUnitView': 'HIERARCHICAL', 'columns': [ 'AD_SERVER_IMPRESSIONS', 'AD_SERVER_CLICKS', 'DYNAMIC_ALLOCATION_INVENTORY_LEVEL_IMPRESSIONS', 'DYNAMIC_ALLOCATION_INVENTORY_LEVEL_CLICKS', 'TOTAL_INVENTORY_LEVEL_IMPRESSIONS', 'TOTAL_INVENTORY_LEVEL_CPM_AND_CPC_REVENUE' ], 'dateRangeType': 'LAST_WEEK', 'statement': filter_statement } } # Run report. report_job = report_service.RunReportJob(report_job)[0] # Wait for report to complete. status = report_job['reportJobStatus'] while status != 'COMPLETED' and status != 'FAILED': print 'Report job with \'%s\' id is still running.' % report_job['id'] time.sleep(30) status = report_service.GetReportJob( report_job['id'])[0]['reportJobStatus'] if status == 'FAILED': print('Report job with id \'%s\' failed to complete successfully.' % report_job['id']) else: # Change to your preferred export format. export_format = 'CSV_DUMP' report_file = tempfile.NamedTemporaryFile(suffix='.csv.gz', delete=False) # Download report data. DfpUtils.DownloadReportToFile(report_job['id'], export_format, report_service, report_file) report_file.close() # Display results. print 'Report job with id \'%s\' downloaded to:\n%s' % ( report_job['id'], report_file.name)