My favorites | English | Sign in

AdWords API v2009

v2009 Docs | v13 Docs

Per-Call Migration Guide

A lot has changed between AdWords API v13 and v200909. To help you better understand what's changed, this per-call migration guide provides side-by-side Python client library code snippets for common tasks.

This guide currently covers the following services:

AdGroupService

Task v13 v200909
Add ad groups
# Add ad group.
ad_group = {
    'campaignId': campaign_id,
    'keywordMaxCpc': '1000000'
}
ad_group_service.AddAdGroup(campaign_id, ad_group)
# or
ad_group_service.AddAdGroupList(
    campaign_id, [ad_group])

AdGroupService.addAdGroup, AdGroupService.addAdGroupList

# Add ad group.
operations = [{
    'operator': 'ADD',
    'operand': {
        'campaignId': campaign_id,
        'status': 'ENABLED',
        'bids': {
            'keywordMaxCpc': {
                'amount': {
                    'microAmount': '1000000'
                }
            }
        }
    }
}]
ad_group_service.Mutate(operations)

AdGroupService.mutate

Get ad group info/stats
ad_group_service.GetAdGroup(ad_group_id)
# or
ad_group_service.GetAdGroupList([ad_group_id])
# or
ad_group_service.GetAdGroupStats(
    campaign_id, [ad_group_id], 
   '2009-01-01', '2009-01-31')
# or
ad_group_service.GetAllAdGroups(campaign_id)

AdGroupService.getAdGroup, AdGroupService.getAdGroupList, AdGroupService.getAdGroupStats, AdGroupService.getAllAdGroups

selector = {
    'campaignId': campaign_id,
    'adGroupIds': [ad_group_id],
    'statsSelector': {
        'dateRange': {
             'max': '20090131',
             'min': '20090101'
         }
    }
}
ad_group_service.Get(selector)

AdGroupService.get

Update ad groups
ad_group = {
    'campaignId': cpc_campaign_id,
    'id': ad_group_id,
    'keywordMaxCpc': '2500000',
}
ad_group_service.UpdateAdGroup(ad_group)
# or
ad_group_service.UpdateAdGroupList([ad_group])

AdGroupService.updateAdGroup, AdGroupService.updateAdGroupList

operations = [{
    'operator': 'SET',
    'operand': {
        'campaignId': campaign_id,
        'id': ad_group_id,
        'status': 'PAUSED',
        'bids': {
            'type': 'ManualCPCAdGroupBids',
            'keywordMaxCpc': {
                'amount': {
                    'microAmount': '2500000'
                }
            }
        }
    }
}]
ad_group_service.Mutate(operations)

AdGroupService.mutate

AdService

Task v13 v200909
Add ads
ads = [{
    'adGroupId': ad_group_id,
    'adType': 'TextAd',
    'destinationUrl': 'http://www.example.com',
    'displayUrl': 'example.com',
    'status': 'Enabled',
    'description1': 'Visit the Red Planet in style.',
    'description2': 'Low-gravity fun for everyone!',
    'headline': 'Luxury Cruise to Mars'
}]
ad_service.AddAds(ads)

AdService.addAds

operations = [{
    'operator': 'ADD',
    'operand': {
        'type': 'AdGroupAd',
        'adGroupId': ad_group_id,
        'ad': {
            'type': 'TextAd',
            'url': 'http://www.example.com',
            'displayUrl': 'example.com',
            'status': 'ENABLED',
            'description1': 'Visit the Red Planet in style.',
            'description2': 'Low-gravity fun for everyone!',
            'headline': 'Luxury Cruise to Mars'
        }
    }
}]
ad_group_ad_service.Mutate(operations)

AdGroupAdService.mutate

Get ad info/stats
ad_service.GetActiveAds([ad_group_id])
# or
ad_service.GetAd(ad_group_id, ad_id)
# or
ad_service.GetAdStats(
    [ad_group_id], '2009-01-01', '2009-01-31')
# or
ad_service.GetAllAds([ad_group_id])

AdService.getActiveAds, AdService.getAd, AdService.getAdStats, AdService.getAllAds

selector = {
    'adGroupIds': [ad_group_id],
    'adIds': [ad_id].
    'statsSelector': {
        'dateRange': {
             'max': '20090131',
             'min': '20090101'
         }
    }
}
ad_group_ad_service.Get(selector)

