Google Ads Script Function To Add UTM Parameters To The Account

486 views
Skip to first unread message

Piyush from SEO ORB

unread,
Feb 16, 2023, 5:21:36 AM2/16/23
to Google Ads Scripts Forum
Hi I've created this script, but when I run it, it's throwing this error and I don't know how to get around this. 

---

function main() {
  var account = AdsApp.currentAccount();
  var campaignIterator = AdsApp.campaigns().withCondition('Status = ENABLED').get();

  while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    var campaignUrl = campaign.urls().getFinalUrl();
    var campaignName = campaign.getName();
    var adGroups = campaign.adGroups().get();

    while (adGroups.hasNext()) {
      var adGroup = adGroups.next();
      var adGroupName = adGroup.getName();
      var keywords = adGroup.keywords().get();

      while (keywords.hasNext()) {
        var keyword = keywords.next();
        var keywordText = keyword.getText();
        var keywordUrl = keyword.urls().getFinalUrl();
        var utmParams = '?utm_source=' + campaignName + '&utm_medium=' + adGroupName + '&utm_campaign=' + account.getCustomerId() + '&utm_term=' + keywordText + '&utm_content=' + keyword.getId();

        if (campaignUrl.indexOf('?') !== -1) {
          campaignUrl += utmParams;
        } else {
          campaignUrl += '?' + utmParams;
        }

        if (keywordUrl.indexOf('?') !== -1) {
          keywordUrl += utmParams;
        } else {
          keywordUrl += '?' + utmParams;
        }

        campaign.urls().setFinalUrl(campaignUrl);
        keyword.urls().setFinalUrl(keywordUrl);
      }
    }
  }
}

----

Error Message:
TypeError: campaign.urls(...).get is not a function at main (Code:7:39) at Object.<anonymous> (adsapp_compiled:18997:54)

Can anyone help me?

Google Ads Scripts Forum Advisor

unread,
Feb 16, 2023, 6:58:42 AM2/16/23
to adwords...@googlegroups.com

Hello,

I'm Kevin from the Google Ads Scripts Team.

Upon checking, it appears that AdsApp.​CampaignUrls doesn't contain a .getFinalUrl() method. I suggest you try using the getFinalUrlSuffix (For example, change campaign.urls().getFinalUrl() in your code snippet to campaign.urls().getFinalUrlSuffix()) method, and see if it is what you're looking for.

Let me know if you're still encountering issues afterwards.

Regards,

Google Logo
Kevin Gil
Google Ads Scripts Team
 


ref:_00D1U1174p._5004Q2j0qHe:ref
Reply all
Reply to author
Forward
0 new messages