Git Product home page Git Product logo

assetmg's Introduction

assetMG

Centralized asset management platform for UAC

Disclaimer

This is not an officially supported Google product.

Copyright 2021 Google LLC. This solution, including any related sample code or data, is made available on an “as is,” “as available,” and “with all faults” basis, solely for illustrative purposes, and without warranty or representation of any kind. This solution is experimental, unsupported and provided solely for your convenience. Your use of it is subject to your agreements with Google, as applicable, and may constitute a beta feature as defined under those agreements. To the extent that you make any data available to Google in connection with your use of the solution, you represent and warrant that you have all necessary and appropriate rights, consents and permissions to permit Google to use and process that data. By using any portion of this solution, you acknowledge, assume and accept all risks, known and unknown, associated with its usage, including with respect to your deployment of any portion of this solution in your systems, or usage in connection with your business, if at all.

Contact: [email protected]

Alt Text

Why?

Managing creative assets across accounts in Google Ads App campaigns is done manually as the assets are only accessible at the Ad group level. There is no way to make broad, bulk, cross campaign changes and there is also no asset-centric view of the account currently in Google Ads. All the above makes managing create assets in app campaigns very tedious and a waste substantial amounts time

What?

A centralised GUI platform for cross account assets management to enable adding, assigning and removing assets to any ad group and campaign in an easy, quick and bulk fashion. AssetMG can be deployed as a local app on each of the user’s machines or as a web app deployed on a single cloud project. It is easy to deploy, easy to use, friendly and straightforward - saving marketing teams hours each week and helping them manage their creative assets, making the most out of their app campaigns.

Requirements

Setup

Recommended way

For simplest installation experience we recommend using the following commands on supported platforms (Windows, MacOS, Linux (Debian)).

Installation

Execute a following command in a folder under which you want to have AssetMG installation. E.g. the user's home.

Windows: put the command into cmd.exe ran as administrator Guide

powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;[System.Net.ServicePointManager]::SecurityProtocol = 'Tls,Tls11,Tls12'; iwr -Uri 'https://raw.githubusercontent.com/google/assetMG/master/scripts/setup_windows.ps1' -UseBasicParsing|iex"

or if you're in PowerShell (should be ran as administrator as well):

(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;[System.Net.ServicePointManager]::SecurityProtocol = 'Tls,Tls11,Tls12'; iwr -Uri 'https://raw.githubusercontent.com/google/assetMG/master/scripts/setup_windows.ps1' -UseBasicParsing|iex

NOTE: the scripts will fail if executed in non-administative command/PS prompt.

⚠️ On Windows if you're running script directly in PowerShell then you need to make sure script execution is enable (Get-ExecutionPolicy doesn't return "Restricted"). If it's not you'll get an error "File ..ps1 cannot be loaded because running scripts is disabled on the system.". To overcome this either change the execution policy via Set-ExecutionPolicy -ExecutionPolicy RemoteSigned or run scripts via cmd (with powershell -ExecutionPolicy Bypass "PS commands").

☝️ to quickly run PowerShell prompt in a folder of choice just go to that folder in Windows Explorer then click "Open Windows PowerShell as administrator" in File menu in the Explorer's ribbon.

MacOS:

curl https://raw.githubusercontent.com/google/assetMG/master/scripts/setup_macos.command | bash -s

Linux:

curl https://raw.githubusercontent.com/google/assetMG/master/scripts/setup_linux.sh | bash -s

Google Cloud (AppEngine):

  • Create a new cloud project
  • Open cloud shell. Make sure your new project is selected (gcloud config set project your-project)
  • Run the following command and follow the installation wizard.
curl https://raw.githubusercontent.com/google/assetMG/master/scripts/deploy_cloud.sh | bash -s
  • Once the app is deployed, you should see the url to access it.
  • Alternatively, run "gcloud app browse" to open your app or get the URL.
  • Before using the app, add the app's URL to the Authorized JavaScript origins for your OAuth2 client. (see OAuth2 steps to create client-id/client-secret for a web app)
  • In your OAuth consent screen, make sure that User Type is set to "internal" to restrict access to only users in your organization. For extra security, you can set up firewalls to make the app accessible only from specific IP adresses. Firewalls for AppEngine

