Exemple #1
0
def main(client, order_id):
    # Initialize appropriate service.
    line_item_service = client.GetService('LineItemService', version='v201911')

    # Create query.
    statement = (ad_manager.StatementBuilder(version='v201911').Where(
        'orderId = :orderId AND status = :status').WithBindVariable(
            'status',
            'NEEDS_CREATIVES').WithBindVariable('orderId', int(order_id)))

    line_items_activated = 0

    # Get line items by statement.
    while True:
        response = line_item_service.getLineItemsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for line_item in response['results']:
                print(
                    'Line item with id "%s", belonging to order id "%s", and '
                    'name "%s" will be activated.' %
                    (line_item['id'], line_item['orderId'], line_item['name']))

            # Perform action.
            result = line_item_service.performLineItemAction(
                {'xsi_type': 'ActivateLineItems'}, statement.ToStatement())
            if result and int(result['numChanges']) > 0:
                line_items_activated += int(result['numChanges'])
            statement.offset += statement.limit
        else:
            break

    # Display results.
    if line_items_activated > 0:
        print('Number of line items activated: %s' % line_items_activated)
    else:
        print('No line items were activated.')
Exemple #2
0
def main(client, key_id):
    # Initialize appropriate service.
    custom_targeting_service = client.GetService('CustomTargetingService',
                                                 version='v202002')

    statement = (ad_manager.StatementBuilder(version='v202002').Where(
        'customTargetingKeyId = :keyId').WithBindVariable(
            'keyId', int(key_id)))

    while True:
        # Get custom targeting values by statement.
        response = custom_targeting_service.getCustomTargetingValuesByStatement(
            statement.ToStatement())

        # Update each local custom targeting value object by changing its name.
        if 'results' in response and len(response['results']):
            updated_values = []
            for value in response['results']:
                if not value['displayName']:
                    value['displayName'] = value['name']
                value['displayName'] += ' (Deprecated)'
                updated_values.append(value)
            values = custom_targeting_service.updateCustomTargetingValues(
                updated_values)

            # Display results.
            for value in values:
                print(
                    'Custom targeting value with id "%s", name "%s", and display'
                    ' name "%s" was updated.' %
                    (value['id'], value['name'], value['displayName']))
            statement.offset += statement.limit
        else:
            break

    if response['totalResultSetSize'] == 0:
        print('No custom targeting values were updated.')
Exemple #3
0
def main(client, proposal_id):
    # Initialize appropriate service.
    proposal_service = client.GetService('ProposalService', version='v201811')

    # Create query.
    statement = (ad_manager.StatementBuilder(
        version='v201811').Where('id = :proposalId').WithBindVariable(
            'proposalId', proposal_id))
    proposals_pushed_to_marketplace = 0

    # Get proposals by statement.
    while True:
        response = proposal_service.getProposalsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            # Display results.
            for proposal in response['results']:
                print(
                    'Programmatic proposal with id "%s", name "%s", and status '
                    '"%s" will be pushed to Marketplace.' %
                    (proposal['id'], proposal['name'], proposal['status']))
            # Perform action.
            result = proposal_service.performProposalAction(
                {'xsi_type': 'RequestBuyerAcceptance'},
                statement.ToStatement())
            if result and int(result['numChanges']) > 0:
                proposals_pushed_to_marketplace += int(result['numChanges'])
            statement.offset += statement.limit
        else:
            break

    # Display results.
    if proposals_pushed_to_marketplace > 0:
        print('\nNumber of programmatic proposals pushed to Marketplace: %s' %
              proposals_pushed_to_marketplace)
    else:
        print('\nNo programmatic proposals were pushed to Marketplace.')
