How to Set Up Google Shopping and Performance Max on the Shop-Express Platform?

Настройка Google Shopping и PMax на платформе Shop-Express e-Commerce

Shop-Express belongs to the category of website builders where most things work “out of the box.” A store can be created quickly, it doesn’t take weeks to design, and maintenance is as simple as possible. That is why the platform is often chosen to test a new niche, a specific product, or even a different market.

For example, you decide to check if engraved thermal mugs will sell. You can launch a store in an evening, add a dozen items, and the very next day you are driving traffic. This can be Google Shopping (Google product ads) or other Google formats, targeted Meta Ads on Facebook and Instagram, or TikTok Ads. In its operating logic, Shop-Express is similar to Shopify: everything is designed so that you can launch ads and get your first orders as quickly as possible.

Steps to Launch Google Shopping and Performance Max

The entire process comes down to three steps. Each one is important, and you shouldn’t skip any.

  1. Creating a Merchant Center account. This is a separate Google service through which the system reviews the store and checks if the products and website comply with its policies.
  2. Setting up goals in Google Analytics 4. It sounds scary, but in practice, it is one of the easiest steps. It is necessary for Performance Max: this is an AI-based campaign, and without goals, it simply won’t know what to aim for.
  3. Launching the campaigns themselves. Here you create a Performance Max or classic Google Shopping campaign. I will break down both options separately, and you can choose the one that better suits your business.
If you plan to launch Performance Max, do not skip setting up goals. A campaign without conversion data essentially works blindly, and the budget is wasted on traffic that doesn’t buy anything.

Creating and Setting Up Merchant Center

We start with Merchant Center. Let me remind you: information about the products and partially about the store itself is uploaded here. This is exactly where Google starts verifying your website.

Only one Merchant Center account can be linked to one domain. This is how Google understands who exactly is advertising the products or showing them in free product listings. If a contractor has ever created an account for your domain before, first find out where it is and who has access to it.

This is the longest stage. And not because it’s difficult. It’s just that the review by Google can take up to 72 hours, so factor these days into your launch plan.

The process itself consists of several steps:

  • registering the Merchant Center;
  • filling in the mandatory store information;
  • verifying website ownership;
  • uploading the product feed.

Next, we will go through each step so that you don’t get confused anywhere.

Registering the Merchant Center

Go to business.google.com and click “Get started”. The initial settings are very simple. Google asks if you sell products online—we answer “Yes” and paste the website address. The next question is about a physical (brick-and-mortar) store. If you don’t have an offline location, select “No” and click “Continue”.

Merchant Center form 'Tell us about your business': online store and website address

Specifics of Selling Abroad

A separate note for those using Shop-Express to enter other markets. Choosing a currency, like dollars, is not a problem. The difficulty lies elsewhere.

It is highly recommended that the country you are selling to via Merchant Center matches the geolocation of the device and IP address from which you are creating the account. Google is very sensitive to such discrepancies and may consider them a sign of suspicious activity.

So, if you are in Kyiv setting up a store for the US, keep this risk in mind in advance.

Entering Business Information

Now we enter the store name. Ideally, it should match the domain. For this example, I named it “Adwservice Shop-Exp”. The logo and other optional fields can be skipped at this stage. The country of registration is Ukraine.

Business name and country of registration in Merchant Center

Next, we specify the address. It is best if it exactly matches the one on the website: in the footer or in the “Contacts” section. Google checks whether the address is real and if it corresponds to the store’s data, so no improvising here.

Business legal address form in Merchant Center

A minor detail people often stumble on: Kyiv is selected as a separate region in the form, not as a part of the Kyiv region. The zip code is, for example, 02070. Once filled out—click “Continue”.

Verifying Website Ownership

The next step is email and other verification methods. Do not be surprised if the system immediately redirects you to a page with code: that’s how it’s supposed to be. Google wants to make sure that the website belongs to you, and not to a dozen other sellers.

By the way, the Merchant Center interface may look slightly different for different users. Google constantly tests new design layouts, so if the buttons are not located exactly as they are in the screenshots, it’s nothing to worry about.

Choosing a website verification method in Merchant Center

There are several verification methods:

  • integration with hosted platforms (WooCommerce, Wix, Shopify)—doesn’t apply to Shop-Express;
  • HTML tag or HTML file;
  • Google Tag Manager;
  • Google Analytics.

Instructions for verifying an online store using an HTML tag

For Shop-Express, the most convenient option is “Add an HTML tag or file”. On the platform itself, this is done by inserting a script:

Section 'Settings' → 'Scripts' in the Shop-Express admin panel

  1. Copy the tag code from Merchant Center.
  2. In the Shop-Express admin panel, go to “Settings” → “Scripts” → “Create”.
  3. Give the script a clear name, for example, “Merchant Center”, and paste the code.
  4. Choose the placement as required by Google: in the <head> section of the homepage, before the first <body> tag. In Shop-Express, this is the “Head — first line” option.
  5. Set the status to “Published” and save.

Creating a script with the Merchant Center verification tag in Shop-Express

Return to Merchant Center, select this method, and click “Verify”. If everything is done correctly, a message will appear stating that the website ownership is verified. Click “Continue”, select the country of sale again (in our case, only Ukraine)—and this stage is behind us.

Message confirming successful website verification in Merchant Center

Ways to Add Products in Merchant Center

After verifying the website, Google offers to go through a few more steps. You can do everything at once, or postpone some of it using the “Not right now” button. I advise doing it all in one go: the interface is quite logical, and this way nothing gets lost. Although you can add the shipping or return policy later anyway, they are moderated separately over the same 72 hours.

Choosing a method to add products in Merchant Center

Now the most interesting part: exactly how to transfer products from Shop-Express to Merchant Center. There are five options:

  • using AI. Google will scan the site itself and pull products from structured data (usually schema.org markup);
  • from a file;
  • via Google Sheets;
  • manually, one product at a time;
  • via API. Shop-Express doesn’t have this feature, so we immediately discard this option.

Ways to add products: via Google Sheets, one by one, and via API