AdGroupAdService.get

Update ads
ads = [{
    'adGroupId': ad_group_id,
    'adType': 'TextAd',
    'id': ad_id,
    'status': 'Paused',
}]
ad_service.UpdateAds(ads)

AdService.updateAds

operations = [{
    'operator': 'SET',
    'operand': {
        'type': 'AdGroupAd',
        'adGroupId': ad_group_id,
        'ad': {
            'id': ad_id,
         },
        'status': 'PAUSED'
    }
}]
ad_group_ad_service.Mutate(operations)

AdGroupAdService.mutate

CampaignService

Task v13 v200909
Add campaigns
# Create new campaign.
campaign = {
    'budgetAmount': '1000000',
    'budgetPeriod': 'Daily',
    'geoTargeting': {
        'cityTargets': {
            'cities': ['New York, NY US']
        },
    },
    'status': 'Paused'
}
campaign_service.AddCampaign(campaign)
# or
campaign_service.AddCampaignList([campaign])

CampaignService.addCampaign, CampaignService.addCampaignList

# Create new campaign.
operations = [{
    'operator': 'ADD',
    'operand': {
        'status': 'PAUSED',
        'biddingStrategy': 'ManualCPC',
        'endDate': '20110101',
        'budget': {
            'period': 'DAILY',
            'amount': {
                'microAmount': '1000000'
            },
            'deliveryMethod': 'STANDARD'
        }
    }
}]
campaign_id = campaign_service.Mutate(
    operations)[0]['value'][0]['id']

# Update campaign to add geo target.
operations = [
    {
        'operator': 'SET',
        'operand': {
            'type': 'GeoTargetList',
            'campaignId': campaign_id,
            'targets': [{
                'type': 'CityTarget',
                'cityName': 'New York',
                'countryCode': 'US'
            }]
        }
    }
]
campaign_target_service.Mutate(operations)

CampaignService.mutate

Get campaign info/stats
campaign_serivce.GetActiveAdWordsCampaigns()
# or
campaign_service.GetAllAdWordsCampaigns()
# or
campaign_service.GetCampaign(campaign_id)
# or
campaign_service.GetCampaignList([campaign_id])
# or
campaign_service.GetCampaignStats(
    campaign_id, '2009-01-01', '2009-01-31')

CampaignService.getActiveAdWordsCampaigns, CampaignService.getAllAdWordsCampaigns, CampaignService.getCampaign, CampaignService.getCampaignList, CampaignService.getCampaignStats

selector = {
    'ids': [campaign_id],
    'statsSelector': {
        'dateRange': {
             'max': '20090131',
             'min': '20090101'
         }
    }
}
campaign_service.Get(selector)

CampaignService.get

Update campaigns
# Update campaign.
campaign = {
    'budgetAmount': '4000000',
    'id': campaign_id1,
}
campaign_serivce.UpdateCampaign(campaign)
# or
campaign_service.UpdateCampaignList([campaign])

CampaignService.updateCampaign, CampaignServic e.updateCampaignList

# Update campaign.
operations = [{
    'operator': 'SET',
    'operand': {
        'id': campaign_id1,
        'budget': {
            'period': 'DAILY',
            'amount': {
                'microAmount': '4000000'
            },
            'deliveryMethod': 'STANDARD'
        }
    }
}]
campaign_service.Mutate(operations)

CampaignService.mutate

CriterionService

Task v13 v200909
Add keywords
criteria = [{
    'adGroupId': ad_group_id,
    'criterionType': 'Keyword',
    'destinationUrl': 'http://www.example.com',
    'negative': 'False',
    'paused': 'False',
    'status': 'Active',
    'maxCpc': '1000000',
    'text': 'car insurance',
    'type': 'Broad'
}]
criterion_service.AddCriteria(criteria)

CriterionService.addCriteria

operations = [{
    'operator': 'ADD',
    'operand': {
        'type': 'BiddableAdGroupCriterion',
        'adGroupId': ad_group_id,
        'criterion': {
            'type': 'Keyword',
            'matchType': 'BROAD',
            'text': 'car insurance'
        },
        'destinationUrl': 'http://www.example.com',
        'bids': {
            'type': 'ManualCPCAdGroupCriterionBids',
            'maxCpc': {
                'amount': {
                    'microAmount': '1000000'
                 }
            }
        },
        'userStatus': 'ACTIVE'
    }
}]
ad_group_criterion_service.Mutate(operations)