Exemple #4
0
def main(client, order_id):
    # Initialize appropriate service.
    order_service = client.GetService('OrderService', version='v201808')

    # Create statement object to select a single order by an ID.

    statement = (ad_manager.StatementBuilder(
        version='v201808').Where('id = :orderId').WithBindVariable(
            'orderId', long(order_id)))

    # Get orders by statement.
    response = order_service.getOrdersByStatement(statement.ToStatement())

    if 'results' in response and len(response['results']):
        # Update each local order object by changing its notes.
        updated_orders = []
        for order in response['results']:
            # Archived orders cannot be updated.
            if not order['isArchived']:
                order['notes'] = 'Spoke to advertiser. All is well.'
                updated_orders.append(order)

        # Update orders remotely.
        orders = order_service.updateOrders(updated_orders)

        # Display results.
        if orders:
            for order in orders:
                print(
                    'Order with id "%s", name "%s", advertiser id "%s", and '
                    'notes "%s" was updated.' %
                    (order['id'], order['name'], order['advertiserId'],
                     order['notes']))
        else:
            print 'No orders were updated.'
    else:
        print 'No orders found to update.'
Exemple #5
0
def main(client):
    # Initialize appropriate service.
    suggested_ad_unit_service = client.GetService('SuggestedAdUnitService',
                                                  version='v202102')

    # Create a filter statement.
    statement = (ad_manager.StatementBuilder(version='v202102').Where(
        'numRequests > :numRequests').WithBindVariable(
            'numRequests', THRESHOLD_NUMBER_OF_REQUESTS))
    num_approved_suggested_ad_units = 0

    # Get suggested ad units by statement.
    while True:
        response = suggested_ad_unit_service.getSuggestedAdUnitsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            # Print suggested ad units that will be approved.
            for suggested_ad_unit in response['results']:
                print(
                    'Suggested ad unit with id "%s", and number of requests "%s"'
                    ' will be approved.' % (suggested_ad_unit['id'],
                                            suggested_ad_unit['numRequests']))

            # Approve suggested ad units.
            result = suggested_ad_unit_service.performSuggestedAdUnitAction(
                {'xsi_type': 'ApproveSuggestedAdUnits'},
                statement.ToStatement())
            if result and int(result['numChanges']) > 0:
                num_approved_suggested_ad_units += int(result['numChanges'])
        else:
            break

    if num_approved_suggested_ad_units > 0:
        print('Number of suggested ad units approved: %s' %
              num_approved_suggested_ad_units)
    else:
        print('No suggested ad units were approved.')
def main(client):
    # Initialize appropriate service.
    custom_field_service = client.GetService('CustomFieldService',
                                             version='v201802')

    # Create statement to select only active custom fields that apply to
    # line items.
    statement = (ad_manager.StatementBuilder().Where(
        'entityType = :entityType and isActive = :isActive').WithBindVariable(
            'entityType', 'LINE_ITEM').WithBindVariable('isActive', True))

    custom_fields_deactivated = 0

    # Get custom fields by statement.
    while True:
        response = custom_field_service.getCustomFieldsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            # Display results.
            for custom_field in response['results']:
                print(
                    'Custom field with ID "%s" and name "%s" will'
                    ' be deactivated.' %
                    (custom_field['id'], custom_field['name']))
                result = custom_field_service.performCustomFieldAction(
                    {'xsi_type': 'DeactivateCustomFields'},
                    statement.ToStatement())
                if result and int(result['numChanges']) > 0:
                    custom_fields_deactivated += int(result['numChanges'])
            statement.offset += statement.limit
        else:
            break

    if custom_fields_deactivated > 0:
        print 'Number of custom fields deactivated: %s' % custom_fields_deactivated
    else:
        print 'No custom fields were deactivated.'
Exemple #7
0
def main(client, proposal_id):
    # Initialize appropriate service.
    proposal_service = client.GetService('ProposalService', version='v201805')

    # Create statement object to select a single proposal by an ID.

    statement = (ad_manager.StatementBuilder().Where(
        'id = :proposalId').WithBindVariable('proposalId',
                                             long(proposal_id)).Limit(1))

    # Get proposals by statement.
    response = proposal_service.getProposalsByStatement(
        statement.ToStatement())

    if 'results' in response and len(response['results']):
        # Update each local proposal object by changing its notes.
        updated_proposals = []
        for proposal in response['results']:
            proposal[
                'internalNotes'] = 'Proposal needs review before approval.'
            updated_proposals.append(proposal)

        # Update proposals remotely.
        proposals = proposal_service.updateProposals(updated_proposals)

        # Display results.
        if proposals:
            for proposal in proposals:
                print(
                    'Proposal with id "%s", name "%s", and '
                    'notes "%s" was updated.' %
                    (proposal['id'], proposal['name'],
                     proposal['internalNotes']))
        else:
            print 'No proposals were updated.'
    else:
        print 'No proposals found to update.'