The AI option looks convenient, but I would leave it as a last resort. The result depends entirely on whether the products are open for indexing and whether Google has had time to crawl them. If the store was launched yesterday, a part of the inventory simply won’t make it into the selection. You can experiment, but you shouldn’t rely on this method.

Adding Products from a File

We will go the file route. And here there’s also a fork in the road: upload a file from your computer or add a link to it. I don’t recommend the first option. A link, however, is exactly what we need, because Shop-Express generates a feed that updates automatically.

Adding a link to an auto-updating feed file in Merchant Center

How does this work in practice? Let’s say you raised the price of a coffee grinder from 2,400 to 2,650 UAH, and removed two items from sale. You don’t need to manually change anything in Merchant Center; the data will update itself. In general, it’s better to automate all routine operations so you don’t have to keep track of them in your head.

So, we return to the Shop-Express admin panel, go to “Integrations” → “Google Shopping”, and click “Connect”. The system will immediately show how many products, categories, and manufacturers you have, that is, everything you added in the previous stages.

Connecting the Google Shopping integration in the 'Integrations' section of Shop-Express

Number of products, categories, and manufacturers in the Google Shopping integration

Next, we set up the feed link generation. There are several useful parameters here:

  1. “Availability”. Decide whether to export only in-stock products or the entire catalog.
    The 'Availability' parameter in the Shop-Express feed settings
  2. “Use extended name”. In the Shop-Express catalog, you can set a short basic name or an extended one. If your extended titles are well-written (with brand, model, color), it makes sense to enable this option. I left it as is.
    Extended name and product variant name options for the feed
  3. “Categories and manufacturers”. Useful if, say, you have 1,000 products, but you only want to advertise a few categories or specific brands.
    Selecting categories and manufacturers for the Shop-Express feed
  4. “Category”. There is a checkbox for “Adult content”—this includes alcohol, intimate goods, etc. If you sell something similar, make sure to check this.
    'Adult content' setting in the Shop-Express feed
  5. “Reviews”. Can be set up later.
    Review settings in the Google Shopping feed on Shop-Express
  6. “Description”, “Characteristics”, “Labels”. Labels are a separate attribute for Merchant Center, which makes it easy to segment products in campaigns later. But this is a topic for a separate discussion, so I’ll skip it for now.
    Description, specific characteristics, and label options for the Merchant Center feed
Alcohol and adult products have significant impression restrictions, and some of these items cannot be uploaded to Merchant Center at all. Consider this before allocating your advertising budget.

We click “Save”—and we get the ready-to-use feed link. My website has one language, Ukrainian, so there is only one link.

Link to the Google Shopping data feed in Shop-Express

Be sure to open this link in your browser before adding it to Merchant Center. You should see a “wall” of code containing your products. This way, you can ensure that the feed was generated, works, and generally looks correct. Server glitches happen more often than we’d like, so this one-minute check can save you days.

Shop-Express product feed opened in a browser: XML code with products

Copy the link, return to Merchant Center, and paste it. The update frequency can be left at the standard setting. We choose Ukraine as the country; this is important. The feed language is Ukrainian (if the site has multiple languages, check which one you are exporting). After this, we specify the “Marketing methods”.

Feed link, country, language, and marketing methods in Merchant Center

For now, products will only show up in free listings. To launch paid Google Shopping ads, we will enable another program in the settings a bit later. Click “Continue”. Honestly, it takes longer to explain than to actually do it: a few clicks and it’s done.

Entering Shipping Information

Without shipping setup, no Merchant Center account will pass review. This is a mandatory step, and you cannot skip it.

There is no automatic shipping integration with Shop-Express, so we fill everything out manually, making sure it matches what is written on the website. One caveat: you must specify the cheapest option for door-to-door delivery. Not courier delivery in a broad sense, but specifically to a physical address. Delivery to a branch or parcel locker is unfortunately not available for Ukraine in this format.

What needs to be filled out:

  • order cutoff time. If you work 24/7, state it as such. If until 6:00 PM or 7:00 PM—set your time;
    Order cutoff time in the Merchant Center shipping settings
  • time zone. For Ukraine, it is Kyiv;
    Selecting the Kyiv time zone in the shipping settings
  • handling time in days;
    Handling time 0–0 days in Merchant Center
  • operating days (Monday–Friday, no days off—whatever applies to you);
  • transit time.

People often get confused with handling time, so I will explain it separately. A zero in Google means the first 24 hours. If you process orders around the clock, specify 0–0. I accept orders until 7:00 PM, and anything that comes in later is processed the next day. Therefore, I set 0–1, meaning from 24 to 48 hours.

Handling time 0–1 day and operating days in Merchant Center

Transit time is how long the package travels to the customer via Nova Poshta, Ukrposhta, or your courier. If you deliver on the day of the order, put zero. If it’s usually 1–3 days, write just that. The main thing is that these numbers match what is stated on your “Shipping” page in the section about door-to-door delivery. A single, cheapest option is more than enough.

Transit time in days in the Merchant Center settings

Transit time 1–3 days in the Merchant Center settings

The currency must match the feed currency. My prices are in hryvnias (in the feed it looks like `price 1000 UAH`), so I don’t change anything here.

Currency unit UAH for shipping cost in Merchant Center

Next are the “Order value conditions”. There are quite a few options:

  1. Free shipping over a certain amount.
  2. No delivery for orders below a certain amount.
  3. Fixed rate.
  4. Cost depending on the product price.
  5. Cost depending on weight—but then each product card must have a “weight” attribute, and Shop-Express doesn’t have it.
  6. Cost depending on the number of items or an advanced pricing table.

Order value conditions and shipping cost types

For Ukraine, the simplest is a fixed rate: 70, 90, or 100 UAH, approximately what the carrier charges. This is enough for the review process. The ideal option, of course, is free shipping, but not every business can afford that.

Fixed shipping rate of 70 UAH in Merchant Center

