Reklamy

Dodaj rozszerzoną reklamę tekstową

function addExpandedTextAd(adGroupName,campaignName) {   const campaignIterator = AdsApp.campaigns()       .withCondition(`campaign.name = "${campaignName}"`)       .get();   if (!campaignIterator.hasNext()){       throw new error (`No campaign found with name: "${campaignname}"`);   }    const adGroupIterator = AdsApp.adGroups()       .withCondition(`ad_group.name = "${adGroupName}"`)       .get();   if (!adGroupIterator.hasNext()){       throw new error (`No ad group found with name: "${adGroupName}"`);   }    const adGroup = adGroupIterator.next();   adGroup.newAd().expandedTextAdBuilder()     .withHeadlinePart1('First headline of ad')     .withHeadlinePart2('Second headline of ad')     .withHeadlinePart3('Third headline of ad')     .withDescription('First Ad description')     .withDescription2('Second Ad description')     .withPath1('path1')     .withPath2('path2')     .withFinalUrl('http://www.example.com')     .build();   // ExpandedTextAdBuilder has additional options.   // For more details, see   // https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_expandedtextadbuilder }

Dodaj reklamę graficzną

function addImageAd(adGroupName,imageUrl,imageName) {    const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();    const mediaOperation = AdsApp.adMedia().newImageBuilder()     .withName(`${imageName}`)     .withData(imageBlob)     .build();   const image = mediaOperation.getResult();   if (!image.isSuccessful()) {    throw new Error(`Media could not be created from url: "${imageUrl}"`)   }    const adGroupIterator = AdsApp.adGroups()       .withCondition(`ad_group.name = "${adGroupName}"`)       .get();   if (!adGroupIterator.hasNext()) {     throw new Error(`No ad group found with name: "${adGroupName}"`);   }   if (adGroupIterator.totalNumEntities() > 1) {     console.warn(`Multiple ad groups named "${name}" found. Using the one     from campaign "${adGroup.getCampaign().getName()}".`);   }    const mediaIterator = AdsApp.adMedia().media()       .withCondition(`media_file.name = "${imageName}"`)       .get();   if (!mediaIterator.hasNext()) {     throw new Error(`No media found with name: "${imageName}"`);   }    const adGroup = adGroupIterator.next();   const image2 = mediaIterator.next();   adGroup.newAd().imageAdBuilder()     .withName('Ad name')     .withImage(image2)     .withDisplayUrl('http://www.example.com')     .withFinalUrl('http://www.example.com')     .build();   // ImageAdBuilder has additional options.   // For more details, see   // https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_imageadbuilder }

Dodaj elastyczną reklamę displayową

// You create responsive display ads in two steps: //   1. Create or retrieve assets (marketing images, square marketing images, //      optional logos, optional landscape logos, and optional YouTube videos) //   2. Create the ad. // // The following function assumes you have not already created named assets. function addResponsiveDisplayAd(campaignName,adGroupName) {   // If you have multiple adGroups with the same name, this snippet will   // pick an arbitrary matching ad group each time. In such cases, just   // filter on the campaign name as well:   //   // AdsApp.adGroups()   //     .withCondition(`ad_group.name = "${adGroupName}"`)   //     .withCondition(`campaign.name = "${campaignName}"`)   const adGroupIterator = AdsApp.adGroups()       .withCondition(`ad_group.name = "${adGroupName}"`)       .get();   if (!adGroupIterator.hasNext()) {     throw new Error(`No ad group found with name: ${adGroupName}`);   }    // If you have already created named image assets, select them like this:   //   // const marketingImages = [];   // const marketingImageIterator = AdsApp.adAssets()   //     .assets()   //     .withCondition(`ad_group_ad.ad.name IN ("INSERT_FIRST_ASSET_NAME_HERE",   //                              "INSERT_SECOND_ASSET_NAME_HERE")`)   //     .get();   // while (marketingImageIterator.hasNext()) {   //   marketingImages.push(marketingImageIterator.next());   // }    const adGroup = adGroupIterator.next();   const adGroupBuilder = adGroup.newAd()     .responsiveDisplayAdBuilder()     .withBusinessName('Your business name')     .withFinalUrl('http://www.example.com')     .withHeadlines(['First headline', 'Second headline'])     .withLongHeadline('Long Headline')     .withDescriptions(       ['First description', 'Second description', 'Third description']);    // If you selected assets with a snippet as shown above, then provide those   // assets here like this:   //   // adGroupBuilder = adGroupBuilder.withMarketingImages(marketingImages);    adGroupBuilder     .addMarketingImage(       buildImageAsset("rectangular image asset", "https://goo.gl/3b9Wfh"))     .addSquareMarketingImage(       buildImageAsset("square image asset", "https://goo.gl/mtt54n"))     .build();    // ResponsiveDisplayAdBuilder has additional options.   // For more details, see   // https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_responsivedisplayadbuilder }  function buildImageAsset(assetName, imageUrl) {   const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();   return AdsApp.adAssets().newImageAssetBuilder()       .withData(imageBlob)       .withName(assetName)       .build()       .getResult(); }

Wstrzymaj reklamę w grupie reklam

function pauseAdInAdGroup(adGroupName) {   const adGroupIterator = AdsApp.adGroups()     .withCondition(`ad_group.name = "${adGroupName}"`)     .get();   if (!adGroupIterator.hasNext()) {     throw new Error(`No ad group found with name: "${adGroupName}"`);   }   const adGroup = adGroupIterator.next();   const adsIterator = adGroup.ads().get();   if (!adsIterator.hasNext()) {     throw new Error(`No ads found in ad group: "${adGroupName}"`);   }   const ad = adsIterator.next();   ad.pause(); }

Uzyskaj iterację rozszerzonych reklam tekstowych w grupie reklam

function getExpandedTextAdsIteratorInAdGroup(adGroupName) {   const adGroupIterator = AdsApp.adGroups()       .withCondition(`ad_group.name = "${adGroupName}"`)       .get();   if (!adGroupIterator.hasNext()) {     throw new Error(`No ad group found with name: "${adGroupName}"`);   }   const adGroup = adGroupIterator.next();   // You can filter for ads of a particular type, using the AdType selector.   // See https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_ad#getType_0   // for possible values.   const expandedTextAdsIterator = adGroup.ads()     .withCondition(`ad_group_ad.ad.type = "EXPANDED_TEXT_AD"`)     .get();   if (!expandedTextAdsIterator.hasNext()) {     throw new Error(`No expanded text ads found in ad group: "${adGroupName}"`);   }   return expandedTextAdsIterator; }

Pobierz iterację reklam tekstowych w grupie reklam

function getTextAdsIteratorInAdGroup(adGroupName) {   const adGroupIterator = AdsApp.adGroups()       .withCondition(`ad_group.name = "${adGroupName}"`)       .get();   if (!adGroupIterator.hasNext()) {     throw new Error(`No ad group found with name: "${adGroupName}"`);   }   const adGroup = adGroupIterator.next();   // You can filter for ads of a particular type, using the AdType selector.   // See https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_ad#getType_0   // for possible values.    const textAdsIterator = adGroup.ads()     .withCondition(`ad_group_ad.ad.type = "TEXT_AD"`)     .get();   if (!textAdsIterator.hasNext()) {     throw new Error(`No text ads found in ad group: "${adGroupName}"`);   }   return textAdsIterator; }

Pobierz statystyki dla reklam w grupie reklam

function getAdGroupAdStats(adGroupName) {   const adGroupIterator = AdsApp.adGroups()     .withCondition(`ad_group.name = "${adGroupName}"`)     .get();   if (!adGroupIterator.hasNext()) {     throw new Error(`No ad group found with name: "${adGroupName}"`);   }   const adGroup = adGroupIterator.next();     // If you want to restrict your search to some ads only, then you could     // apply a label and retrieve ads as     //     //   const label = AdsApp.labels()     //     .withCondition(`ad_group_ad_label.name ="INSERT_LABEL_NAME_HERE"`)     //     .get()     //     .next();     //   const adsIterator = label.ads().get();    const adsIterator = adGroup.ads().get();   if (!adsIterator.hasNext()) {     throw new Error(`No ads found in ad group: "${adGroupName}"`);   }   const ad = adsIterator.next();   // You can also request reports for pre-defined date ranges. See   // https://developers.google.com/google-ads/api/docs/query/date-ranges   // DateRangeLiteral section for possible values.   const stats = ad.getStatsFor('LAST_MONTH');   console.log(`${adGroup.getName()},   ${stats.getClicks()},   ${stats.getImpressions()}`); }

Utwórz elastyczne reklamy displayowe w grupie reklam

function getResponsiveDisplayAdIteratorInAdGroup(adGroupName) {   const adGroupIterator = AdsApp.adGroups()       .withCondition(`ad_group.name = "${adGroupName}"`)       .get();   if (!adGroupIterator.hasNext()) {     throw new Error(`No ad group found with name: ${adGroupName}`);   }   const adGroup = adGroupIterator.next();   const responsiveDisplayAdsIterator = adGroup.ads()       .withCondition(`ad_group_ad.ad.type IN ("RESPONSIVE_DISPLAY_AD",         "LEGACY_RESPONSIVE_DISPLAY_AD")`)       .get();   if (!responsiveDisplayAdsIterator.hasNext()) {     throw new Error(`No Responsive Display ads found in ad group:     "${adGroupName}"`);   }   return responsiveDisplayAdsIterator; }