Case: Sale of balloons in Denmark

Sale of balloons in Denmark Cases

Sphere: Sale of balloons, sending balloons in a box (balloons – surprise), decorations for the holiday.

Geo: Denmark

Goals: Increase sales of all products (now 99% is only send en ballon) at the lowest possible cost per click. Desired cost per lead – 40 kroons.

Tools launched: Search, Display, Remarketing, Shopping campaigns, including Smart Shopping campaigns.

Period: January 11 – September 25

Budget for the whole period: DKK 161,695.89 ($25,516.16)

Initial data:

ACs were created in an existing account, which the client maintained with another contractor and independently before contacting the agency.

The account had 462 keywords and 1 shopping campaign that was running on all products. 1 campaign was launched with dynamic search ads, while it had exact links to regular balloons and to sending balloons.

In a regular search campaign, all the keywords are grouped into one group, again, the keywords in different categories are shown with the same ads, so the relevance of the ads is lower than it could be. Because of this, the overall ad rating suffered, and the auction had to pay a higher cost per click. Also, the ad had a lower CTR, since it was written in the same way both for the “sending balloons” service and for regular balloons. Campaign structure – 1 campaign – 1 ad group – all keys. A separate search campaign with keywords in broad match without modifiers and one campaign with keywords in other match types – broad with modifiers, phrase and exact.

The grouping was not segmented, neither in search nor in shopping ads, which makes it difficult to analyze by keywords, you had to look at each keyword or product separately to understand the profitability of the entire category.

Microgoals have been imported into the account (more than 2 pages per session, additions to the cart, removal from the cart, more than 2 minutes on the site), because of which the client does not see a clear state of affairs and which specific campaigns bring sales, and which needs to be optimized.


All transactions are attributed to the direct source and are not recorded in Google Ads. That is, regardless of which channel the client came from in the analytics, the transaction is attributed to the direct channel, as if the client directly entered the address of our site and made a purchase. Because of this, the client is focused on adding to the basket, it is not clear which category brings the most profit, it is impossible to analyze profitable / non-profitable products in the account, the specific values of each campaign, key or product can only be assumed based on the additions to the basket .

Traffic for the period

DKK 14,886.67 spent, 2,206.00 micro conversions received. 436 transactions received for the period 05/11/2020-01/10/2021

The purpose of the advertising campaign and contacting our agency: To increase sales of all products (now 99 percent is just sending balloons) at the lowest possible cost per click.

Since the work on the project has been going on for 9 months, we will divide the case into three blocks of three months each.


Block one.


Problems encountered:

  1. Transactions are attributed to the wrong source, only cart additions are linked in the account, which do not give a real understanding of the profitability of the goods
  2. For helium and balloons, we get expensive leads, the cost per lead is twice the target, and due to the lack of correct transaction data, it is difficult to calculate the correct roas for a product or campaign. Denmark is a small country, but there are surprisingly many similar “holiday” campaigns, which makes the competition quite high.
  3. Only certain types of balloons are sold under the “sending balloons” service – mostly festive ones for birthdays, for other types we get little traffic.

1. Initially, we added the transaction code to the makeorder page because we were sure that the redirect occurs exactly after the payment page, and according to information from the client, users do not “fall off” from the payment page. This theory did not work, and at the time of the launch of our campaigns, we were faced with the fact that transactions were still attributed to the direct source. For the first couple of days, we still hoped to resolve the issue quickly, so we took into account only the additions to the cart in the account, because in order to see search queries and understand the purity of our traffic, we initially launched only regular shopping campaigns, but the solution to the problem was delayed.

In order to focus not on adding to the cart, but to have a clearer idea of what is happening in the account, we independently set up the purchase tag through the google tag manager on the makeorder page, since the programmer did not get in touch. The purchase tag only had 1 problem, we set it up with a static value and no purchase id. Because of this, some purchases were duplicated if users landed on the “thank you” page 2 times, also when focusing on the profitability of a campaign or product, we saw only approximate values, but did not see exact data.

We wrote to support about the transactions, but they could not immediately give us a clear answer. We contacted the support department with the client and the programmer to find out the reasons. So far, it was decided to focus on the purchase tag in the account. In the first quarter, the issue was not resolved, the programmer took a long time to answer messages and found out the reasons for a long time.