Why does Google even need this information? It’s simple: according to advertising policies, the buyer must see all costs even before ordering. You yourself probably don’t like surprises at the checkout stage. Imagine selling water heaters or air conditioners. Shipping a bulky item across the country can cost a lot of money, and some people, upon seeing the price, simply won’t order. Yes, in some regions, the conversion rate will drop slightly. But you won’t get cancellations over the phone or returned packages when the customer suddenly discovers the real cost. A person sees the delivery price right in the ad and makes an informed decision. Therefore, my advice: either free shipping or a fixed rate. Click “Continue”.

Return Policy Settings

The next step is the return policy. It is reviewed separately from the rest of Merchant Center, so pay close attention when filling it out. Ideally, provide a link to your “Returns and Exchanges” page. My demo site doesn’t have such a page, so I’ll show you the underlying logic.

Return policy URL and return and exchange conditions for products

Everything you enter must match the text on the website. First, you choose which products you accept back: only defective ones, any products of acceptable quality, or none. For example, underwear, swimwear, and pajamas cannot be returned according to Ukrainian law. If you sell exactly these, confidently select “No, I do not accept returns”. The same applies to exchanges.

Item condition and return window in the Merchant Center return policy

Next, you specify:

  • item condition: “New only” or “Slight signs of use”;
  • number of days for return and if there is a window extension;
  • return method (e.g., by mail) and whether you provide a label;
  • restocking fee (if there is none—”Free”);
  • refund processing time, i.e., in how many days the buyer will get their money.

Return method, currency, and return shipping fee

Confirm and save.

The return policy does not affect the Merchant Center review process, but it does affect your “Store quality” score. Stores with high ratings get bonuses from Google: they are shown more often in search results, and generally, it’s easier for them to advertise. So it is better not to leave this section empty.

'Store quality' metric in Merchant Center

If you made a mistake (entered the wrong page or an incorrect number of days), don’t worry. Next to each section is a pencil icon, through which everything can be edited. My shipping settings, by the way, are already approved, while the return conditions are still “pending review”. This process can take up to 10 days, so check back in a week or two to see the status. If the policy was rejected, it can be deleted and created anew, this time correctly.

Editing shipping settings with the pencil icon in Merchant Center

Return conditions with the 'Pending review' status

Checking Product Uploads and Fixing Errors

Now we check if the products have uploaded. Mine are all in place, the status is “under review”. The standard review takes up to 72 hours, and the status even says “Initial review pending, up to 3 business days”.

List of products in Merchant Center with 'Under review' status

You can open any product card and see what was pulled in: title, description, price. The same information is visible in the “Overview” tab. The account status is displayed in “Notifications”, and issues with individual items are in the “Products” → “Needs attention” section. That’s exactly where you should look if something goes wrong during the review.

Product card in Merchant Center: price, availability, and identifier

'Needs attention' tab: initial review pending for up to 3 business days

Merchant Center overview: number of products and review statuses

A Brief Summary of What We’ve Done

There were a lot of explanations, but in reality, the account itself is created in literally a minute. Google immediately guided us through all the mandatory settings, and if anything was left unfilled, it will appear in the “Next steps” block. I have no pending tasks there anymore.

Business information in Merchant Center after setup

So, we have:

  1. Created a Merchant Center account.
  2. Added business information.
  3. Verified website ownership via the “Scripts” section in Shop-Express.
  4. Connected an auto-updating feed.
  5. Set up shipping.
  6. Filled out the return policy.

Check once more to ensure all data in Merchant Center matches the website, because Google verifies it. And a small note: domains like my demo one rarely pass review on the first try, because Google might be suspicious of an atypical domain. But on a real store with correct data, issues usually do not arise.

If you later need to replace the feed link or change the set of categories, look for it in the “Settings” → “Data sources” section. There, you open “Data source settings” and you will see the generated URL.

'Data sources' section with the product feed in Merchant Center

Before you close Merchant Center, go to the “Add-ons” section and enable “Custom reports” and “Advanced data source management”. You will need them later for analysis and more flexible work with the feed.

'Add-ons' section: advanced data source management and custom reports

How and Why to Set Up Goals for Performance Max?

Let’s move on to the second stage. Merchant Center is already under review, and in the meantime, we are preparing goals for future Performance Max campaigns.

It’s important to understand one thing here. Google’s artificial intelligence already knows quite well how people buy your specific type of product online: it has a massive database of behavioral data. But it doesn’t see what happens on your website after the click unless you show it.

So imagine this: a person clicked through from an ad, added a product to the cart, and placed an order. But Google didn’t find out about it because the `purchase` event isn’t being passed. What will it “think”? That’s right: “Wrong audience, I’ll look for others.” Even though it actually hit the right people on the first try. The campaign starts to rebuild itself, the budget goes to untargeted traffic, and you wonder why there are fewer sales than expected.

Without correctly set up goals, primarily the purchase event, there is no point in launching Performance Max. The algorithm simply won’t have anything to work off of.

For the setup, we will need three services: Google Analytics 4, Google Tag Manager, and a Google Ads account. We will create them one by one.

Creating Google Analytics 4

Let’s start with analytics. On Shop-Express, everything here is very simple: it’s enough to paste the measurement ID of the new property and enable ecommerce data tracking. But first, this property needs to be created.

Google tag (Google Analytics 4) integration in the Shop-Express admin panel

Open Google Analytics and click “Get started” → “Start measuring”. Then, in order:

  1. Account name. I advise using the website domain. It’s unlikely you will have only one project in your lifetime, and navigating analytics by domain names is much easier.
    'Start measuring' button in Google Analytics
    Google Analytics account name by website domain
  2. Country — Ukraine. Google might suggest another one, don’t accept it.
  3. Currency — hryvnia, or the currency in which prices are listed on the website.
    Property name, time zone, and currency in Google Analytics 4
  4. Industry category. If you’re worried about choosing the “wrong” one, don’t be. It only affects the set of standard reports that will appear immediately after creation.
    Industry category and business size in Google Analytics 4
  5. Click “Create” and accept the terms.

The next step is the data stream. Enter the website URL, and duplicate the domain again in the stream name. Google has already set the rest of the parameters itself, so nothing needs to be changed. “Create and continue”—and the property is ready.

Web data stream setup in Google Analytics 4

Created GA4 data stream on the 'Start collecting data' screen

