示例#1
0
def get_campaign_with_email(client, email):
    # Initialize appropriate service.
    INFOS = []
    campaign_service = client.GetService('CampaignService', version='v201809')

    # Construct query and get all campaigns.
    query = (adwords.ServiceQueryBuilder().Select(
        'Id', 'Name',
        'Status').Where('Name').EqualTo(email).OrderBy('Name').Limit(
            0, PAGE_SIZE).Build())

    for page in query.Pager(campaign_service):
        # Display results.
        if 'entries' in page:
            for campaign in page['entries']:
                INFOS.append({
                    "id": campaign['id'],
                    "name": campaign['name'],
                    "status": campaign['status']
                })
                print('Campaign with id "%s", name "%s", and status "%s" was '
                      'found.' %
                      (campaign['id'], campaign['name'], campaign['status']))
        else:
            INFOS.append({"id": "", "name": "", "status": ""})
            print('No campaigns were found.')
    return INFOS
示例#2
0
def getCampaign(client, telephone):

  campaign_service = client.GetService('CampaignService', version='v201806')
  result = None
  response = ""
  query = (adwords.ServiceQueryBuilder()
            .Select('Id', 'Name', 'Status')
            .Where('Name').EqualTo(telephone) #ENABLED
            .OrderBy('Name')
            .Limit(0, PAGE_SIZE)
            .Build())

  Page = query.Pager(campaign_service)
  for page in Page:

      # Display results.
      if 'entries' in page:
        for campaign in page['entries']:
          response = campaign['id']
          if str(response).isdigit():
            result = response
          else:
            result = result
          #print ('Campaign with id "%s", name "%s", and status "%s" was '
           #     'found.' % (campaign['id'], campaign['name'],
             #               campaign['status']))
      else:
        result = result
  return result
示例#3
0
def main(client, ad_group_id):
    # Initialize appropriate service.
    INFOS = []
    campaign_service = client.GetService('AdGroupAdService', version='v201809')

    # Construct query and get all campaigns.
    query = (adwords.ServiceQueryBuilder().Select(
        'Id', 'CombinedApprovalStatus').Where('Id').EqualTo(ad_group_id).Limit(
            0, PAGE_SIZE).Build())

    for page in query.Pager(campaign_service):
        # Display results.
        if 'entries' in page:
            for campaign in page['entries']:
                name = campaign['name'].split(' ')
                INFOS.append({
                    "id": campaign['id'],
                    "name": name[0],
                    "status": campaign['status'],
                    "startDate": campaign['startDate'],
                    "endDate": campaign['endDate'],
                    "servingStatus": campaign['servingStatus'],
                })
                print(
                    'Campaign with id "%s", name "%s", and status "%s", and serving status "%s" was '
                    'found.' % (campaign['id'], campaign['name'],
                                campaign['status'], campaign['servingStatus']))
        else:
            INFOS.append({"id": "", "name": "", "status": ""})
            print('No campaigns were found.')
    return INFOS
示例#4
0
def main(client, ad_group_id):
    # Initialize appropriate service.
    ad_group_ad_service = client.GetService('AdGroupAdService',
                                            version='v201710')

    # Construct query and get all ads for a given campaign.
    query = (adwords.ServiceQueryBuilder().Select(
        'Id', 'PolicySummary').Where('AdGroupId').EqualTo(ad_group_id).Where(
            'CombinedApprovalStatus').EqualTo('DISAPPROVED').OrderBy(
                'Id').Limit(0, PAGE_SIZE).Build())
    disapproved_count = 0

    # Display results.
    while True:
        page = ad_group_ad_service.query(query)

        if 'entries' in page:
            for ad in page['entries']:
                disapproved_count += 1
                policy_summary = ad['policySummary']

                print(
                    'Ad with id "%s" was disapproved with the following policy '
                    'topic entries:' % ad['ad']['id'])
                # Display the policy topic entries related to the ad disapproval.
                for policy_topic_entry in policy_summary['policyTopicEntries']:
                    print '  topic ID: %s, topic name: %s' % (
                        policy_topic_entry['policyTopicId'],
                        policy_topic_entry['policyTopicName'])
                    # Display the attributes and values that triggered the policy topic.
                    if ('policyTopicEvidences' in policy_topic_entry
                            and policy_topic_entry['policyTopicEvidences']):
                        for evidence in policy_topic_entry[
                                'policyTopicEvidences']:
                            print('    evidence type: %s' %
                                  evidence['policyTopicEvidenceType'])
                            evidence_text_list = evidence['evidenceTextList']
                            if evidence_text_list:
                                for index, evidence_text in enumerate(
                                        evidence_text_list):
                                    print '      evidence text[%d]: %s' % (
                                        index, evidence_text)

        if not query.HasNext(page):
            break
        query.NextPage()

    print '%d disapproved ads were found.' % disapproved_count