AdGroupCriterionService.mutate

Get keywords info/stats
criterion_service.GetAllCriteria(ad_group_id)
# or
criterion_service.GetCampaignNegativeCriteria(
    ad_group_id)
# or
criterion_service.GetCriteria(
    ad_group_id, [criterion_id])
# or
criterion_service.GetCriterionStats(
    ad_group_id, [criterion_id], 
    '2009-01-01', '2009-01-31')

CriterionService.getAllCriteria, CriterionService.getCampaignNegativeCriteria, CriterionService.getCriteria, CriterionService.getCriterionStats

selector = {
    'idFilters': [{
        'adGroupId': ad_group_id,
        'criterionId': criterion_id
    }]
}
ad_group_criterion_service.Get(selector)

AdGroupCriterionService.get

Remove keywords
criterion_service.RemoveCriteria(
    ad_group_id, [criterion_id])

CriterionService.removeCriteria

operations = [{
    'operator': 'REMOVE',
    'operand': {
        'type': 'BiddableAdGroupCriterion',
        'adGroupId': ad_group_id,
        'criterion': {
          'id': criterion_id,
        }
    }
}]
ad_group_criterion_service.Mutate(operations)

AdGroupCriterionService.mutate

Update keyword
criteria = [{
    'adGroupId': ad_group_id,
    'criterionType': 'Keyword',
    'destinationUrl': 'http://www.example.com',
    'id': criterion_id,
    'paused': 'False',
    'maxCpc': '200000'
}]
criterion_service.UpdateCriteria(criteria)

CriterionService.updateCriteria

operations = [{
    'operator': 'SET',
    'operand': {
        'type': 'BiddableAdGroupCriterion',
        'adGroupId': ad_group_id,
        'criterion': {
          'id': criterion_id,
        },
        'userStatus': 'ACTIVE',
        'bids': {
            'type': 'ManualCPCAdGroupCriterionBids',
            'maxCpc': {
                'amount': {
                    'microAmount': '200000'
                 }
            }
        }
    }
}]
ad_group_criterion_service.Mutate(operations)

AdGroupCriterionService.mutate

InfoService

Task v13 v200909
Get free units for the month
info_service.GetFreeUsageQuotaThisMonth()

InfoService.getFreeUsageQuotaThisMonth

selector = {
    'apiUsageType': 'FREE_USAGE_API_UNITS_PER_MONTH'
}
info_service.Get(selector)

InfoService.get

Get method cost
info_service.GetMethodCost(
    'AdGroupService', 'mutate', '2009-08-01')

InfoService.getMethodCost

selector = {
    'serviceName': 'AdGroupService',
    'methodName': 'mutate',
    'operator': 'SET',
    'dateRange': {
        'min': '20090801',
        'max': '20090801'
    },
    'apiUsageType': 'METHOD_COST'
}
info_serivce.Get(selector)

InfoService.get

Get operation count
info_service.GetOperationCount(
    '2009-01-01', '2009-01-31')

InfoService.getOperationCount

selector = {
    'dateRange': {
        'min': '20090101',
        'max': '20090131'
    },
    'apiUsageType': 'OPERATION_COUNT'
}
info_serivce.Get(selector)

InfoService.get

Get unit count
info_service.GetUnitCount(
    '2009-09-01', '2009-09-30')

InfoService.getUnitCount

selector = {
    'dateRange': {
        'min': '20090901',
        'max': '20090930'
     },
    'apiUsageType': 'UNIT_COUNT'
}
info_serivce.Get(selector)

InfoService.get

Get unit count for clients
info_service.GetUnitCountForClients(
    ['joe@example.com'],
    '2009-09-01', '2009-09-30')

InfoService.getUnitCountForClients

selector = {
    'dateRange': {
        'min': '20090801',
        'max': '20090831'
    },
    'clientEmails': ['joe@example.com'],
    'apiUsageType': 'UNIT_COUNT_FOR_CLIENTS'
}
info_serivce.Get(selector)

InfoService.get

Get units usage this month
info_service.GetUsageQuotaThisMonth()

InfoService.getUsageQuotaThisMonth

selector = {
    'apiUsageType': 'TOTAL_USAGE_API_UNITS_PER_MONTH'
}
info_serivce.Get(selector)

InfoService.get

KeywordToolService