Skip the “Set up your Google tag” screen and the “Test installation” button for now. We only need the Measurement ID—the code that starts with the letter G.

'Set up your Google tag' window with gtag.js code

Measurement ID G- in the Google Analytics 4 data stream

Connecting GA4 to Shop-Express

Copy the Measurement ID, return to the Shop-Express admin panel, and paste it into the Google Analytics integration. Be sure to enable “Ecommerce (dataLayer)”, which is passed via gtag. This specific option ensures that data about product views, add-to-carts, and purchases goes into analytics.

Tracking ID and Ecommerce (dataLayer) in the GA4 integration in Shop-Express

In “Advanced parameters”, you can view the configuration settings, but nothing needs to be changed for starters. Click “Save”.

Google tag code for manual installation and website verification

You might not find the test buttons in the Google Analytics interface at this stage. It’s fine: go to the homepage, don’t select anything, and just save. The information that the tag has been installed will appear with a delay.

Verifying the Proper Installation of GA4 on Shop-Express

How can you make sure that analytics is actually working? You can do it via Google Tag Manager (we’ll get to that later), or more simply—via a browser extension.

Chrome menu 'Extensions' → 'Visit Chrome Web Store'

I use Google Analytics Debugger. Find it in the Chrome Web Store, click “Add extension”, pin it to your toolbar, and turn it on. It doesn’t affect the website’s operation in any way; it simply shows what data is being transmitted.

Google Analytics Debugger extension in the Chrome Web Store

Next:

  • open any product card on your website;
  • right-click → “Inspect” and go to the “Console” tab;
    Browser console on the product card showing Google Tag data
  • in Google Analytics, go to “Admin” → “Data streams” and copy that same G- ID;
    Stream ID G- in the 'Data streams' section of Google Analytics 4
  • in the console, press Ctrl+F and paste it.
    Searching for the GA4 Measurement ID in the browser console

The console looks intimidating, I agree. But you only need one thing: to find your ID there. If you found it, it means analytics is set up and sending data.

There is an even easier way. Wait 15–20 minutes and open the “Realtime” report. If active users appear there (for example, two for me—that’s me logging in from two devices), everything works. Google Analytics 4 is set up.

'Realtime' report: active users in Google Analytics 4

Creating Google Tag Manager

Honestly, for basic conversions, just analytics would suffice. But there’s a catch. Providing correct goals for artificial intelligence is, in my experience, 70–80%, and sometimes even 90% of a campaign’s success. Therefore, it’s better to put in the extra effort at the start than to redo everything later. We will additionally create a Google Ads conversion tag so that the advertising account receives data directly.

For this, we will need the Google Ads account itself and Google Tag Manager. It looks more complicated than it actually is, so just follow along with me step by step.

In the Shop-Express admin panel, open “Integrations” → “Google Tag Manager” and follow the link to the service. Click “Create Account”. I again name it after the domain, for the same reason: you might have multiple websites. Specify Ukraine as the country (for some reason, the service loves to default to the US, so double-check). The target platform is “Web”. Click “Create”.

Google Tag Manager integration in the 'Integrations' section of Shop-Express

Creating an account in Google Tag Manager

Account name and country in Google Tag Manager

Creating a 'Web' container in Google Tag Manager

By the way, the Tag Manager interface sometimes displays in a language other than the one set in your Google account. It doesn’t affect functionality, just rely on the button placements.

Google Tag Manager installation code with the GTM container ID

After creation, copy the container ID (in the format GTM-XXXXXXX). It is visible immediately in the installation code window and at the top of the workspace—grab it from wherever is more convenient. Paste it into the Shop-Express integration and save. That’s it, Tag Manager is on the site.

GTM container ID at the top of the workspace

Container ID in the Google Tag Manager integration in Shop-Express

Creating a Google Ads Account

A Google Ads account can be created in two ways. The first is obvious: you search for Google Ads, click “Get started”, and go through registration. The second is straight from Merchant Center. I prefer this method because this way all services are immediately linked to the same email.

Creating a Google Ads account from the 'Ad campaigns' section of Merchant Center

In Merchant Center, open “Marketing” → “Ad campaigns”. There are two options here: create a new account or request access to an existing one. If you already have an account, copy its Customer ID (the ten-digit number in the top right corner of Google Ads), send the request, and approve it inside Google Ads itself. I am creating a new one.

Linking an existing Google Ads account by Customer ID

I usually name it after the store’s name, not the domain. It is more convenient when you have several websites, and emails from Google look more accurate.

New Google Ads account: name, country, time zone, and currency

The currency of the advertising account cannot be changed after creation. Choose the one in which you plan to add funds: hryvnia, dollar, or euro. Make a mistake, and you will have to create a new account.

Next, the system will prompt you to link the account with Merchant Center—click “Link”. Google Ads is created. We will launch the basic campaign a bit later; first, we need to add billing data.

Linking Google Ads and Merchant Center accounts

For comparison: when creating an account directly, Google often immediately asks you to fill out a bunch of texts, upload images, and set up your first campaign. A beginner easily gets lost in this and can get stuck halfway. Through Merchant Center, everything goes much smoother.

If you closed the tab after creation and don’t know how to get into the account, don’t worry. In Merchant Center, open “Access & security” (or “Settings” → “Linked accounts” / “Apps and services”), find Google Ads there, and follow the link.

Link to the Google Ads account in the 'Apps and services' section of Merchant Center

Entering Billing Information

Let’s look at payments in more detail, as there are some specifics for Ukraine here. The first thing you need to choose is how you pay: manual payments or automatic payments.

Choosing a payment setting in Google Ads: manual payments or automatic payments

Manual payments are straightforward: first, you top up your balance, then money is deducted for ads. Automatic payments work differently. You link a credit or debit card, the ads run, and Google charges your card afterward.

For automatic payments, get a separate card just for your advertising account and top it up as needed. First, this protects you from overspending if you make a mistake with the budget. Second, scammers regularly hack accounts with linked cards. While you are recovering access, a large sum could be drained from your primary card, often at night when you can’t even react in time.