def main(client):
  # Initialize appropriate service.
  network_service = client.GetService('NetworkService', version='v201808')
  # Initialize a DataDownloader.
  report_downloader = client.GetDataDownloader(version='v201808')

  # Get root ad unit id for network.
  root_ad_unit_id = (
      network_service.getCurrentNetwork()['effectiveRootAdUnitId'])

  # Set filter statement and bind value for reportQuery.
  statement = (ad_manager.StatementBuilder()
               .Where('PARENT_AD_UNIT_ID = :parentAdUnitId')
               .WithBindVariable('parentAdUnitId', long(root_ad_unit_id))
               .Limit(None)  # No limit or offset for reports
               .Offset(None))

  # 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': statement.ToStatement()
      }
  }

  try:
    # Run the report and wait for it to finish.
    report_job_id = report_downloader.WaitForReport(report_job)
  except errors.AdManagerReportError, e:
    print 'Failed to generate report. Error was: %s' % e
Exemple #9
0
def main(client, user_id):
  # Initialize appropriate service.
  user_team_association_service = client.GetService(
      'UserTeamAssociationService', version='v202011')

  # Create filter text to select user team associations by the user ID.
  statement = (ad_manager.StatementBuilder(version='v202011')
               .Where('userId = :userId')
               .WithBindVariable('userId', int(user_id)))

  # Get user team associations by statement.
  response = user_team_association_service.getUserTeamAssociationsByStatement(
      statement.ToStatement())
  user_team_associations = response['results'] if 'results' in response else []

  for user_team_association in user_team_associations:
    print('User team association between user with ID "%s" and team with '
          'ID "%s" will be deleted.' % (user_team_association['userId'],
                                        user_team_association['teamId']))
  print('Number of teams that the user will be removed from: %s' %
        len(user_team_associations))

  # Action doesn't require limit/offset
  statement.limit = None
  statement.offset = None

  # Perform action.
  result = user_team_association_service.performUserTeamAssociationAction(
      {'xsi_type': 'DeleteUserTeamAssociations'},
      statement.ToStatement())

  # Display results.
  if result and int(result['numChanges']) > 0:
    print('Number of teams that the user was removed from: %s'
          % result['numChanges'])
  else:
    print('No user team associations were deleted.')
Exemple #10
0
def main(client):
    # Initialize appropriate service.
    creative_wrapper_service = client.GetService('CreativeWrapperService',
                                                 version='v201908')

    # Create a statement to select creative wrappers.
    statement = ad_manager.StatementBuilder(version='v201908')

    # Retrieve a small amount of creative wrappers at a time, paging
    # through until all creative wrappers have been retrieved.
    while True:
        response = creative_wrapper_service.getCreativeWrappersByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for creative_wrapper in response['results']:
                # Print out some information for each creative wrapper.
                print(
                    'Creative wrapper with ID "%d" and label id "%d" was found.\n'
                    % (creative_wrapper['id'], creative_wrapper['labelId']))
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])
def main(client):
    # Initialize appropriate service.
    content_service = client.GetService('ContentService', version='v202005')

    last_modified = (datetime.now(tz=pytz.timezone('America/New_York')) -
                     timedelta(days=1))

    # Create a statement to get recently modified content based on
    # lastModifiedDateTime. Changes to content bundle associations will update
    # the lastModifiedDateTime, but CMS metadata changes may not change the
    # lastModifiedDateTime.
    statement = (ad_manager.StatementBuilder(version='v202005').Where(
        'lastModifiedDateTime >= :lastModifiedDateTime').WithBindVariable(
            'lastModifiedDateTime', last_modified))

    # Retrieve a small amount of content at a time, paging
    # through until all content have been retrieved.
    while True:
        response = content_service.getContentByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for content in response['results']:
                # Print out some information for each content.
                content_description = (
                    'Content with ID "%d" and name "%s"' %
                    (content['id'], content['name'].encode('utf-8')))
                if content['contentBundleIds']:
                    content_description += (' belonging to bundle IDs %s' %
                                            content['contentBundleIds'])
                content_description += ' was found.'
                print(content_description)
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])
Exemple #12
0
def main(client):
    # Initialize appropriate service.
    company_service = client.GetService('CompanyService', version='v202102')
    # Create a statement to select companies.
    statement = (ad_manager.StatementBuilder(
        version='v202102').Where('type = :type').WithBindVariable(
            'type', 'ADVERTISER'))

    # Retrieve a small amount of companies at a time, paging
    # through until all companies have been retrieved.
    while True:
        response = company_service.getCompaniesByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for company in response['results']:
                # Print out some information for each company.
                print(
                    'Company with ID "%d", name "%s", and type "%s" was found.\n'
                    % (company['id'], company['name'], company['type']))
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])
def main(client, placement_id):
    # Initialize appropriate service.
    placement_service = client.GetService('PlacementService',
                                          version='v201911')

    # Create query.
    statement = (ad_manager.StatementBuilder(
        version='v201911').Where('id = :id').OrderBy(
            'id',
            ascending=True).Limit(1).WithBindVariable('id', placement_id))

    # Get placements by statement.
    page = placement_service.getPlacementsByStatement(statement.ToStatement())

    placement = page['results'][0]

    placement['description'] = 'This placement contains all leaderboards.'

    # Update placements remotely.
    updated_placements = placement_service.updatePlacements([placement])

    for placement in updated_placements:
        print('Placement with id "%s" and name "%s" was updated.' %
              (placement['id'], placement['name']))
