Stay organized with collections
Save and categorize content based on your preferences.
The DoubleClick Campaigns service allows you to use the
DCM/DFA Reporting and Trafficking API
in Apps Script. This API provides programmatic access to DoubleClick Campaign
Manager (DCM) and DoubleClick Digital Marketing (DDM) Reporting.
Reference
For detailed information on this service, see the
reference documentation for the
DCM/DFA Reporting and Trafficking API. Like all advanced services in Apps
Script, the DoubleClick Campaigns service uses the same objects, methods, and
parameters as the public API. For more information, see How method signatures are determined.
/** * Logs all of the user profiles available in the account. */functionlistUserProfiles(){// Retrieve the list of available user profilestry{constprofiles=DoubleClickCampaigns.UserProfiles.list();if(profiles.items){// Print out the user ID and name of eachfor(leti=0;i < profiles.items.length;i++){constprofile=profiles.items[i];console.log('Found profile with ID %s and name "%s".',profile.profileId,profile.userName);}}}catch(e){// TODO (Developer) - Handle exceptionconsole.log('Failed with error: %s',e.error);}}
Get a list of active campaigns
This sample logs names and ID's of all active campaigns. Note the use of
paging tokens to retrieve the whole list.
/** * Logs names and ID's of all active campaigns. * Note the use of paging tokens to retrieve the whole list. */functionlistActiveCampaigns(){constprofileId='1234567';// Replace with your profile ID.constfields='nextPageToken,campaigns(id,name)';letresult;letpageToken;try{do{result=DoubleClickCampaigns.Campaigns.list(profileId,{'archived':false,'fields':fields,'pageToken':pageToken});if(result.campaigns){for(leti=0;i < result.campaigns.length;i++){constcampaign=result.campaigns[i];console.log('Found campaign with ID %s and name "%s".',campaign.id,campaign.name);}}pageToken=result.nextPageToken;}while(pageToken);}catch(e){// TODO (Developer) - Handle exceptionconsole.log('Failed with error: %s',e.error);}}
Create a new advertiser and campaign
This sample creates a new advertiser, and creates a new campaign with that
advertiser. The campaign is set to last for one month.
/** * Creates a new advertiser, and creates a new campaign with that advertiser. * The campaign is set to last for one month. */functioncreateAdvertiserAndCampaign(){constprofileId='1234567';// Replace with your profile ID.constadvertiser={name:'Example Advertiser',status:'APPROVED'};try{constadvertiserId=DoubleClickCampaigns.Advertisers.insert(advertiser,profileId).id;constlandingPage={advertiserId:advertiserId,archived:false,name:'Example landing page',url:'https://www.google.com'};constlandingPageId=DoubleClickCampaigns.AdvertiserLandingPages.insert(landingPage,profileId).id;constcampaignStart=newDate();// End campaign after 1 month.constcampaignEnd=newDate();campaignEnd.setMonth(campaignEnd.getMonth()+1);constcampaign={advertiserId:advertiserId,defaultLandingPageId:landingPageId,name:'Example campaign',startDate:Utilities.formatDate(campaignStart,'GMT','yyyy-MM-dd'),endDate:Utilities.formatDate(campaignEnd,'GMT','yyyy-MM-dd')};DoubleClickCampaigns.Campaigns.insert(campaign,profileId);}catch(e){// TODO (Developer) - Handle exceptionconsole.log('Failed with error: %s',e.error);}}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eThe DoubleClick Campaigns service enables programmatic access to DoubleClick Campaign Manager (DCM) and DoubleClick Digital Marketing (DDM) Reporting within Apps Script.\u003c/p\u003e\n"],["\u003cp\u003eIt's an advanced service that requires enabling before use and mirrors the functionality of the DCM/DFA Reporting and Trafficking API.\u003c/p\u003e\n"],["\u003cp\u003eProvided sample code demonstrates how to list user profiles, get active campaigns, and create advertisers and campaigns using the service.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can leverage the service to automate tasks, extract data, and manage DCM/DDM entities directly from their Apps Script projects.\u003c/p\u003e\n"]]],[],null,["# DoubleClick Campaigns Service\n\nThe DoubleClick Campaigns service allows you to use the\n[DCM/DFA Reporting and Trafficking API](/doubleclick-advertisers/reporting)\nin Apps Script. This API provides programmatic access to DoubleClick Campaign\nManager (DCM) and DoubleClick Digital Marketing (DDM) Reporting.\n| **Note:** This is an advanced service that must be [enabled before use](/apps-script/guides/services/advanced).\n\nReference\n---------\n\nFor detailed information on this service, see the\n[reference documentation](/doubleclick-advertisers/rest/v4) for the\nDCM/DFA Reporting and Trafficking API. Like all advanced services in Apps\nScript, the DoubleClick Campaigns service uses the same objects, methods, and\nparameters as the public API. For more information, see [How method signatures are determined](/apps-script/guides/services/advanced#how_method_signatures_are_determined).\n\nTo report issues and find other support, see the\n[DCM/DFA Reporting and Trafficking support guide](/doubleclick-advertisers/get-support).\n\nSample code\n-----------\n\nThe sample code below uses\n[version 4](/doubleclick-advertisers/rest/v4) of the API.\n\n### Get a list of user profiles\n\nThis sample logs all of the user profiles available in the account. \nadvanced/doubleclick.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/doubleclick.gs) \n\n```javascript\n/**\n * Logs all of the user profiles available in the account.\n */\nfunction listUserProfiles() {\n // Retrieve the list of available user profiles\n try {\n const profiles = DoubleClickCampaigns.UserProfiles.list();\n\n if (profiles.items) {\n // Print out the user ID and name of each\n for (let i = 0; i \u003c profiles.items.length; i++) {\n const profile = profiles.items[i];\n console.log('Found profile with ID %s and name \"%s\".',\n profile.profileId, profile.userName);\n }\n }\n } catch (e) {\n // TODO (Developer) - Handle exception\n console.log('Failed with error: %s', e.error);\n }\n}\n```\n\n### Get a list of active campaigns\n\nThis sample logs names and ID's of all active campaigns. Note the use of\npaging tokens to retrieve the whole list. \nadvanced/doubleclick.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/doubleclick.gs) \n\n```javascript\n/**\n * Logs names and ID's of all active campaigns.\n * Note the use of paging tokens to retrieve the whole list.\n */\nfunction listActiveCampaigns() {\n const profileId = '1234567'; // Replace with your profile ID.\n const fields = 'nextPageToken,campaigns(id,name)';\n let result;\n let pageToken;\n try {\n do {\n result = DoubleClickCampaigns.Campaigns.list(profileId, {\n 'archived': false,\n 'fields': fields,\n 'pageToken': pageToken\n });\n if (result.campaigns) {\n for (let i = 0; i \u003c result.campaigns.length; i++) {\n const campaign = result.campaigns[i];\n console.log('Found campaign with ID %s and name \"%s\".',\n campaign.id, campaign.name);\n }\n }\n pageToken = result.nextPageToken;\n } while (pageToken);\n } catch (e) {\n // TODO (Developer) - Handle exception\n console.log('Failed with error: %s', e.error);\n }\n}\n```\n\n### Create a new advertiser and campaign\n\nThis sample creates a new advertiser, and creates a new campaign with that\nadvertiser. The campaign is set to last for one month. \nadvanced/doubleclick.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/doubleclick.gs) \n\n```javascript\n/**\n * Creates a new advertiser, and creates a new campaign with that advertiser.\n * The campaign is set to last for one month.\n */\nfunction createAdvertiserAndCampaign() {\n const profileId = '1234567'; // Replace with your profile ID.\n\n const advertiser = {\n name: 'Example Advertiser',\n status: 'APPROVED'\n };\n\n try {\n const advertiserId = DoubleClickCampaigns.Advertisers\n .insert(advertiser, profileId).id;\n\n const landingPage = {\n advertiserId: advertiserId,\n archived: false,\n name: 'Example landing page',\n url: 'https://www.google.com'\n };\n const landingPageId = DoubleClickCampaigns.AdvertiserLandingPages\n .insert(landingPage, profileId).id;\n\n const campaignStart = new Date();\n // End campaign after 1 month.\n const campaignEnd = new Date();\n campaignEnd.setMonth(campaignEnd.getMonth() + 1);\n\n const campaign = {\n advertiserId: advertiserId,\n defaultLandingPageId: landingPageId,\n name: 'Example campaign',\n startDate: Utilities.formatDate(campaignStart, 'GMT', 'yyyy-MM-dd'),\n endDate: Utilities.formatDate(campaignEnd, 'GMT', 'yyyy-MM-dd')\n };\n DoubleClickCampaigns.Campaigns.insert(campaign, profileId);\n } catch (e) {\n // TODO (Developer) - Handle exception\n console.log('Failed with error: %s', e.error);\n }\n}\n```"]]