Which payment setup should you choose? In my opinion, automatic payments are more convenient: the money is withdrawn automatically, the main thing is to top up the card on time. But some people feel more secure working with manual payments; decide for yourself here. The system will suggest the minimum first payment amount during setup.

Next is the payment method: credit/debit card or money transfer. Everything is standard with a card, no different from paying for Netflix or an Apple subscription. A money transfer works like this: in the account, you click “Make a payment” and receive a PDF invoice. VAT will be included in it regardless of your status. However, there are no limits that sometimes apply to cards, and you can pay however is convenient: via Monobank, PrivatBank, or even at a bank teller.

Payment amount and payment method: money transfer or credit/debit card

Now, the account type. There are two of them:

  • “Organization” — a legal entity (LLC, etc.). Fill in the details strictly according to your corporate documents;
  • “Individual”, which splits into two more options: a regular individual and a private entrepreneur.

Choosing account type: Individual or Organization

Tax information: Private entrepreneur or Individual

A private entrepreneur corresponds to a Sole Proprietorship. For this, you enter your Tax ID (TIN).

Tax status 'Private entrepreneur' and Tax ID field

Do not select the standard “Individual” type if you have a commercial project. It’s not just about VAT: according to Google’s support docs, regular individuals (not sole proprietors or businesses) can only advertise non-commercial activities—charities, volunteer initiatives, etc. This is not suitable for an online store.

In which combinations VAT applies and in which it doesn’t is a topic for a separate discussion, so I won’t dwell on it now. And one more minor thing: if the billing settings window suddenly closes or the page reloads, you can always return to them—both from Google Ads and from Merchant Center.

'Add billing information' reminder in Merchant Center

Creating the “Purchase” Conversion

The advertising account is currently empty, and that’s normal. Our task now is to set up a conversion action in it. Open the “Goals” section.

Google might immediately show a message suggesting you review the Merchant Center link. Click “Manage” and verify it. Everything was already approved for me, yet the message was still hanging there for some reason. It happens.

Linked Merchant Center in the 'Linked accounts' section of Google Ads

Creating a Conversion Action in Google Ads

In “Goals”, click “New conversion action”. Pay attention here: we don’t need “Phone calls”, select “Website”. Add your URL and click “Scan”.

'New conversion action' button in the 'Goals' section of Google Ads

Selecting the 'Website' conversion source in Google Ads

Scanning the website URL for conversion tracking in Google Ads

Google will offer two options: import data from Google Analytics 4 or use the Google tag. We choose the Google tag, then “Install manually”. You can set it up right away or come back to this later. I advise doing everything in the exact same sequence as I do; there’s less chance of getting confused. Though any section is easy to find again later.

Selecting the 'Google tag' data source for website conversions

Choosing the Google tag setup method: 'Install manually'

Google Ads tag ID AW- in the code for manual installation

Installing the Google Tag via Tag Manager

Copy the tag ID and go to Google Tag Manager:

  1. Open “Tags” → “New”.
  2. In “Tag Configuration”, select Google Ads → “Google tag”.
    Selecting the 'Google tag' tag type in Google Tag Manager
  3. Paste the copied ID.
    Tag ID AW- in the Google tag configuration in Tag Manager
    Consent settings for the Google tag in Tag Manager
  4. Save.
    Saving the Google tag with a name in Tag Manager

Now you can click “Test installation” in Google Ads. But first, the container needs to be published, otherwise, the test won’t find anything (I briefly forgot about this myself). After publishing, everything connects. Click “Done” → “Save and continue”.

Testing the Google Ads tag in the browser console after publishing the container

Setting Conversion Parameters

Next, we fill out the settings for the action itself:

  • category — “Purchase”;
    Selecting the 'Purchase' conversion category in Google Ads
  • setup method — manual, using code;
    Creating a conversion manually (with code) in Google Ads
  • action optimization — primary action;
  • conversion name — whatever is convenient for you, for example, “Purchase”;
    Primary action for bid optimization and conversion name 'Purchase'
  • value — use different values for each conversion (the order amount will vary);
    Different value for each conversion in Google Ads settings
  • count — “Every”;
    Count 'Every' in conversion settings
  • click-through conversion window — 30 days;
    Click-through conversion window 30 days
  • attribution model — “Last click”.
    'Last click' attribution model in conversion settings

A separate note about the conversion window. 30 days is suitable for most online stores. However, 90 days makes sense for B2B niches with a long deal cycle. Let’s say you sell industrial refrigeration units: a client might spend a month getting budget approval from a director and only place the order after that.

We’ll skip enhanced conversions for now. Click “Save and continue”, then “See event snippet”. This is the exact data we will need right now.

Enhanced conversions and the 'Done' button

'See event snippet' button for the 'Purchase' conversion

'Purchase' conversion event snippet with ID and conversion label

Setting Up the Conversion Tag in Tag Manager

Return to Tag Manager: “Tags” → “New” → Google Ads → “Google Ads Conversion Tracking”. Fill in the two fields from the event snippet:

  • conversion ID — the numeric code;
  • conversion label — the string of characters that follows it.

Selecting the 'Google Ads Conversion Tracking' tag in Tag Manager

Conversion ID and label in the GTM conversion tracking tag

But this is not enough. For Google to receive the order amount and transaction ID, we need to pass a few more parameters. We take them from the dataLayer, that is, from the data that Shop-Express sends during a purchase.

To see this data, enable “Preview” mode in Tag Manager, paste your website URL, and click “Connect”. The website opens, and we go through the path of a regular buyer: add a product to the cart, select the delivery country, city (I use Kyiv), and place an order.

Connecting Tag Assistant in GTM Preview mode

Placing a test order on the Shop-Express website

Now return to the preview window. Two `purchase` events will appear there. Open either of them and go to the “Data Layer” tab. You will see an `ecommerce` block with all the order information—it is the same in both events.

'purchase' event and the 'Data Layer' tab in Tag Assistant

The ecommerce block with order data in the dataLayer

