google-marketing-solutions / adios

🚀 Adios: One-stop solution for Google Ads image assets management
Apache License 2.0
31 stars 5 forks source link
appsscript gemini genai google-ads google-ads-api google-cloud typescript vertex-ai

adios logo

Adios: One-stop solution for Google Ads image assets management

GitHub last commit GitHub Release Code Style: Google GitHub License Contributors

https://github.com/google-marketing-solutions/adios/assets/3335483/71be79f8-8393-444f-961a-ced8316df6d2

Overview

Adios is the open-source solution that streamlines your image asset management. Effortlessly upload your existing images in bulk and link them directly to relevant ad groups. Don't have images? No problem! Adios harnesses the power of AI to generate personalized, high-quality images tailored to your specific ad group context, boosting your campaign's visual appeal and performance.

To generate images Adios uses the recent Imagen model on Google Cloud's Vertex AI platform.

Case Study

You can find Adios case study in German (or you can try Google Translate version, just select your preferred language in the top menu).

The Challenge

Google Ads customers with extensive ad group structures often face challenges in managing image assets effectively. Maintaining high-quality, relevant images for thousands, or even millions, of niche ad groups can be a daunting task. The current Google Ads UI lacks the tools to streamline bulk image uploads and management, making the process time-consuming and inefficient. This can hinder marketers' efforts to personalize image extensions and optimize their campaigns at scale.

The Approach

In close collaboration with several advertisers, our team developed a custom solution to address these challenges: Adios.

The Solution

Here are some of Adios's powerful features:

Releases & features

Adios v1.3

Features:

Adios v1.2

Features:

Adios v1.1

https://github.com/google-marketing-solutions/adios/assets/3335483/9be71a1a-43da-49ba-b203-598e797f1d64

Features:

Adios v1.0

Features:

Note: these features can be used separately, e.g. you can just upload images to the assets library (if you don't want to generate images, but only to sync your existing assets with your Google Ads account).

Installation Guide

https://github.com/google-marketing-solutions/adios/assets/3335483/f22172d3-38f1-4fdb-b366-67a33700180e

  1. Make a copy of the template Spreadsheet: Adios v1.3 (in the main menu File > Make a copy). Earlier versions:

  2. Create or use an existing Google Cloud Platform (GCP) project

  3. On the copied Spreadsheet, open Extensions > Apps Script

  4. Go to Project Settings and change the GCP project. Learn how to determine the project number

  5. Fill in the required configuration in the Spreadsheet, as instructed in the comments

  6. Now you can run or schedule the Adios services using the Adios menu

Configuration

Adios' configuration parameters are primarily located in the default "Config" sheet of the template spreadsheet. It is essential to complete the configuration before using Adios.

Mandatory fields:

Other Parameters:

Assets generation

Notes:

https://github.com/google-marketing-solutions/adios/assets/3335483/72db55da-7ed1-47bb-8daf-b61d50fb1ea7

Google Ads API Mocks

Want to try out image generation without real ad groups? Simulate them easily with a spreadsheet:

Adios will treat this as your ad group data for image generation, and you can find the generated images in your GCS bucket under <Your Bucket>/Mock/....

Assets upload and linking to Add Groups

https://github.com/google-marketing-solutions/adios/assets/3335483/da5ed888-38c2-49a2-b53d-1b0926b524c2

Testing performance of the generated assets

Many advertisers want to measure the impact of adding generated assets. This can be properly done only with an A/B test where the traffic is split between:

Adios can create such tests for you in the form of Google Ads Experiments with a click of a button.

How to implement the experiments

https://github.com/google-marketing-solutions/adios/assets/3335483/3c7820a1-6f2e-41e3-8a77-b3204e97d280

As a result you will be able to see newly created experiments in the Experiments section of your Google Ads account.

Keep in mind

  1. Please consider the limitations of Google Ads experiments, especially remember that you can run only one experiment per campaign simultaneously. So if you already have running experiments for the selected campaigns, you won't be able to run a new one for those campaigns. You can check running experiments here.

  2. If you make changes to your original campaign, those changes won’t be reflected on your experiment. Making changes to either your original campaign or experiment while your experiment is running may make it harder to interpret your results.

Using the Validation UI

Adios provides an optional UI for users to check the generated images and approve/reject them before uploading them to the Google Ads account.

https://github.com/google-marketing-solutions/adios/assets/3335483/d3b15133-6f9e-4057-8fd7-b4ac77aff954

You can use it as follows:

  1. Ensure that there is a set Validated DIR in the configuration Spreadsheet (e.g. VALIDATED)

    This is the name for the directory in the GCS bucket, where approved images will be saved. Disapproved images will be saved to the directory specified in Disapproved DIR.

  2. In the Spreadsheet, open Extensions > Apps Script

  3. Click Deploy > Test deployments

  4. Open the URL under Web App

You can click the images pending validation (the ones with the yellow status icon) and approve or reject them using the buttons on the top-right.

Development Guide

If you'd like to make your own changes to the solution or contribute to it, you can run the code as follows:

  1. Follow the steps outlined in our Contributing Guide

  2. Clone this repository

    git clone https://github.com/google-marketing-solutions/adios.git
  3. Go to the newly created folder

    cd adios
  4. Install dependencies

    npm install
  5. Make a copy of the template Spreadsheet

  6. On the copied Spreadsheet, open Extensions > Apps Script

  7. Copy the Apps Script ID. For example:

    script.google.com/[...]/projects/__/edit

  8. Enable the Google Apps Script API (if you haven't done it before) https://script.google.com/home/usersettings

  9. Initialize ASIDE

    npx @google/aside init && rm test/example-module.test.ts
    • Don't replace or overwrite any of the files if asked to

    • When prompted for the Script ID, enter the ID you copied in the previous step

    • (optional) If you would like to have a different environment for development and for production, make another copy of the template Spreadsheet and enter the Apps Script ID when prompted for a Script ID for production environment

  10. Build the code

    npm run build
  11. (optional) Run the UI locally

    It is possible to run the Angular validation UI locally.

    However, the functions which are supposed to run on the Apps Script back-end (google.script.run) cannot run locally, so there is a mock service for API calls (api-calls.mock.service.ts) which mocks API responses (e.g. from Google Ads API) to test locally.

    Start the UI locally by running:

    npm run serve-ui
  12. Deploy to Apps Script

    To deploy to the development environment run

    npm run deploy

    (optional) To deploy to the production environment run

    npm run deploy:prod

Enhanced Triggers

Advertisers with extensive Google Ads accounts often face challenges when processing large numbers of ad groups. Time constraints, like the 6-minute limit on Apps Script execution, can interrupt these tasks.

Adios v1.2 introduces a new approach for our long-running services (like image generation or upload) to tackle this issue:

You can explore the core logic behind this feature in our source code.

Disclaimer

This is not an official Google product.