def main(client):
    # Initialize appropriate service.
    campaign_service = client.GetService('CampaignService', version='v201809')

    # Construct query and get all campaigns.
    query = (adwords.ServiceQueryBuilder().Select(
        'Id', 'Name',
        'Status').Where('Status').EqualTo('ENABLED').OrderBy('Name').Limit(
            0, PAGE_SIZE).Build())

    for page in query.Pager(campaign_service):
        # Display results.
        if 'entries' in page:
            for campaign in page['entries']:
                print(('Campaign with id "%s", name "%s", and status "%s" was '
                       'found.' %
                       (campaign['id'], campaign['name'], campaign['status'])))
        else:
            print('No campaigns were found.')
示例#6
0
def main(client, ad_group_id, criterion_id):
  # Initialize appropriate service.
  data_service = client.GetService('DataService', version='v201809')

  # Create a query to select all keyword bid simulations for the specified
  # ad group and criterion ID.
  query = (adwords.ServiceQueryBuilder()
           .Select(
               'AdGroupId', 'CriterionId', 'StartDate', 'EndDate', 'Bid',
               'BiddableConversions', 'BiddableConversionsValue', 'LocalClicks',
               'LocalCost', 'LocalImpressions')
           .Where('AdGroupId').EqualTo(ad_group_id)
           .Where('CriterionId').EqualTo(criterion_id)
           .Limit(0, PAGE_SIZE)
           .Build())

  while True:
    page = data_service.queryCriterionBidLandscape(query)

    if page and 'entries' in page:
      entries = page['entries']
      print(('Bid landscape(s) retrieved: %d.' % len(entries)))

      for bid_landscape in entries:
        print(('Retrieved keyword bid landscape with ad group ID "%d", '
              'keyword ID "%d", start date "%s", end date "%s", '
              'with landscape points:' % (
                  bid_landscape['adGroupId'], bid_landscape['criterionId'],
                  bid_landscape['startDate'], bid_landscape['endDate'])))
        for bid_landscape_point in bid_landscape['landscapePoints']:
          print(('  bid: %s => clicks: %s, cost: %s, impressions: %s, '
                'biddable conversions: %.2f, '
                'biddable conversions value: %.2f'
                % (bid_landscape_point['bid']['microAmount'],
                    bid_landscape_point['clicks'],
                    bid_landscape_point['cost']['microAmount'],
                    bid_landscape_point['impressions'],
                    bid_landscape_point['biddableConversions'],
                    bid_landscape_point['biddableConversionsValue'])))

    if not query.HasNext(page):
      break
    query.NextPage()
示例#7
0
    def prepare_service_query(client: AdWordsClient, data_source: GoogleAdwordsDataSource):
        """
        Prepare a query on the data_source defined service
        with the data_source given clauses
        """
        service = client.GetService(data_source.service)
        service_query_builder = adwords.ServiceQueryBuilder()
        # Build select
        service_query_builder.Select(data_source.columns)
        # Build Where
        apply_filter(service_query_builder, data_source.parameters)
        # Build Orderby
        service_query_builder.OrderBy(
            data_source.orderby['column'], data_source.orderby['direction']
        )
        # Build Limit
        if not data_source.limit:
            data_source.limit = 100
        service_query_builder.Limit(0, int(data_source.limit))

        return service, service_query_builder.Build()
def main(client):
    # Initialize appropriate service.
    user_list_service = client.GetService('AdwordsUserListService',
                                          version='v201806')
    conversion_tracker_service = client.GetService('ConversionTrackerService',
                                                   version='v201806')

    # Construct operations and add a user list.
    operations = [{
        'operator': 'ADD',
        'operand': {
            'xsi_type':
            'BasicUserList',
            'name':
            'Mars cruise customers #%s' % uuid.uuid4(),
            'description':
            'A list of mars cruise customers in the last year',
            'membershipLifeSpan':
            '365',
            'conversionTypes': [{
                'name': ('Mars cruise customers #%s' % uuid.uuid4())
            }],
            # Optional field.
            'status':
            'OPEN',
        }
    }]
    user_list_result = user_list_service.mutate(operations)

    # Capture the ID(s) of the conversion.
    if 'value' in user_list_result:
        conversion_ids = []
        for user_list in user_list_result['value']:
            if user_list['conversionTypes']:
                for conversion_type in user_list['conversionTypes']:
                    conversion_ids.append(conversion_type['id'])

        # Create query.
        query = (adwords.ServiceQueryBuilder().Select(
            'Id', 'GoogleGlobalSiteTag',
            'GoogleEventSnippet').Where('Id').In(*conversion_ids).Limit(
                0, PAGE_SIZE).Build())

        conversions_map = {}

        # Get all conversion trackers.
        for page in query.Pager(conversion_tracker_service):
            if 'entries' in page:
                for conversion_tracker in page['entries']:
                    conversions_map[
                        conversion_tracker['id']] = conversion_tracker

        for user_list in user_list_result['value']:
            print('User list with name "%s" and ID "%s" was added.' %
                  (user_list['name'], user_list['id']))
            if user_list['conversionTypes']:
                for conversion_type in user_list['conversionTypes']:
                    conversion_tracker = conversions_map[conversion_type['id']]
                    print('Google global site tag:\n%s\n\n' %
                          conversion_tracker['googleGlobalSiteTag'])
                    print('Google event snippet:\n%s\n\n' %
                          conversion_tracker['googleEventSnippet'])
    else:
        print 'No user lists were added.'