def main(client):
    # Initialize appropriate service.
    product_package_service = client.GetService('ProductPackageService',
                                                version='v201808')
    # Create a statement to select product packages.
    statement = (ad_manager.StatementBuilder().Where(
        'status = :status').WithBindVariable('status', 'ACTIVE'))

    # Retrieve a small amount of product packages at a time, paging
    # through until all product packages have been retrieved.
    while True:
        response = product_package_service.getProductPackagesByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for product_package in response['results']:
                # Print out some information for each product package.
                print(
                    'Product package with ID "%d" and name "%s" was found.\n' %
                    (product_package['id'], product_package['name']))
            statement.offset += statement.limit
        else:
            break

    print '\nNumber of results found: %s' % response['totalResultSetSize']
Exemple #15
0
def main(client, user_id):
  # Initialize appropriate service.
  user_team_association_service = client.GetService(
      'UserTeamAssociationService', version='v201805')

  # Create filter text to select user team associations by the user ID.
  statement = (ad_manager.StatementBuilder()
               .Where('userId = :userId')
               .WithBindVariable('userId', long(user_id)))

  # Get user team associations by statement.
  response = user_team_association_service.getUserTeamAssociationsByStatement(
      statement.ToStatement())

  if 'results' in response and len(response['results']):
    updated_user_team_associations = []
    # Update each local user team association to read only access.
    for user_team_association in response['results']:
      user_team_association['overriddenTeamAccessType'] = 'READ_ONLY'
      updated_user_team_associations.append(user_team_association)

    # Update user team associations on the server.
    user_team_associations = (
        user_team_association_service.updateUserTeamAssociations(
            updated_user_team_associations))

    # Display results.
    if user_team_associations:
      for user_team_association in user_team_associations:
        print ('User team association between user with ID "%s" and team with'
               ' ID "%s" was updated.' % (user_team_association['userId'],
                                          user_team_association['teamId']))
    else:
      print 'No user team associations were updated.'
  else:
    print 'No user team associations found to update.'