Task v13 v200909
Get keywords from site
keyword_tool_service.GetKeywordsFromSite(
    'finance.google.com', 'False',
    ['en'], ['US'])

KeywordToolService.getKeywordsFromSite

selector = {
    'searchParameters': [
        {
            'type': 'RelatedToUrlSearchParameter',
            'urls': ['http://finance.google.com'],
            'includeSubUrls': 'False'
        },
        {
            'type': 'LanguageTargetSearchParameter',
            'languageTargets': [
                {'languageCode': 'en'},
            ]
        },
        {
            'type': 'CountryTargetSearchParameter',
            'countryTargets': [
                {'countryCode': 'US'},
            ]
        }
    ],
    'ideaType': 'PLACEMENT',
    'requestType': 'IDEAS',
    'paging': {
        'startIndex': '0',
        'numberResults': '100'
    }
}
targeting_idea_service.Get(selector)

TargetingIdeaService.get

Get keyword variations
seed_keywords = [
    {
        'negative': 'False',
        'text': 'flowers',
        'type': 'Broad'
    },
    {
        'negative': 'False',
        'text': 'house',
        'type': 'Broad'
    }
]
keyword_tool_service.GetKeywordVariations(
    seed_keywords, 'True',
    ['en'], ['US'])

KeywordToolService.getKeywordVariations

selector = {
    'searchParameters': [
        {
            'type': 'RelatedToKeywordSearchParameter',
            'keywords': [
                {
                    'text': 'flowers',
                    'matchType': 'BROAD'
                },
                {
                    'text': 'house',
                    'matchType': 'BROAD'
                }
            ]
        },
        {
            'type': 'LanguageTargetSearchParameter',
            'languageTargets': [
                {'languageCode': 'en'},
            ]
        },
        {
            'type': 'CountryTargetSearchParameter',
            'countryTargets': [
                {'countryCode': 'US'},
            ]
        }
    ],
    'ideaType': 'KEYWORD',
    'requestType': 'IDEAS',
    'paging': {
        'startIndex': '0',
        'numberResults': '100'
    }
}
targeting_idea_service.Get(selector)

TargetingIdeaService.get

SiteSuggestionService

Task v13 v200909
Get sites by URLs
urls = ['www.google.com']
targeting = {
    'countries': ['US'],
    'languages': ['en'],
    'metros': ['501'],
    'regions': ['US-NY']
}
site_suggestion_service.GetSitesByUrls(
   urls, targeting)

SiteSuggestionService.getSitesByUrls

selector = {
    'searchParameters': [
        {
            'type': 'RelatedToUrlSearchParameter',
            'urls': ['google.com'],
            'includeSubUrls': 'False'
        },
        {
            'type': 'LanguageTargetSearchParameter',
            'languageTargets': [
                {'languageCode': 'en'},
            ]
        },
        {
            'type': 'CountryTargetSearchParameter',
            'countryTargets': [
                {'countryCode': 'US'},
            ]
        }
    ],
    'ideaType': 'PLACEMENT',
    'requestType': 'IDEAS',
    'paging': {
        'startIndex': '0',
        'numberResults': '100'
    }
}
targeting_idea_service.Get(selector)

TargetingIdeaService.get

Get sites by topics
topics = ['jewelry store']
targeting = {
    'countries': ['US'],
    'languages': ['en'],
    'metros': ['501'],
    'regions': ['US-NY']
}
site_suggestion_service.GetSitesByTopics(
    topics, targeting)

SiteSuggestionService.getSitesByTopics

selector = {
    'searchParameters': [
        {
            'type': 'PlacementTypeSearchParameter',
            'placementTypes': ['SITE']
        },
        {
            'type': 'RelatedToKeywordSearchParameter',
            'keywords': [{
                'text': 'jewelry store',
                'matchType': 'EXACT'
            }]
        },
        {
            'type': 'LanguageTargetSearchParameter',
            'languageTargets': [
                {'languageCode': 'en'},
            ]
        },
        {
            'type': 'CountryTargetSearchParameter',
            'countryTargets': [
                {'countryCode': 'US'},
            ]
        }
    ],
    'ideaType': 'PLACEMENT',
    'requestType': 'IDEAS',
    'paging': {
        'startIndex': '0',
        'numberResults': '100'
    }
}
targeting_idea_service.Get(selector)

TargetingIdeaService.get