Based on this data, we create variables of the “Data Layer Variable” type:

  1. Conversion Value → variable `ecommerce.value`.
    Selecting the 'Data Layer Variable' type in Google Tag Manager
    Data Layer Variable ecommerce.value in Google Tag Manager
  2. Transaction ID → variable `ecommerce.transaction_id`.
    Data Layer Variable ecommerce.transaction_id in Google Tag Manager
  3. Currency Code → if the site only uses hryvnia, just type `UAH`. If there are multiple currencies, create the variable `ecommerce.currency`.
    Conversion value, transaction ID, and UAH currency code in the conversion tag

We do not touch the advanced settings. Under triggering, we choose the `purchase` event (a custom event with that name) and save. In the tag firing options, be sure to specify “Once per page” so the conversion is not duplicated. Give the tag a name, for example, “Purchase ADW”, and save.

Selecting the 'Custom Event' trigger type in Google Tag Manager

'purchase' custom event trigger in Google Tag Manager

Tag firing setup in advanced GTM settings

Saving the conversion tag with the name 'Purchase ADW'

Testing If Everything Works

Launch preview mode again and place a test order from start to finish. What should we see? Two `purchase` events, and our tag should only fire on one of them.

The conversion tag fired on the purchase event in Tag Assistant

Open this tag and verify:

  • the transaction ID was pulled;
  • the conversion value matches the order amount;
  • the conversion ID and label match those in the advertising account.

Conversion tag data: transaction ID, value, and conversion label

Everything matches—click “Finish”.

Do not forget to publish the container in Tag Manager! Without publishing, all the settings will remain only in the workspace, and not a single conversion will make it to Google Ads.

So, the basic “Purchase” conversion is ready. And by the way, not all specialists even set this up. But they should: it’s a “native” Google Ads conversion that reaches the account quickly and works best for campaign optimization by artificial intelligence.

Want to go further? There are a few more settings for this goal that will improve both the reports in the account and the algorithm’s performance. More on them below.

Importing a Pre-built GTM Container

Searching for data layer variables and manually creating dozens of tags is not for everyone. So there is an easier way: import a pre-built container with tags, variables, and triggers already configured. It is a standard file that is uploaded to Tag Manager in just a few clicks.

How to do it:

  1. In Tag Manager, go to “Admin” → “Import Container”.
    Importing a container in the 'Admin' section of Google Tag Manager
  2. Click “Choose container file” and upload the file.
  3. Select “Existing” for the workspace.
  4. For import option, choose “Overwrite”.
  5. Confirm.

Choosing the container file, workspace, and 'Overwrite' mode

After importing, you will have the entire set of configurations. You just need to replace a few values with your own.

AW- tag ID in the Google tag of the imported container

The first is the ID in the Google tag. You can find it in two places:

  • in the goal we created: open “Purchase”, scroll down, and click “Manage” → “See event snippet”;
    AW- ID in the 'Purchase' conversion event snippet
  • in the Data Manager: under “Manage” → installation instructions → “Install the tag manually”.
    Tag ID in the installation instructions in Google Ads Data Manager

The second is the purchase conversion tag. Open it and paste your own conversion ID and label. They are found in the same place: “Purchase” → “Manage” → “See event snippet”. Copy only the numbers for the ID, without the AW- prefix, and copy the label entirely, from the first to the last character.

Conversion ID in the Purchase ADs tag after importing the container

Conversion ID and label in the Google Ads conversion tracking tag

Conversion label in the 'Purchase' event snippet

Copy the IDs very carefully. One missed digit—and the conversions simply won’t reach the account. I once lost a single character this way and spent a long time searching for why purchases weren’t being recorded.

What stays the same, and what is worth checking:

  • do not touch the conversion value and transaction ID; the variables are already configured;
  • change the currency code if you don’t use hryvnia;
  • the checkbox for providing product-level sales data must be enabled;
  • in the “Merchant ID” field, enter the ID of your specific Merchant Center.

Providing product data and Merchant Center ID in the conversion tag

The product data (the `items` array) will be pulled in automatically; everything is already configured there.

If there is a separate gtag in the container for ecommerce events, and Shop-Express is already sending them via the GA4 integration, disable or delete that tag. Otherwise, some events will be duplicated, and the statistics in the reports will be inflated.

Google tag integration in Shop-Express with ecommerce via gtag

Save the changes, test everything via preview mode, and do not forget to publish the container.

Testing the Purchase Event Before Launching Ads

The container is imported, the data is swapped out. Now the main thing is to make sure the conversion actually fires. Turn on preview mode in Tag Manager again, connect the website, and go through the entire buyer’s journey: product card → “Buy” → “Checkout” → city Kyiv → “Place order”.

Connecting Tag Assistant to test the purchase event

This time, there will be only one `purchase` event. But that’s not the most interesting part. Open the Google Ads tag for the purchase—there is now significantly more data there than in the basic version. At first glance, it looks like gibberish, but it’s not hard to figure out. You will see:

  • data for enhanced conversions, i.e., the buyer’s email and phone number;
    purchase event with user-provided data in Tag Assistant
  • product information: id, price, quantity.
    Parameters of the 'Purchase' tag in Tag Assistant: transaction, currency, value

You can check the same thing in the “Variables” tab. If the enhanced conversion data is there and being transmitted, everything is working correctly.

Enhanced conversion tracking variables with email and phone

After testing, be sure to go into the “Purchase” conversion settings in Google Ads, turn on enhanced conversions, choose “Google Tag Manager” as the method, and save. Without this step, the account will not use the emails and phone numbers, even if they are being transmitted.

Enabling enhanced conversions in the 'Purchase' conversion settings

Briefly About the Data Collected

Why go through all this trouble with extra parameters? Let me explain.

Emails and phone numbers are currently the foundation for optimization in Google Ads. The system matches them with Google accounts and analyzes how these people behaved before purchasing: what they searched for, what they viewed, what they clicked on. As a result, the algorithm better understands who your buyer is and accurately finds similar people.

But the id, price, and quantity will be needed a bit later. When Performance Max launches, a cross-sell report will become available in your account. It shows which product a person clicked on and what they ultimately bought—complete with names and IDs.