def main(client):
    # Initialize appropriate service.
    activity_service = client.GetService('ActivityService', version='v201902')
    # Create a statement to select activities.
    statement = (ad_manager.StatementBuilder(
        version='v201902').Where('status = :status').WithBindVariable(
            'status', 'ACTIVE'))

    # Retrieve a small amount of activities at a time, paging
    # through until all activities have been retrieved.
    while True:
        response = activity_service.getActivitiesByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for activity in response['results']:
                # Print out some information for each activity.
                print(
                    'Activity with ID "%d", name "%s", and type "%s" was found.\n'
                    % (activity['id'], activity['name'], activity['type']))
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])
def main(client):
  # Initialize appropriate service.
  suggested_ad_unit_service = client.GetService(
      'SuggestedAdUnitService', version='v201802')

  # Create a statement to select suggested ad units.
  statement = ad_manager.StatementBuilder()

  # Retrieve a small amount of suggested ad units at a time, paging
  # through until all suggested ad units have been retrieved.
  while True:
    response = suggested_ad_unit_service.getSuggestedAdUnitsByStatement(
        statement.ToStatement())
    if 'results' in response and len(response['results']):
      for suggested_ad_unit in response['results']:
        # Print out some information for each suggested ad unit.
        print(
            'Suggested ad unit with ID "%s" and num requests "%d" was found.\n'
            % (suggested_ad_unit['id'], suggested_ad_unit['numRequests']))
      statement.offset += statement.limit
    else:
      break

  print '\nNumber of results found: %s' % response['totalResultSetSize']
def main(client):
    # Initialize appropriate service.
    custom_field_service = client.GetService('CustomFieldService',
                                             version='v202008')
    # Create a statement to select custom fields.
    statement = (ad_manager.StatementBuilder(
        version='v202008').Where('entityType = :entityType').WithBindVariable(
            'entityType', 'LINE_ITEM'))

    # Retrieve a small amount of custom fields at a time, paging
    # through until all custom fields have been retrieved.
    while True:
        response = custom_field_service.getCustomFieldsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for custom_field in response['results']:
                # Print out some information for each custom field.
                print('Custom field with ID "%d" and name "%s" was found.\n' %
                      (custom_field['id'], custom_field['name']))
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])
Exemple #19
0
def main(client):
    # Initialize appropriate service.
    lica_service = client.GetService('LineItemCreativeAssociationService',
                                     version='v201805')

    # Create statement object to get all LICAs.
    statement = ad_manager.StatementBuilder()

    while True:
        # Get LICAs by statement.
        response = lica_service.getLineItemCreativeAssociationsByStatement(
            statement.ToStatement())

        if 'results' in response and len(response['results']):
            # Update each local LICA object by changing its destination URL.
            updated_licas = []
            for lica in response['results']:
                lica['destinationUrl'] = 'http://news.google.com'
                updated_licas.append(lica)

            # Update LICAs remotely.
            licas = lica_service.updateLineItemCreativeAssociations(
                updated_licas)

            # Display results.
            for lica in licas:
                print(
                    'LICA with line item id "%s", creative id "%s", and status '
                    '"%s" was updated.' %
                    (lica['lineItemId'], lica['creativeId'], lica['status']))
            statement.offset += statement.limit
        else:
            break

    if response['totalResultSetSize'] == 0:
        print 'No LICAs found to update.'
def main(client, audience_segment_id):
  # Initialize appropriate service.
  audience_segment_service = client.GetService(
      'AudienceSegmentService', version='v201805')

  # Create statement object to get the specified first party audience segment.
  statement = (ad_manager.StatementBuilder()
               .Where('Type = :type AND Id = :audience_segment_id')
               .WithBindVariable('audience_segment_id',
                                 long(audience_segment_id))
               .WithBindVariable('type', 'FIRST_PARTY')
               .Limit(1))

  response = audience_segment_service.getAudienceSegmentsByStatement(
      statement.ToStatement())

  if 'results' in response and len(response['results']):
    segments = response['results']

    for segment in segments:
      print (
          'Audience segment with id "%s" and name "%s" will be populated.'
          % (segment['id'], segment['name']))

    action = {
        'xsi_type': 'PopulateAudienceSegments'
    }

    populated_audience_segments = (
        audience_segment_service.performAudienceSegmentAction(
            action, statement.ToStatement()))

    print ('%s audience segment populated' %
           populated_audience_segments['numChanges'])
  else:
    print 'No Results Found'
def main(client, master_creative_id):
    # Initialize appropriate service.
    creative_set_service = client.GetService('CreativeSetService',
                                             version='v201805')
    # Create a statement to select creative sets.
    statement = (ad_manager.StatementBuilder().Where(
        'masterCreativeId = :masterCreativeId').WithBindVariable(
            'masterCreativeId', master_creative_id))

    # Retrieve a small amount of creative sets at a time, paging
    # through until all creative sets have been retrieved.
    while True:
        response = creative_set_service.getCreativeSetsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for creative_set in response['results']:
                # Print out some information for each creative set.
                print('Creative set with ID "%d" and name "%s" was found.\n' %
                      (creative_set['id'], creative_set['name']))
            statement.offset += statement.limit
        else:
            break

    print '\nNumber of results found: %s' % response['totalResultSetSize']