2. We launched separate product campaigns for ordinary balloons, grouping them by topic in order to understand what are the most frequent queries. Are balloons just found by queries “balloons” most often or perhaps the queries “cold heart style balloons” and so on are more suitable for us. At first, we adjusted bids to find a balance in CPC and conversions. Our target cost per lead at that time was 40 crowns, and focusing on the number of impressions, clicks and conversion rate, we tried to find a fine line of balance for the optimal ratio and getting leads of 40 crowns at the same time in the right amount. The main problem was that there was nothing to focus on in the analytics of these products, the client initially sold only products of the “sending balloons” category. There were at least 2 big competitors on the market who had already earned a certain trust in this topic and their regular customers, while our brand was unknown. We received few impressions and clicks on these topics, as we did not have a rating and we lost to competitors. To increase our CTR, we started working on the feed, and also gave the client a TOR to install the code to get the “Seller Rating”, asked the client to fill in gtin/mpn like this:

  • a) has a significant impact on ad rankings
  • b) will allow you to get a product rating in the future without inserting an additional code into the code of the site itself, that is, without additional programmer services or third-party programs, but only thanks to the seller rating code.

Also, to work on the feed, we began to fill in additional attributes, such as: color, material, size, the main thing about the product, optimized the names, worked on deviations, and so on. Work on the feed was carried out constantly, as we needed to stand out from the competition and improve the quality of our ads.

Data feed

Searching. For balloons and helium, a large number of keys were initially launched at different stages of the funnel, since we already wrote above there was no data that could be relied upon in the analysis before launch. In the process of work, we realized that the general keywords of the “helium for balloons” type are too expensive for us, because there were a lot of clicks, the conversion to the sale is lower and the sale price is higher than that of the keys at the lower stages of the funnel, and the target cost per lead is 40 crowns Despite the fact that helium drags the sale of many more goods, we could not calculate the correct roas, we could only guess, because of which we were very limited in making decisions about turning the keys off / on. Based on this, keywords that generated too expensive conversions or spent 40 crowns without conversions, while receiving enough clicks to convert according to the conversion rate at the campaign level. Our main task from the client was to reduce the cost of a lead, so we also limited the time for displaying ads from 9:00-23:00, although we initially started with impressions 24/7. In the process of showing ads, we found out that we get few conversions in the period from 00:00-08:00, while limiting the display time will help us reduce advertising costs.

We also analyzed the keywords used by competitors and added some more narrow Danish keywords used by competitors.

In the first month of maintenance, we launched DPO campaigns with dynamic search ads. This was especially true for balloons, since for each query “blue balloon” or “Elsa balloon” we could lead to the most relevant landing page, and this also made it possible to cover all low-frequency queries. Therefore, in parallel with turning off unprofitable broad keywords, we launched DPO in which, due to the relevance of the page and dynamic titles, the quality of the ad is higher, and due to the fact that the client will be led to the relevant product page in 90% of cases, the conversion rate in these campaigns is higher.

For example, the data for the week at the time of control. As you can see, on the example of data for one week of work. The conversion rate for the usual search engine (top campaign) – 9.09%, the conversion rate for the same type of product, but already DPO – 15.22%

Campaign-specific conversions Thanks to all this, we were able to reduce the price of a lead in the balloons and helium categories, as well as get more conversions in the category in these categories.

3. By send balloon in the search, the main keys that brought conversions were launched, since we had preliminary data on this topic from the client’s past campaigns. All we had to do was adjust the bids to get leads at a given price and work on the quality of ads by increasing their CTR. Initially, for all campaigns, we also write extensions – structured descriptions, additional links and the maximum number of clarifications – this is the minimum that we do before launching any campaign. In the search, we launched the keys of the upper stages of the funnel like “sending balloons”, so it only remained to find a balance in rates. Since our goal was to get the maximum number of conversions at a price of 40 kr, and the initial rate offered by the system was higher than we can afford with the current site conversion, we decided to test the automatic strategy “Target CPA” to give more freedom to the system and automation and test whether the system can get enough conversions at that price without our constant bid control.

