9 steps on how to create a Dynamic Profile • Google Studio

Wojtek Andrzejczak
9 steps on how to create a Dynamic Profile •...

Guide on how to create a Dynamic Profile in Google Studio. It is first to step to build Dynamic Creatives.

Before we start

The presented guide presents a high-level overview of how Dynamic Profile works and focuses on the most critical and problematic parts.

Explanation of how to prepare dynamic creatives for Google Studio specification, how to make Dynamic Feed using Google Spreadsheet, and how to report dynamic creatives will be covered in the upcoming articles.

For all questions regarding explained steps bellow, please write in the comment section below or contact me directly through LinkedIn.

Prepare Dynamic Feed

Google Studio allows multiple data sources, but I’ve found Google Spreadsheet as the most fitting one to my needs. Not only can you create logic to fill all required product combinations, but it also can be a data source for Facebook Dynamic Catalog.

How to prepare Dynamic Feed is an individual case based on the individual client’s needs.

Dynamic Creatives / Dynamic Feed in Google Spreadsheet
Dynamic Creatives / Dynamic Feed in Google Spreadsheet

Share a Google Spreadsheet with Google

To allow Google Studio to access our data, first, we need to share our Google Spreadsheet with both StudioDynamicCreative@system.gserviceaccount.com, studio-dynamic-creatives@google.com email addresses.

Dynamic Creatives / Share Dynamic Feed with Google Studio
Dynamic Creatives / Share Dynamic Feed with Google Studio

Create a new Profile

In Google Studio under the Dynamic Content tab, we need to, first of all, enable our advertiser for dynamic content. Then we’ll be able to create a new profile under our advertiser.

Add new Content

After we give a name to our profile, in the second tab, we need to proceed to step where we will link our Dynamic Feed.

Dynamic Profile / Manage Data / Add new Content
Dynamic Profile / Manage Data / Add new Content

Select and import Dynamic Feed

From the Content source list, we select Google Docs and click on the Chose document button. On top of the list, we should see our document. In the Sheet select list, we chose our Google Spreadsheet sheet, which contains all product combinations we want to import.

Dynamic Profile / Manage Data / Select Dynamic  Feed
Dynamic Profile / Manage Data / Select Dynamic Feed

Define field types

When importing product combinations, the system will redirect you to the next step. One of the most important ones. It depends on how we map fields with a type that is how our profile will work and behave.

I recommend using a minimum ID, Reporting label, and Active fields. The rest of the configuration fields are optional and depend on the specific use case.

Other fields I recommend to set as Text, sometimes there is a problem that number, image URL is in a different format when creatives receive selected product combinations.

Dynamic Profile / Manage Data / Assign Field Types
Dynamic Profile / Manage Data / Assign Field Types

CM dynamic targeting key

It is the most used feature by me. Using this field type, we are able in the Google Campaign Manager under placement add multiple Dynamic Targeting Keys and automatically preselect product combinations by language, context, group, etc.

Remarketing value

Purpose of this field I’ve described in the article. It allows us to use Floodlight U-variables to dynamically control displayed product combinations to the user based on his last visited product on the website.

Verify Dynamic Feed errors

After we complete the step described above after a short time, it is good always to verify our new imported content if it does not include any errors like on the image below.

Dynamic Profile / Transformed content / Missing Dynamic Targeting Keys
Dynamic Profile / Transformed content / Missing Dynamic Targeting Keys

In this case, because we’ve used CM Dynamic Targeting Keys, and on the connected advertiser, we didn’t add new targeting keys.

Add Dynamic Targeting keys

In Google Campaign Manager, we need to add missing targeting keys that exist in our dynamic feed. Don’t forget to press the save button at the top of the page!

Google Campaign Manager / Advertives / Properties / Dynamic Targeting Keys
Google Campaign Manager / Advertives / Properties / Dynamic Targeting Keys

Retransform data from Dynamic Feed

If targeting keys are added, we can now go to the Transformed content section and select a Content source. On the new page, we’ll see the Retransform button. After pressing the button, the system will reload the data from the linked Google Spreadsheet.

Depends how many product combinations we have, it might take up to 2min to reload data and erase errors.

Dynamic Profile / Transformed content / Content Source / Retransform
Dynamic Profile / Transformed content / Content Source / Retransform

Define rules settings

To control which product combination is displayed to the user, we need to define rules.

Dynamic Profile / Manage Rules
Dynamic Profile / Manage Rules

Rule Types

  • Open – (default) doesn’t allow to set any condition, I don’t see any use of it.
  • Auto-filter – allow defining rules, recommended to use for geo-targeting proximity targeting.
  • Prioritized – (recommended) allow defining rules; rules are applied in order from top to bottom. Set order from precise selection to very general.

Rule Rotation

  • Optimized – Over time, the best-performing rows are selected more often. It is essential to make sure our campaign is delivering 2k+ impressions per combination to let Google algorithm work properly.
  • Random – Rows are selected randomly. No logic.
  • Weighted – Rows are selected according to their proportional weight over the total eligible for the impression. Option available if we have any field with a weighted type. Otherwise, the option will not appear.

You can define maximum of 8 rules!

Create custom rules

In the custom rules window, we can define rules, by selecting conditions our business logic requires.

Dynamic Profile / Manage Rules / Create Custom Rules
Dynamic Profile / Manage Rules / Create Custom Rules