def main(client):
    # Initialize appropriate service.
    order_service = client.GetService('OrderService', version='v201802')

    # Create a filter statement.
    today = datetime.date.today()
    statement = (ad_manager.StatementBuilder().Where(
        ('status in (\'DRAFT\', \'PENDING_APPROVAL\') '
         'AND endDateTime >= :today AND isArchived = FALSE')).WithBindVariable(
             'today', today))
    orders_approved = 0

    # Get orders by statement.
    while True:
        response = order_service.getOrdersByStatement(statement.ToStatement())
        if 'results' in response and len(response['results']):
            # Display results.
            for order in response['results']:
                print(
                    'Order with id "%s", name "%s", and status "%s" will be '
                    'approved.' %
                    (order['id'], order['name'], order['status']))
            # Perform action.
            result = order_service.performOrderAction(
                {'xsi_type': 'ApproveOrders'}, statement.ToStatement())
            if result and int(result['numChanges']) > 0:
                orders_approved += int(result['numChanges'])
            statement.offset += statement.limit
        else:
            break

    # Display results.
    if orders_approved > 0:
        print 'Number of orders approved: %s' % orders_approved
    else:
        print 'No orders were approved.'
def main(client):
    # Initialize appropriate service.
    rate_card_service = client.GetService('RateCardService', version='v201905')

    # Create a statement to select rate cards.
    statement = ad_manager.StatementBuilder(version='v201905')

    # Retrieve a small amount of rate cards at a time, paging
    # through until all rate cards have been retrieved.
    while True:
        response = rate_card_service.getRateCardsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for rate_card in response['results']:
                # Print out some information for each rate card.
                print(
                    'Rate card with ID "%d", name "%s", and currency code "%s" was '
                    'found.\n' % (rate_card['id'], rate_card['name'],
                                  rate_card['currencyCode']))
            statement.offset += statement.limit
        else:
            break

    print '\nNumber of results found: %s' % response['totalResultSetSize']
Exemple #24
0
def main(client):
  # Initialize the adjustment service.
  adjustment_service = client.GetService('AdjustmentService', version='v202011')

  # Create a statement to get all forecast adjustments.
  statement = ad_manager.StatementBuilder(version='v202011')

  # Retrieve a small number of forecast adjustments at a time, paging
  # through until all forecast adjustments have been retrieved.
  while True:
    response = adjustment_service.getForecastAdjustmentsByStatement(
        statement.ToStatement())
    if 'results' in response and len(response['results']):
      for adjustment in response['results']:
        # Print out some information for each forecast adjustment.
        print('Forecast adjustment with id %d and name "%s" belonging to '
              'forecast segment %d was found.' %
              (adjustment['id'], adjustment['name'],
               adjustment['trafficForecastSegmentId']))
      statement.offset += statement.limit
    else:
      break

  print('\nNumber of results found: %s' % response['totalResultSetSize'])
def main(client):
    # Initialize appropriate service.
    activity_group_service = client.GetService('ActivityGroupService',
                                               version='v201811')

    # Create a statement to select activity groups.
    statement = ad_manager.StatementBuilder(version='v201811')

    # Retrieve a small amount of activity groups at a time, paging
    # through until all activity groups have been retrieved.
    while True:
        response = activity_group_service.getActivityGroupsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for activity_group in response['results']:
                # Print out some information for each activity group.
                print(
                    'Activity group with ID "%d" and name "%s" was found.\n' %
                    (activity_group['id'], activity_group['name']))
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])
def main(client, proposal_id):
  # Initialize appropriate service.
  proposal_line_item_service = client.GetService(
      'ProposalLineItemService', version='v201805')
  # Create a statement to select proposal line items.
  statement = (ad_manager.StatementBuilder()
               .Where('proposalId = :proposalId')
               .WithBindVariable('proposalId', proposal_id))

  # Retrieve a small amount of proposal line items at a time, paging
  # through until all proposal line items have been retrieved.
  while True:
    response = proposal_line_item_service.getProposalLineItemsByStatement(
        statement.ToStatement())
    if 'results' in response and len(response['results']):
      for proposal_line_item in response['results']:
        # Print out some information for each proposal line item.
        print('Proposal line item with ID "%d" and name "%s" was found.\n' %
              (proposal_line_item['id'], proposal_line_item['name']))
      statement.offset += statement.limit
    else:
      break

  print '\nNumber of results found: %s' % response['totalResultSetSize']
