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)
Esempio n. 2
0
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)
Esempio n. 5
0
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)