Allow rows with empty values

I don’t recommend selecting this option. It might cause many banana problems with logical order. You might end up with not desired combinations display to your user.

Remarketing value

It links Google Floodlight activities with the dynamic feed. The rule will not be applied if the user did not have interaction with the Floodlight (he did not visit the product page).

CM dynamic targeting key

Rule condition requires Google Campaign Manager Placement to have assigned Dynamic Targeting Keys, in our case lang_en and context_prodA.

Prepare dynamic creatives

In the Generate code section, you can copy generated snippet and include in your HTML5 creatives.

Dynamic Profile / Generate Code / Dynamic Content
Dynamic Profile / Generate Code / Dynamic Content

Implement JavaScript code in the dynamic creatives

Despite the dynamic aspect of the creatives, they need to be fully valid with Google Studio specification, which you can learn more here.

The difference between standard and dynamic creatives in Google Studio is only the fact that text, landing page URL, images you receive from the feed instead of hardcoding them statically in the creative.

Check the rules in the preview

After the successful upload of the creatives, it is required to check if everything works on the 6th Preview step.

It might take 1-2h until Google process all changes with uploaded creatives and updated Dynamic Feed. Until then, you might not see available options or white/empty creatives.

Define Reporting Dimensions

You can define the maximum od 6 dimensions where you can define additional reporting information you would like to pass to the campaign report. Feed combination ID, Reporting Label is automatically appended to the campaign report so you can focus on adding information like Landing page URL.

Dynamic Profile / Reporting Dimensions
Dynamic Profile / Reporting Dimensions

Reporting of the dynamic creatives is an entirely different topic and will be covered in a separate article.

Publish changes

In the last step, we can finally publish our Dynamic Profile. You can do this by hitting one of the selected buttons.

Dynamic Profile / Publish
Dynamic Profile / Publish

Send dynamic creatives to QA

After Dynamic Feed is published, you can now send your dynamic creatives to the QA team. You can not do this before.

You should also know

Infinite reload problem

Unfortunately, Google Studio is not the most advanced interface you can work with and has multiple not fixed bugs for many years.

One of the most annoying ones is the situation when you click too fast in the Dynamic Profile. When you enter the profile, you need to wait for 5 seconds or see the 2x “loading” message. Otherwise, you will end up in an infinite loop where you can not navigate anywhere because the system is trying to do something, and it is blocking you from doing anything at this time.

The only solution is to close the tab and enter Studio again. So when you click, don’t rush, take your time.

Long input lag to see changes

Every time you make changes/update Dynamic Feed, it takes up to 2h until Google propagates all changes to all his servers. Until then, you might see white/empty creative or backup image from Google Campaign Manager.

Scheduled updates

Worth to feature to mention is the possibility to auto-update Dynamic Feed. I recommend this once a day at midnight, so whoever is doing changes, they will be available the next day.

Dynamic Profile / Transformed content / Schedule automatic updates
Dynamic Profile / Transformed content / Schedule automatic updates


Everything related to Dynamic Creatives is not simple and not easy to explain. Dynamic behavior means that adjustability and configuration and the final effect is never the same and depends on our approach.

I’ve tried to highlight the most important features and points most important, in my opinion, use cases. But if this does not solve your problem or answer questions you have, please don’t hesitate and contact me directly (LinkedIn). I’ll try my best to help 🙂

Subscribe to receive updates about new articles.

Related articles


Show Comments (5)


  • Dog Backpack

    Hi everyone,
    I really enjoy your site and your work is very interesting.
    I must appreciate your job andefforts.. It is extraordinary.

    Best regards,
    Dinesen Schneider

    • Article Author
    • Reply
    • Wojtek Andrzejczak

      Thank you Dinesen! 🙂

      • Article Author
      • Reply
  • Aldana

    Hi Wojtek !
    First of all, thank you for this great info. It’s really very helpful.
    I have a question and I couldn’t find the answer in the following article (Remarketing attribute). Can you please explain to me how it works in case the stock of the products that I am promoting with dynamic creative using Uvar would run out? Is there any automatic integration to the product feed from an e-commerce site?

    • Article Author
    • Reply
    • Wojtek Andrzejczak

      hello Aldana,
      if you connect Remarketing Attribute with the feed, each time user visits a product where u1=123 (123 is product ID, u1 is the Floodlight U-variable), then Floodlight will link the user with the Feed. Dynamic Profile/Feed will select a matching product with ID 123.

      If your e-commerce has a feed, you could integrate it into the Google Spreadsheet (Dynamic Feed) using Google App Script.

      • Article Author
      • Reply
  • Home warranty

    Hello! I wish to ssay that this post is awesome, great written and come with approximately all important infos.
    I’d ike tto look extra posts like this! 🙂

    • Article Author
    • Reply

Related Articles

Google Studio

What is Remarketing Attribute • Dynamic Creatives

Remarketing Attribute is a part of the Dynamic Content in Google Studio. What it is and how does it work, I’ll explain in this article. What is Remarketing Attribute? In...

Posted on by Wojtek Andrzejczak

7 facts about sandbox attribute • HTML5 iFrame

Learn three facts about the iframe sandbox attribute. What HTML5 IFrame tag is and how you can use the sandbox attribute.

Posted on by Wojtek Andrzejczak