def main(client):
    # Initialize appropriate service.
    cdn_config_service = client.GetService('CdnConfigurationService',
                                           version='v202011')

    # Create a statement to select cdn configurations.
    statement = ad_manager.StatementBuilder(version='v202011')

    # Retrieve a small number of configs at a time, paging
    # through until all have been retrieved.
    while True:
        response = (cdn_config_service.getCdnConfigurationsByStatement(
            statement.ToStatement()))
        if 'results' in response and len(response['results']):
            for cdn in response['results']:
                # Print out some information for each company.
                print(
                    'Found CDN configuration with type "%s" and name  "%s".' %
                    (cdn['cdnConfigurationType'], cdn['name']))
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])
def main(client, exchange_rate_id):
  # Initialize appropriate service.
  exchange_rate_service = client.GetService('ExchangeRateService',
                                            version='v201811')

  # Create a statement to get an exchange rate by its ID.
  statement = (ad_manager.StatementBuilder(version='v201811')
               .Where('id = :id')
               .WithBindVariable('id', long(exchange_rate_id))
               .Limit(1))

  # Get rate cards by statement.
  response = exchange_rate_service.getExchangeRatesByStatement(
      statement.ToStatement())

  if 'results' in response and len(response['results']):
    exchange_rate = response['results'][0]

    # Update the exchange rate value to 1.5.
    exchange_rate['exchangeRate'] = long(15000000000)

    exchange_rates = exchange_rate_service.updateExchangeRates([exchange_rate])

    if exchange_rates:
      for exchange_rate in exchange_rates:
        print ('Exchange rate with id \'%s,\' currency code \'%s,\' '
               'direction \'%s,\' and exchange rate \'%.2f\' '
               'was updated.' % (exchange_rate['id'],
                                 exchange_rate['currencyCode'],
                                 exchange_rate['direction'],
                                 (float(exchange_rate['exchangeRate']) /
                                  10000000000)))
    else:
      print 'No exchange rates were updated.'
  else:
    print 'No exchange rates found to update.'
def main(client):
    # Initialize appropriate service.
    live_stream_event_service = client.GetService('LiveStreamEventService',
                                                  version='v201811')

    # Create a statement to select live stream events.
    statement = ad_manager.StatementBuilder(version='v201811')

    # Retrieve a small amount of live stream events at a time, paging
    # through until all live stream events have been retrieved.
    while True:
        response = live_stream_event_service.getLiveStreamEventsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for live_stream_event in response['results']:
                # Print out some information for each live stream event.
                print(
                    'live stream event with id "%d" and name "%s" was found.' %
                    (live_stream_event['id'], live_stream_event['name']))
            statement.offset += statement.limit
        else:
            break

    print '\nNumber of results found: %s' % response['totalResultSetSize']
def main(client):
    # Initialize appropriate service.
    targeting_preset_service = client.GetService('TargetingPresetService',
                                                 version='v202102')

    # Create a statement to select suggested ad units.
    statement = ad_manager.StatementBuilder(version='v202102')

    # Retrieve a small number of targeting presets at a time, paging
    # through until all targeting presets have been retrieved.
    while True:
        response = targeting_preset_service.getTargetingPresetsByStatement(
            statement.ToStatement())
        if 'results' in response and len(response['results']):
            for targeting_preset in response['results']:
                # Print out some information for each targeting preset.
                print(
                    'Targeting preset with ID "%s" and name "%d" was found.\n'
                    % (targeting_preset['id'], targeting_preset['name']))
            statement.offset += statement.limit
        else:
            break

    print('\nNumber of results found: %s' % response['totalResultSetSize'])