This report is very telling. A situation where one product gets a lot of clicks but no purchases, yet orders come in for something entirely different, happens all the time. For example, you are advertising an expensive coffee machine for 18,000 UAH, but people click through, look around, and buy a capsule machine for 4,500 UAH. Without this data, you would decide the expensive machine “doesn’t work” and turn it off. But in reality, it is bringing in buyers. Plus, Performance Max accounts for this information in its operations.

Want even more? You can additionally set up dynamic remarketing with the correct events, and then the account will be configured practically perfectly. But that is a separate topic, so I will not dwell on it now.

After importing the container, do not forget to replace the data with your own and publish it.

Linking GA4 and Google Ads

Let’s do a quick recap. Products in Merchant Center are under review. Goals are set up in both Google Analytics 4 and separately in Google Ads. Only one small but useful step remains: linking analytics with the advertising account. This way, data about campaigns, UTM parameters, and conversions will accurately sync between both services.

In Google Analytics, go to the Admin section, find Google Ads links, and select your account. The rest is simple: click “Next” → enable both toggles → “Submit”. Afterward, check in Google Ads to make sure the link has appeared. For me, everything synced immediately.

Linking Google Analytics 4 to a Google Ads account

Linked Google Analytics (GA4) in Google Ads Data Manager

Creating a Performance Max Campaign

Alright, let’s move on to the most interesting part. First, we will create Performance Max, and we will cover Google Shopping a little later.

It is again convenient to create the campaign via Merchant Center. Open the “Ad campaigns” section and click “Create campaign”. Next:

Creating a campaign in the 'Ad campaigns' section of Merchant Center

  1. Daily budget — for now, we set it to 10 UAH. This is temporary; we will fix it later in Google Ads itself.
    Daily budget 10 UAH and Performance Max campaign name in Merchant Center
  2. Name — anything, for example, “Pmax”.
  3. When asked about political advertising, answer “No”.
  4. Click “Create campaign”.

Don’t be alarmed if the system says there are no products. They just haven’t passed the Merchant Center review yet.

If you skipped billing data earlier, Google will ask you to fill it out now. For demonstration purposes, I chose money transfer and the “Private entrepreneur, VAT payer” type, and entered a dummy address.

Billing data: tax status, Tax ID, VAT payer, and address

Instructions for payment via money transfer and Google Ads PDF invoice

In a real account, the billing data must be accurate. Google matches it against the information in Merchant Center and may ask for documents to verify the address. Discrepancies are a direct path to suspension or delayed launch.

Click “Finish” → “Go to ad campaign”. Open Google Ads, refresh the page—the Pmax campaign is already there.

PMax campaign in the Google Ads campaign list

Pause the campaign immediately. First, you need to go over the crucial settings, and only then launch it.

Creating a “Feed-only” Campaign, Determining Budget

We are making a Feed-only format campaign. That is, we work exclusively with the product feed: no images, texts, videos, and other assets. We deliberately turn them off. Let the algorithm first learn from the products, and later, if needed, you can add the rest.

This is the most proven option for starting out. Later you can enable the full set of assets, but honestly speaking: for the Ukrainian market, it is far from always useful. Often, the budget just bleeds out into banners on partner sites with low-quality traffic.

The first thing to fix is the budget. How much should you start with?

For Ukraine, the standard benchmark for the learning period is the equivalent of $8–12 a day. Beyond that, it all depends on the projected CPC (which you can check in the Keyword Planner):

  • limited budget and a CPC under 3 UAH — you can start with a minimum amount. But then your analytics must be set up flawlessly, because every conversion is worth its weight in gold;
  • comfortable budget — it is better to allocate more for testing, say, 300–400 UAH a day;
  • CPC from 5–7 UAH and higher — plan for 800–900 UAH a day.

The logic is simple. If a click costs 7 UAH and the budget is 150 UAH a day, the campaign will get a couple of dozen clicks. This is too little for the algorithm to learn, and it could get “stuck” for weeks.

Determining the Bidding Strategy

The next important point is the bidding strategy. In Performance Max, there are two main options to start with: “Maximize Conversions” and “Maximize conversion value”. Which one to choose? It depends on your inventory and average order value.

Choosing a bidding strategy in Performance Max

If most of the products in your catalog cost under 800 UAH, “Maximize Conversions” will almost certainly suit you. In Ukraine, this is the simplest and most stable option. But if the majority of your inventory (specifically the majority of the catalog, not the account average) has a price tag from 3–4 thousand UAH, you can safely launch with “Maximize conversion value”. Eventually, when stats accumulate, you will switch to a Target ROAS.

Now about the nuances of “Maximize Conversions”. In this strategy, you can set a target CPA right away. Do not do this at the start. Until the campaign has collected at least 5–10 conversions, and ideally 15–20, the restriction will only hinder it: you won’t hit it anyway, and the algorithm will learn worse.

The strategy operates by trying to find conversions that are about 10–15 times cheaper than the daily budget. So, keep an eye on the first week. If the campaign has already spent 500–600 UAH and there are no cheap orders, cut the budget in half and give it another week. Or try a different strategy.

Personally, I like working with Target ROAS right from the start. That way, the campaign learns to reach the necessary profitability level from day one. It doesn’t slow down learning or worsen results; it just gives the account clearer “boundaries”, which pays off later. But there is a vital condition: you should calculate your ROAS yourself based on your margin, and not just take the number recommended by Google.

If you prefer to follow the recommendations of Googlers themselves, the most proven options for starting out are still “Maximize Conversions” or “Maximize conversion value”. In short, who fits what:

  • “Maximize conversion value” — for stores with a very diverse price range in their inventory. Start with a small budget, let the system gather 5–10 conversions, and only then try your personal target ROAS;
  • “Maximize Conversions” — when the order value is roughly the same. For example, you sell car paints, items in the same price category, inexpensive impulse buy items, or dropshipping products.

Ultimately, the decision is yours: look at your niche and your numbers.

Specifying the Location

Most of the parameters on this screen can be skipped. But definitely check the location: it should be Ukraine only.

Location 'Ukraine' and the 'Presence' parameter in the campaign