The results of the campaign for the second month of work. As you can see, there were 98 sales at 49 kr for the smart shopping campaign alone. Prior to the launch of our site-wide campaigns, only 119 transactions were received in 2 weeks. During the second month of work, 503 transactions were received throughout the site, that is, 251 transactions in 2 weeks. Thus, in the second month of work, the client was able to receive 132 more transactions in 14 days, thanks to our Google advertising. Since our target value was 40 crowns, and for the client in his conditions, each crown of excess was significant, we constantly experimented with strategies in this campaign in order to get leads at a given price.

We were limited by the fact that every krone counts in the cost of a lead, while we did not see a clear revenue per category.

Ad campaign budget

In the search, we continued to optimize the campaigns, since the cost of a lead was 79 kroons in total, the total cost of a lead for a campaign for Competitors and Helium became much more expensive.

For helium, we turned off expensive keys. In the campaign against competitors, we severely limited bids so as not to spend a lot of budgets on it.

Advertising campaigns by competitors

In the shopping cart, we launched campaigns segmented by events (holidays) for which balloons were intended, in order to see the type of requests and to make it easier to filter traffic. In the early days, we realized that our main “garbage” traffic is the names of films and cartoons on which our balloons are shown.

Since the name of the product was “Elsa Balloon” or “Pep Pig Balloon”, Google identified the names of the cartoons as target queries, but the queries were most often entered by children and their parents to watch the cartoon, and they clicked on our balloons out of interest. Since there was a click, the Google system considered the queries as relevant and showed our campaigns for such queries even more. That is, the system showed us for non-targeted requests, they were clicked on, the budget was drained, and in order to earn more, the system showed us even more often for such requests in order to attract even more clicks.

Based on this, we had to sort through all the variants of cartoons and films both from the account itself and select them separately, also select variants of negative keywords with errors, since children often wrote the name of the cartoon with an error, and based on the types of matching, negative words had to select variants with errors manually. We have selected several lists of negative keywords in Danish to exclude all junk traffic

List of negative words

Also, during the first months we uploaded lists of negative keywords for the client to check in order to avoid negative keywords due to translation errors.

After some time, we launched smart shopping campaigns for the most popular categories to drive more traffic and get more conversions.

The overall result for the first two weeks of our work. (this also takes into account additions to the cart that were made before the purchase tag was set and during its verification.)

The result of the work of the Republic of Kazakhstan for the first month

Second month of work.

Results of the second month

Third month of work. As you can see, we have grown significantly in the number of impressions and clicks received, and most importantly in the number of conversions received, but we were still working on the lead cost.

Clicks and conversions for the third business month

As mentioned above, before our support, the client received 119 transactions in 2 weeks. That is, approximately 238 conversions per month across the entire site.

According to this screen, we see that we received 504 conversions only for Google advertising. That is, the client received at least 211% more conversions than before our support.

Block Two

26.03.21 – 25.06.21

  1. Transactions are still credited to direct, code is still being worked on.
  2. We continue to work on reducing the cost per lead, as we focus on 40 kroons. Smart trading to send balls failed.
  3. Overrun campaign budgets. Every crown counts.
  4. We need to increase sales of products in addition to the category “Sending balloons”.
  5. In DPO, the conversion is lower than we expected, the cost of a lead is high.

1. In the process of communicating with support after a long period of time, we accidentally ran into a specialist who suggested that we have a redirect on the “Proceed to checkout” button, in which user data is completely lost, user cookies are updated and conversions fall into a direct call. We immediately passed this information to the programmer. But after we removed the redirect, the transactions were still attributed to the wrong source. As a result, the programmer decided to demolish all the old transaction codes and install the e-commerce code according to our standard TOR, which we sent immediately. After all the codes for sending data from the cart, the makeorder page and the “thank you” pages were demolished and only 1 e-commerce code was installed on the “thank you” page, the transactions started working and we decided to transfer the account to transactions, since dynamic value was transferred through them. At the same time, the programmer was sent technical specifications for installing the Google Ads purchase code, since the purchase tag transmits transaction data faster and is better for automatic strategies, but with our simplified installation through the tag manager there was a slight duplication since the purchase ID was not included and only static value was transferred for all conversions, which did not give a complete picture of what was happening.

2. This part of the adjustments should have been described in the previous block, but it is closely related to further changes, so we will start with it in the description of shopping campaigns in this block.

