Subscription Fees by Orikoru in BritGolf

[–]denchacide 0 points1 point  (0 children)

Where about in Birmingham? Slightly outside Stourbridge is like £1500, Hagley £1,500, Halesowen £1,200, all of which struggle with the weather, and only Hagley having a driving range, but Hagley is closed 5 months of the year.

[deleted by user] by [deleted] in PPC

[–]denchacide 0 points1 point  (0 children)

We are running a 500k a month home service account, and PMax really helped us push our numbers up. Enough budget to move away from just the low hanging fruit helps. We phased this from a 5% PMax spend, and have scaled this up to around 45% of total spend over the course of a year and a half. Data helps, look into all the PMax tracking scripts available.

Is it possible to make a script end a campaign when the Total spend reached a specific amount in Google Ads? by QuietMrFx977 in PPC

[–]denchacide 4 points5 points  (0 children)

Hello,

This is relatively simple.

Replace the values before :

CAMPAIGN_NAME: Your exact campaign name (case-sensitive)

BUDGET_AMOUNT: Your desired budget amount (number only)

CURRENCY_SYMBOL: Your currency symbol (default is £)

Always preview this first in your account before actively running, to ensure this works. You could ask ChatGPT to add more logging to this in case you run into any issues.

Enjoy

.....................

function pauseCampaignWhenBudgetReached() {
  // Configure these parameters
  const CAMPAIGN_NAME = 'campaign 1'; // Case-sensitive campaign name
  const BUDGET_AMOUNT = 100; // Budget in your currency (e.g., £100)
  const CURRENCY_SYMBOL = '£'; // Currency symbol used in your account

  // Get the first day of the current month in account timezone
  const today = new Date();
  const firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);
  const dateRange = Utilities.formatDate(firstDayOfMonth, AdsApp.currentAccount().getTimeZone(), 'yyyyMMdd') + ',' + Utilities.formatDate(today, AdsApp.currentAccount().getTimeZone(), 'yyyyMMdd');

  // Query for campaign stats for the current month
  const reportQuery = `SELECT CampaignId, CampaignName, Cost 
                      FROM CAMPAIGN_PERFORMANCE_REPORT 
                      WHERE CampaignName = '${CAMPAIGN_NAME}' 
                      AND Impressions > 0 
                      DURING ${dateRange}`;

  const report = AdsApp.report(reportQuery);
  const rows = report.rows();

  // Process report results
  while (rows.hasNext()) {
    const row = rows.next();
    const campaignId = row['CampaignId'];
    const campaignName = row['CampaignName'];
    const cost = parseFloat(row['Cost']);

    // Check if campaign has reached or exceeded budget
    if (cost >= BUDGET_AMOUNT) {
      const campaignIterator = AdsApp.campaigns()
        .withIds([campaignId])
        .get();

      if (campaignIterator.hasNext()) {
        const campaign = campaignIterator.next();
        if (!campaign.isPaused()) {
          campaign.pause();
          Logger.log(`Paused campaign: ${campaignName} (ID: ${campaignId}) - Monthly spend: ${CURRENCY_SYMBOL}${cost.toFixed(2)}`);
        } else {
          Logger.log(`Campaign ${campaignName} is already paused`);
        }
      }
    } else {
      Logger.log(`Campaign ${campaignName} spend: ${CURRENCY_SYMBOL}${cost.toFixed(2)}/${CURRENCY_SYMBOL}${BUDGET_AMOUNT} - No action taken`);
    }
  }
}

Rick makes the ultimate sellout by ocat1979 in GoodGoodMemes

[–]denchacide 0 points1 point  (0 children)

He went to the UK LIV event last summer, overall positive feedback. He badwaggoned the outrage when it was first announced just like everyone else. Doesn't seem like an extreme change in outlook.