IDs
Stay organized with collections
Save and categorize content based on your preferences.
Most Google Ads entities expose a getId()
method that returns their
identifier. While not strictly necessary in most cases, IDs may come in handy
when
- Working with reports
- IDs provide a good way to link a report row to the actual Google Ads entity.
- Maintaining a mapping with an external data store
- You may already have ID-based information stored in your own database.
- Looking for a bit of a performance boost
Fetching by IDs is often quicker than alternatives. The code for fetching a
single entity is a bit easier too:
let campaigns = AdsApp.campaigns()
.withIds([678678])
.get();
// vs.
let campaigns = AdsApp.campaigns()
.withCondition("Name='My Campaign'")
.get();
Uniqueness
Campaign IDs and ad group IDs are unique: no two campaigns or ad groups will
ever share the same ID. Ads and keywords, however, have composite IDs: a unique
identifier of a keyword is a combination of its ad group ID and keyword ID.
Likewise, a unique identifier of an ad is a combination of its ad group ID and
ad ID. This has implications for the way selector.withIds()
is called.
For campaigns and ad groups, selector.withIds()
expects an array of numbers:
let ids = [123123, 234234, 345345];
let campaignSelector = AdsApp.campaigns().withIds(ids);
For ads and keywords, however, selector.withIds()
needs an array of
two-element arrays, the first element being the ad group ID. The following
snippet retrieves three keywords from an ad group:
let adGroupId = 123123;
let keywordSelector = AdsApp.keywords().withIds([
[adGroupId, 234234],
[adGroupId, 345345],
[adGroupId, 456456]
]);
The same construct applies when fetching ads.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-25 UTC.
[[["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-25 UTC."],[[["\u003cp\u003eMost Google Ads entities have a \u003ccode\u003egetId()\u003c/code\u003e method, which returns a unique identifier that can be useful for linking data, improving performance, and referencing external databases.\u003c/p\u003e\n"],["\u003cp\u003eWhen working with reports, IDs can connect report rows to specific Google Ads entities.\u003c/p\u003e\n"],["\u003cp\u003eFetching entities by ID is often faster than using other methods like filtering by name.\u003c/p\u003e\n"],["\u003cp\u003eCampaign and ad group IDs are unique, while ad and keyword IDs are composite, requiring both the ad group ID and their individual ID for unique identification.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eselector.withIds()\u003c/code\u003e method is used to fetch entities by ID, taking an array of numbers for campaigns and ad groups and an array of two-element arrays (ad group ID and entity ID) for ads and keywords.\u003c/p\u003e\n"]]],[],null,["# IDs\n\nMost Google Ads entities expose a `getId()` method that returns their\nidentifier. While not strictly necessary in most cases, IDs may come in handy\nwhen\n\nWorking with [reports](/google-ads/scripts/docs/features/reports)\n: IDs provide a good way to link a report row to the actual Google Ads entity.\n\nMaintaining a mapping with an external data store\n: You may already have ID-based information stored in your own database.\n\nLooking for a bit of a performance boost\n\n: Fetching by IDs is often quicker than alternatives. The code for fetching a\n single entity is a bit easier too:\n\n let campaigns = AdsApp.campaigns()\n .withIds([678678])\n .get();\n // vs.\n let campaigns = AdsApp.campaigns()\n .withCondition(\"Name='My Campaign'\")\n .get();\n\nUniqueness\n----------\n\nCampaign IDs and ad group IDs are unique: no two campaigns or ad groups will\never share the same ID. Ads and keywords, however, have composite IDs: a unique\nidentifier of a keyword is a combination of its ad group ID and keyword ID.\nLikewise, a unique identifier of an ad is a combination of its ad group ID and\nad ID. This has implications for the way `selector.withIds()` is called.\n\nFor campaigns and ad groups, `selector.withIds()` expects an array of numbers: \n\n let ids = [123123, 234234, 345345];\n let campaignSelector = AdsApp.campaigns().withIds(ids);\n\nFor ads and keywords, however, `selector.withIds()` needs an array of\ntwo-element arrays, the first element being the ad group ID. The following\nsnippet retrieves three keywords from an ad group: \n\n let adGroupId = 123123;\n let keywordSelector = AdsApp.keywords().withIds([\n [adGroupId, 234234],\n [adGroupId, 345345],\n [adGroupId, 456456]\n ]);\n\nThe same construct applies when fetching ads."]]