You can leave the whole country, especially since the front line constantly changes. There is usually no significant budget “drain” in temporarily occupied territories. Except maybe in niches like auto parts or electronics components—you should be more careful there.

If you want more precision, use advanced search to target only the regions where you actually deliver. Or use radius targeting. Let’s say you have a store in Zaporizhzhia and you want to reach local buyers: enter the street where your office or pickup point is located and set a radius. The minimum is 1 km, and the maximum is limited only by your budget.

Radius targeting around an address in Google Ads

In the targeting parameters, select the “Presence” option. Especially if you are targeting specific cities or regions, for example, Kyiv and the Kyiv region. This way, you account for people who commute daily from the suburbs or regularly travel between regions.

Targeting options 'Presence or interest' and 'Presence'

To the question about political advertising, we answer “No” once again.

Question about political advertising in the EU in campaign settings

How to Properly Set Languages in the Campaign

For Ukraine, you can leave all languages. It won’t hurt. We have many people who have relocated and use phones with Polish, Hungarian, Spanish, or English interface languages. By restricting it to just Ukrainian, you will simply cut off a segment of your audience.

If you really want to keep things strict, the standard set is Ukrainian, English, and Russian. But, I repeat, “all languages” is a perfectly viable option.

Campaign language settings: 'All languages'

Setting Up Other Options

Next is the “Asset optimization” block. I advise turning almost everything off here for now:

  • image enhancements;
  • video enhancements;
  • text modifications.

Asset optimization: text modifications, image enhancements, and URL expansion

The first two are self-explanatory. Google generates a bunch of automated assets on its own, and to put it mildly, they don’t always look good. It’s better to develop creatives and videos yourself.

The text situation is even more interesting. Automated text modifications often produce Russianisms or just strange words. For instance, instead of “горщики” or “кашпо” (pots/planters), some weird “гіршки” might appear. So, if you are not ready to regularly check what Google has generated at the start, it’s better to leave this option off.

Final URL expansion isn’t as critical. But I would turn it off at the start too. Yes, the Performance Max ends up being quite “stripped down,” but for the initial launch, that is exactly what you need. The restrictions can be lifted later. And one more minor thing: exclude Smart TV placements; they almost never yield sales for an online store.

Final URL expansion in Performance Max settings

The rest of the settings are at your discretion. The foundation described is more than enough. You then regulate traffic volume using the budget: need more traffic—raise it, need less—lower it.

If you need to advertise not the entire catalog, but only a subset of products, go into “All products” in the asset group and split the inventory by attributes: categories, brands, or labels. For example, you can launch a separate campaign just for winter jackets while they are in season.

Subdividing the 'All products' group by category, brand, or label

Setting Up Google Shopping

Now for a standard Shopping campaign. And don’t forget to turn on Performance Max when you are ready to advertise.

The sequence of actions is as follows:

  1. In Google Ads, click “+” → “New campaign”.
    Creating a new campaign in Google Ads
  2. Objective — “Sales”.
    Selecting the 'Sales' campaign objective in Google Ads
    'Purchases' conversion goals for the 'Sales' marketing objective
  3. Campaign type — “Shopping”.
  4. Subtype — “Standard Shopping campaign”.
  5. Ensure your Merchant Center is selected, and click “Continue”.

Set the budget to whatever you are willing to spend. Standard Shopping campaigns are usually launched on the “Maximize clicks” strategy, and here you can change the budget at any time: it does not affect learning in any way. The campaign is quite simple, without complex automation.

Average daily budget and 'Maximize clicks' strategy in a Shopping campaign

The only thing worth setting carefully is the max CPC bid limit. How do you determine it? Open the Keyword Planner, look for the average or closer-to-the-top bid for your niche, and add about a 20% buffer.

Let’s take an example. You sell hoodies. In the planner, you enter “hoodies”, language—Ukrainian, and click “Get results”. In the column with the top of page bid, you see, for instance, 12.82 UAH. We add 20%—which makes it roughly 15 UAH. If there are many search terms, export the report and ask Claude or ChatGPT to calculate the average bid and add a buffer. It will take a minute.

Keyword Planner: bids for the query 'hoodies'

Do not touch the “Customer acquisition” block (bid adjustments to attract more new buyers) at the start: leave the checkbox unchecked.

'Customer acquisition' option in Shopping campaign settings

Campaign priority: if Performance Max is running in parallel, you can leave it at Medium or Low. Again, we do not choose political advertising. Products — “All products” or just the necessary categories. Mine still shows all categories globally because the products are still undergoing review.

Shopping campaign priority: Low, Medium, or High

Selecting product groups by category for a Shopping campaign

It is desirable to add a logo, but if you don’t get to it right now, nothing terrible will happen. That’s it, Google Shopping is ready.

Adding a company logo in the Shopping campaign assets

Pause this campaign as well until the products pass review and you are ready to launch. And after launch, regularly review the search terms report and add irrelevant ones to negative keywords. This is especially important in Shopping, because there are no keywords here and showing up depends entirely on your feed.

Conclusion

Google is currently making its services so user-friendly that business owners can launch ads independently, without a freelancer or agency. And Shop-Express helps immensely with this: integrations with Merchant Center, analytics, and Tag Manager are set up in a few clicks.

Google Tag Manager might take the most time. But with a pre-built container, this stage goes much faster as well. The main thing is to carefully replace the IDs with your own and remember to publish the changes.

And finally. If you go through all the steps in this guide, your Performance Max will be configured better than many stores that come asking for an audit. Honestly, about 60% of specialists skip some of these settings, especially enhanced conversion tracking and passing product-level data. But these are exactly what give the algorithm the information it needs, without which it flies blind.

Google Logist and co-founder of ADWService

Rate author
Adwservice
Add a comment

Yana Liashenko
Yana LiashenkoGoogle Ads AI Architect GoogleLogist
I build Google Ads systems for e-Commerce businesses, where every campaign is not just a set of settings, but part of an architecture that enables profitable scaling.
Sergiy Shevchenko
Sergiy ShevchenkoGoogle Ads Profit Engineer GoogleLogist
I scale eCommerce sales by training Google Ads AI. Sales growth with profitable ROAS and international expansion.