Using YouTube Channel Uploads (optional)

AssetMG has a feature that allows bulk upload of videos from any YouTube channel to your Google Ads account.

  • In the cloud project where you created your oauth2 credentials, look for YouTube Data API v3 and enable it
  • In the assetMG UI, after logining in, click the settings button and click on "YouTube Config" tab
  • Enter your any channel ID and click "Update" (You can change the channel at any time)
  • If you are an owner in this channel you will see both unlisted and public videos, else you will only see public videos.
  • Now when uploading a video asset, you can choose "Choose From Channel" and select all the videos you want to upload.

Running the app

After a setup script completes all you need to do is run a "run" script from within AssetMG folder:

  • Windows: win_run.cmd
  • MacOS: AssetMG.command (double-clickable)
  • Linux: run_unix.sh

On Windows the setup script creates a shortcut on the desktop (AssetMG.lnk).

Advanced/manual way

This section contains all technical details about installing in case you either want to understand it thoroughly or setup scripts aren't suitable for you for any reason. Normally we'd suggest using the setup script from Recommended way.

Basically all you need to run the app is:

  • have/install Python >=3.7
  • have/install NodeJS (compatible with Angular cli's version used in the project - see in front-end folder)
  • clone the repo from GitHub (https://github.com/google/assetMG.git)
  • install server (Python) dependencies via pip (still the recommended way to do it in a virtual environment)
  • Optional - build frontend locally (compiled FE is already in repo):
    • install front-end (npm) dependencies via npm install
    • build Angular app (run ng build in app/asset_browser/frontend)
  • run python3 main.py to start the backend

The setup scripts do the heavy-lifting on checking for installed software (Python, Git, NodeJS), their versions (we need Python 3.7 or later), install missing components, etc.

The setup scripts install Python globably if it finds that currently installed version is below 3.7. If you need to keep you global version we recommand using pyenv:

curl https://pyenv.run | bash
pyenv install 3.7.7
pyenv global 3.7.7

After that you'll need to execute pyenv init to get instructions on how to update your shell config.

A similar approach exists for NodeJS - to keep your current global NodeJS use NVM.

If we leave aside installion of required software (you can do it in whatether way you want), to setup and run the app for the first time execute the following block in the Terminal in a folder with cloned repository:

python3 -m venv .venv
. .venv/bin/activate
pip3 install -r requirements.txt
cd app/asset_browser/frontend
npm install
node_modules/.bin/ng build
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
python3 main.py

For Windows, the only difference will be is how you activate venv: .venv\Scripts\activate.bat (instead of . .venv/bin/activate), all other steps are the same (though exports commands are not needed).

Steps Breakdown

  1. Open Terminal/CMD and navigate to the folder where you cloned the GitHub repositoty.

  2. Create a virtual environment virtualenv to isolate the Python environment and libraries:

python3 -m venv .venv

then, for mac/linux:

. .venv/bin/activate

for windows:

.venv\Scripts\activate.bat
  1. Install required Python packages:
pip3 install -r requirements.txt
  1. Build the front-end app (optional)
cd app/asset_browser/frontend
npm install
node_modules/.bin/ng build
  1. Run the app
python3 main.py

if you get the following error:

ValueError: unknown locale: UTF-8

Please enter these lines in the console:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Running the App

After the first installation, in order to run the app just open the terminal/console, navigate to the app's directory and:

For MacOS/Linux, copy the following block and paste in the Terminal:

. .venv/bin/activate
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
python3 main.py

For Windows, copy the following block and paste in the Console:

.venv\Scripts\activate.bat
python3 main.py

But each time you update the repository (git pull) you'll need to reinstall Python (pip3 install -r requirements.txt) and npm dependencies (npm i), and rebuild Angular app (ng build).

Managing Universal App Campaigns' assets.

Choose an account from the accounts list on the top. You will get a view of all the assets under that account. Use the filter and search bars at the top to look for assets. Once you click on an asset, you can browse the different camapiagns and adgroups and choose to which adgroups you want to assign/remove the asset to. Once you done, click the 'Update' button, and move on to the next asset.

assetmg's People

Contributors

aylon11 avatar evil-shrike avatar mariamnyoussef avatar slony avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

assetmg's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.