Screenshot taken from our Smart Shopping campaign. At a certain point, since the type of requests is similar, we loaded all the balloons into one smart shopping campaign, which we gradually optimized, and as you can see, everything went pretty well until March 16th. Just on March 16, smart trading was at the peak of sales, but still brought conversions not for 40 kroons, but for a couple of kroons more, which is why we continued to work on reducing the cost of the lead, every kroon was important for the client.

So, on March 16, as usual, we made adjustments and excluded from smart trading unprofitable products that spent a lot and did not bring conversions or brought them, but were too expensive. And as you can see in the screenshot, immediately after this harmless change, the number of conversions went down and the cost of a lead increased. Coincidence?

Decrease in conversions and leads

No, it doesn’t seem to be a coincidence, since products in smart shopping are of the same type and are shown for the same queries, customers can also click on one product and in the process buy another product from the same campaign. That is, there were products in the campaign that received a lot of clicks and spent a lot, but did not receive conversions, because customers clicked on this product, but in the end they bought another one, and we saw statistics that one product received 40 clicks without conversions. And the other converted literally with 1 click. Because of this situation, when we excluded products that we thought were unprofitable, we violated the attribution of the campaign as a whole, since this product was involved in the path to conversion.

A week after the products were added back, the Smart Shopping Campaign started to return to its previous state, but we were still working on the cost of the lead. As you can see, the number of conversions increased by 39%, while the cost fell by 1.5%. We had a lead price limit of 40 crowns and an average cost per click of almost 4 crowns. The site’s conversion rate was far from 10%, which forced us to inflate the smart shopping campaign’s ROI target in order to lower the CPC. By doing this, we limited our smart in impressions and clicks and lost potentially more conversions, even cost-effective ones. Therefore, we were still looking for balance.

Performance of all campaigns

April 21, 21 the issue with transactions was resolved. And we hurried to transfer the account to transactions. It was very important for us to see the dynamic value of conversions in order to be able to evaluate the benefit from the conversion by roas, since, for example, the sale of Helium entails the sale of other goods and jewelry, therefore, the situation is similar with the sale of simple balloons. And trying to fit into the cost per conversion – 40 crowns, we limited sales, especially given the high competition in the market.

After switching the account to transactions, Smart Shopping campaigns were retrained and as a result began to bring very expensive conversions. We expected a drawdown as smart shopping campaigns were initially trained on the buy tag, which had a static value of 200 crowns. Of course, after we started showing products cheaper in advertising, the average bill after adding the purpose of the transaction significantly affected the work of smarts. As a result, the CPA increased by 3 times.

We have developed a plan for the next work after the brain brief with the team:

  • It was decided to exclude all products that have spent more than 100 crowns for the entire time and did not bring conversions.
  • As well as those whose value is less than or equal to 70 crowns and the value/value ratio is less than 4.5
  • Also, in the category of products from 27 to 50 crowns, we excluded all products that have a value / conversion equal to 200 crowns (the value that was assigned to the butt tag)
  • Products with a price below 27 crowns were excluded from advertising, except for those that gave ROAS above 600%.
  • In the 50 to 100 kr category, we excluded those products where the value is below 100 kr and they generated conversions worth exactly 200 kr.
  • Cylindered helium has been moved separately to the smart shopping campaign.
  • Also, products with a high conversion rate that were excluded from the smart were moved to a regular shopping campaign with a maximum clicks strategy and a maximum cost per click of 2 crowns.

After the changes, the cost of a lead returned to normal, but it was decided to stay on the purchase tag from Google advertising, since strategies are better trained on it, information is sent to the Google advertising account faster, and we also already had the opportunity to choose an attribution model “on data-driven” for this conversion in your account.

When using this model, the system analyzes user behavior and determines how they decide to become your customers and what led them to this. This helps you know which of your ads, keywords and campaigns are performing the best according to the system and is generally the best strategy for optimizing automated strategies.

Therefore, after the programmer implemented the purchase tag through a code with dynamic value, we returned the purchase goal from Google advertising to work, and we focused on transactions in analytics and when writing reports.

3. In order to reduce our budget expenses, automatic strategies have been turned off in search campaigns. We dropped all bids and raised them to the recommended one for display at the top of the page. There were also additional adjustments for the APE, which will be described in paragraph 5. In product campaigns, previously launched regular shopping campaigns with fractional segmentation were turned off, we moved all the products that converted to a smart shopping campaign, and we moved the products that did not work in a smart shopping campaign to one regular campaign with the “Maximum clicks” strategy and a limited maximum price per click, as described earlier.

In general, it was a period of subsidence, because of which we were, so, in a difficult position. There are several powerful competitors on the market, demand is falling and we are just finishing the issue with the correct calculation of conversions and value. That is, we have data on the number of conversions, but no data on roas at the level of each product, against the backdrop of all this, our goal was to make campaigns work effectively and get the most conversions at the lowest cost.

Google Trends Balloon Queries

In the screenshot from we can see that the demand for balloons for the “send en ballon” service also sagged. There were simply no requests for this category.

4. To increase the sale of goods for helium and ordinary balloons, we moved helium to a separate smart shopping campaign in the product, and in the search we increased the cost per click for DPO and those search keys that had good conversion results.

We added targeting to the audiences that converted in this campaign to the regular balloons campaign in order not to spend extra budget on non-converting audiences.

In mid-May, all helium was sold, and we suspended the smart at the request of the client until a new batch arrived.

Also, a campaign for the sale of balloons with the logo was launched in May. These are balloons that are sold with the printing that the client wishes (logo or company name) but only from a certain quantity. In the campaign, we led to a page where the user had to fill out an order form, and for this we set up and imported into Google Ads a separate goal for filling out this form.

We made a decision to launch a discovery on the top products that sold best according to analytics in order to increase the number of conversions for these products. As banners, it was decided to create banners in a minimalist design that would resemble product ads in their appearance. The product picture should have:

  • Product name
  • Product picture
  • Product price

To do this, we requested pictures from the client, and discovery will be launched in the next block.

5. According to the DPO, after the analysis, we found out that pages with products that are not in stock spend a lot. In some accounts, it is effective to leave pages with such products, since the client, having clicked on a product that is out of stock, will go to the suggested ones and make a conversion on another product, but this turned out to be not our option.

After we found out the reason for the increase in the cost of conversions, we prescribed a condition for the excluded goals of dynamic advertising – exclude all pages that contain “out of stock” from the ad.

Unfortunately, after that, we were faced with the fact that DPO ads were blocked because the recommended products offered out-of-stock products, which caused 95% of all pages from the ad to be rejected. We quickly figured out this point and contacted the programmer so that the recommended products always had only “in stock” products. With these ad changes, dynamic ads were always in stock, we increased the conversion rate for this campaign and lowered the cost per lead.

26.03.21 – 25.04.21

Conversions at start


Conversions after the implementation of changes based on the availability of products

As you can see, we were able to equalize the drawdown due to which the lead price for the account was 54 kroons and reduce the lead price to the target price of 39 kroons.


Block Three


  1. New competitor
  2. Father’s Day celebration
  3. Vacation in the client’s company, balloons were not sent, a strong drop in the conversion rate.
  4. Launching a discovery campaign.
  5. The Image extension has been added, match types have changed, and the broad match modifier is gone.
  6. Product Rating and Seller Rating


  1. Competitors were constantly actively fighting in the auction, the price for the goods was changing downward, active changes were constantly made in ads, and we actively adapted to the market throughout the entire period so as not to lose ground. By this period, people already knew about our campaign, and our competitors were already fighting for a branded request. In order not to lose customers, we launched a brand campaign.

By the end of our support period, an active new competitor also appeared, which actively fought on our main product – sending balloons in a box. He occupied the entire issue, and there was only 1 of our ads. The client insisted on an active struggle, but we understood that in the first weeks he was simply working in the red in order to kill competitors and this advertisement was not profitable for him now. In addition, we also noticed that our two main competitors did not enter into this fight, so we convinced the client to wait out this period so as not to incur losses. Yes, we will lose conversions, but they would be unprofitable for us. And now we don’t see this new competitor in the search results at all, it has lost its positions.

Issuance during the period of active overpricing of a competitor:

Search for Shopping ads during bidding period

Issuance at the time of writing the case.

Products in search at the time of writing the case

  1. Separate keywords have been launched for Father’s Day, and we’ve added a themed ad to each ad group to increase sales before the holiday. After the holiday. Right after the holiday, we returned everything to its original state, but the smart shopping campaign broke down due to a sharp increase in demand. In order not to waste time on retraining, we decided to create a new smart shopping campaign, as in our experience, learning and adaptation is faster than waiting for the old smart to return to its original audiences. This happens if the audience of users who bought during the holiday period is not your permanent audience and their purchase was impulsive and connected specifically with the holiday, but if the majority of the audience are regular buyers, then smart trading is more likely to level out faster after the holiday. Here, right after the holiday, we observed a very sharp drawdown and therefore realized that it would be faster to launch a new campaign with similar settings.
  2. Denmark was in holiday season, which meant we were ready to sag. The client’s company also went on vacation and shipments stopped for 2 weeks, it was decided to keep advertising in work, as the client said that many users order balloons in advance for a certain date.

For this period, it was decided with the client to raise the target cost per lead to 60 kroons, as the ratio of roas (conversion value / advertising cost) was beneficial for us.

After going on vacation, our site’s conversion rate dropped by 81%. The cost per lead increased by 405%, while the number of conversions fell by 78%. For this period, we focused on reducing costs, automatic strategies were turned off in campaigns, and we suspended campaigns in which the cost of a lead increased the most. Smart Shopping campaign has been paused in the product and a normal shopping campaign has been launched with the same settings.

Launch a regular Google Shopping campaign

The logo balloon campaign has also been put on hold as it was bringing in transactions but not bringing in the logo balloon order form. The specificity of this form was that the balls could only be ordered in bulk for a certain amount. The page we linked to did not have a full description of the service. Also, it was proposed to choose from several options for balls (material), but the difference between them was also not described. Due to the fact that it was just a page with a form without a correct description, it was not a conversion. Therefore, the client was advised to change the page for further work, but since the client was working on a new site, it was decided to suspend work on this category completely until the launch of the new site.


  1. Discovery campaign was launched with banners similar to product ads and top products and sales. The campaign was originally launched to help the smart shopping campaign build audiences. In the end, she spent the budget and did not bring any direct or associated conversions, although these are the most popular products and the page led to a specific product page, which is the most converting option.

Since the Discovery Campaign didn’t live up to our expectations, we launched a Smart Display Campaign with the same goal, to gather audiences. but gave it a smaller budget and applied the “maximum conversions” strategy.

At the end of August, after the launch of the brand campaign in search, it was decided to also launch a branded display network with a wide audience so that more users would know about our campaign. Since the branded display network also helped to attract new users to the site, we also suspended the smart display network, replacing it with a branded one, where the emphasis was placed primarily on the brand of the store, the name to be remembered by users.

5. Static images of the most popular products have been added to the campaigns, as well as dynamically pulling images for DPO, so that a relevant page and a relevant image are pulled for a specific request.

According to the help, it was not necessary to replace match types manually, but we noticed that some keywords worked better in phrase matching. Perhaps this is due to some hidden conflicts of the system, but as a result of this, and on the recommendation from the system itself to “replace match types”, we replaced the match type with phrase for all keys.

6. After the work carried out and the collection of the required number of surveys, on 06/21/21 we began to show the seller’s rating

Completed surveys

and product rating

Product rating

Thanks to this, reviews were immediately pulled up for each product by jitin, without downloading additional feeds or connecting third-party programs.

The results of the work for the last 30 days, for the entire site with advertising costs – 16,054 kroons. Only our advertising works.

Transactions across all sources

The result of our campaigns for the last month compared to the period exactly before the launch of our campaigns (the campaigns were not launched exactly a year ago)

Ecommerce Report

We also brought helium to regular sales at a low cost per lead, and were in the process of scaling the category.

Also, work was carried out with almost all deviations in the merchant’s account, out of 1323 goods, only 3 were rejected.

Rejected items

We also found a balance to get the maximum percentage of impressions at the optimal lead price in auction statistics.

Auction Statistics

4 people from our team worked on the project (Account manager, two technical PPC specialists, case writing co-authored by Valeria Bors, Yana Lyashenko was responsible for the project strategy).

Яна Ляшенко
Яна Ляшенко
Rate author
Add a comment

Sergey Shevchenko Google Logist GoogleLogist
Google Ads 90 Days Package, will help make your advertising campaign not only profitable, but also increase sales from it