In this README, you'll find:
- Problem Statement
- Solution
- Installation
- Prerequisites
- Deliverable (Implementation)
- Architecture
- Troubleshooting / Q&A
- Community Support
- Disclaimer
Reporting for Demand Gen campaigns is cumbersome and advertisers need a simple way to see an overview of their accounts and get a clear picture of their campaigns and assets' performance.
DG-Pulse is a best practice dashboard that provides a centralized monitoring of DemandGen campaigns' performance and the assets uploaded. Built in Looker Studio, It helps clearly identify if the campaigns and assets comply with the best practice guidelines and gives actionable insights to enhance asset groups' and feed quality.
Moreover, assets' performance is displayed and conveniently presented so advertisers can refresh poorly performing assets.
A Looker Studio dashboard based on your Google Ads and You Tube data. After joining this group, click here to see it in action.
- LookerStudio dashboard based on your Google Ads and You Tube data.
-
Join this group
-
Obtain a Developer token
a. This can be found in Google Ads on the MCC level
b. Go to Tools & Settings > Setup > API Center. If you do not see a developer token there, please complete the details and request one.
c. By default, your access level is 'Test Account'; please apply for 'Basic access' if you don't have it. Follow these instructions
-
Create a new Google Cloud Project on the Google Cloud Console, make sure it is connected to a billing account
To do your first installation, click on the blue Deploy button and follow the instructions:
If you have already installed it before, in order to upgrade to the latest version of the code, execute (copy to the Google Cloud shell and press enter) the following commands:
cd dgpulse
./install-or-upgrade.sh
Notice that this will not change the Looker Studio template. Only the code. In order to get the latest version of the template, go to this link, make a copy of it and point the data sources to your own GCP's BigQuery.
https://services.google.com/fh/files/misc/dgpulse-arch-7.jpeg
You do not need any technical skills to deploy the dashboard as it’s fully driven by clicks and “copy and paste” commands. However, you do need the Owner level permission in the Google Cloud project you’re deploying it to.
- Storage
- Scheduler
- Workflows
- Run
- BigQuery (Datasets and Data Transfer)
If the deployment was unsuccessful please follow these steps to try and troubleshoot:
- Check that all credentials in the google-ads.yaml are correct:
- In The Google Cloud Platform, under the project you deployed DG-Pulse too, Click the “Activate Cloud Shell” icon:
- Click the “Open Editor” icon:
- In the File System, find the dgpulse directory.
- In the dgpulse directory, find the google-ads.yaml file and click on it.
- Review the credentials in the google-ads.yaml file. Make sure that they are correct, and that there are no quotation marks before any credential.
- Check that the login_customer_id is all digits, with no dashes (i.e: 123456789 and not 123-456-789)
- If you find a mistake, edit it in place and be sure to save, and follow the next steps. If not, please refer to “How do I see logs from my deployment?” in the next section.
- Click the “Open Terminal” icon:
- In the Cloud shell, copy and paste the green code, and press the Enter key when specified:
cd dgpulse
Press Entersh upgrade-version.sh
Press Enter
- After the run finishes (may take 15-30 minutes) Check the dashboard URL to see if the deployment succeeded. (you can see instructions on how to find the dashboard URL in this document).
- In the Google Cloud Platform, under the project you deployed DG-Pulse too, click on the “Search” bar in the central upper part of the screen
- Type “Logs Explorer” in the search bar and click on the following:
You can find the dashboard_url.txt file in the folder of the cloned repository or in your GCS bucket. Please see these instructions on how to access the URL through the cloud shell:
- In The Google Cloud Platform, under the project you deployed too, Click the “Activate Cloud Shell” icon:
- In the Cloud shell, copy and paste the green code, and press the Enter key when specified:
cd dgpulse
Press Entercat dashboard_url.txt
Press Enter
The dashboard URL should then appear in the Shell.
Your Access Token has to have "Basic Access" or "Standard". Level "Test Account" will not work:
After clicking the dashboard URL for the first time, you will see the LookerStudio dashboard. In order to save and share it you need to follow these steps:
- On the upper right side of the screen, click "Save and Share"
- Review the Credentials permissions of the different data sources. If you would like to give other colleagues permission to view all parts of the dashboard, even if they don’t have permissions to the Google Cloud Project it was created in, you need to change the credentials to Owner’s.
- To change the credentials to Owner’s, you need to click Edit on the very most right column:
- Click on Data Credentials:
- Choose Owner’s credentials, and then Update:
- Click Done on the upper right.
- Do this for all data sources in the Dashboard.
- Click “Save and Share” again, and “Acknowledge and save”
- Click “Add to Report”.
- On the upper right, Click Share: to share with teammates.
### How much does it cost? It heavily depends on how much data you have and how often it's used. If you check the Architecture of Components section, there are 5 cloud components: Run, Scheduler, Workflows, Storage and BigQuery. For a large amount of data (e.g. thousands of accounts, campaigns and assets), we do not expect more than 10-15 USD/month in Google Cloud, mainly driven by Big Query.
Please find this Looker Studio tutorial.
If you’re a google workspace user: Internal If you’re not a google-workspace user: External. You should be ok to use it in "Test mode" instead of requesting your app to be approved by Google.
How do I modify the results I get the dates of the data being pulled / how do I modify the hour the data is getting pulled?
You can modify the answers.json file. In the GCP, open the cloud shell.
Yes! You can just change the ads_macro.start_date in answers.json file (shown above) while deploying to a value that covers the dates where the campaigns were active. By default it sets start_date to 90 days ago.
Can I deploy it in an existing Cloud Project or do I need to create a new one just for this dashboard?
You can use an existing Project if you want to. However, please remember that the best practice for clients is to create a new project dedicated to this solution (or any new solution).
Please refer to the folder google_ads_queries.
For convenience, here's an SQL script you can run after all bigquery tables have been created:
UPDATE `dgpulse_ads_bq.account_conversion_action`
SET
account_name = CONCAT(
SUBSTRING(account_name, 1, 2),
'xxxxx',
SUBSTRING(account_name,LENGTH(account_name), LENGTH(account_name)))
WHERE account_name IS NOT NULL;
UPDATE `dgpulse_ads_bq.campaign_data`
SET
account_name = CONCAT(
SUBSTRING(account_name, 1, 2),
'xxxxx',
SUBSTRING(account_name,LENGTH(account_name), LENGTH(account_name))),
campaign_name = CONCAT(
SUBSTRING(campaign_name, 1, 2),
'yyyyyyyyyyy',
SUBSTRING(campaign_name,LENGTH(campaign_name), LENGTH(campaign_name)))
WHERE account_name IS NOT NULL;
UPDATE `dgpulse_ads_bq.campaigns_assets_count`
SET
account_name = CONCAT(
SUBSTRING(account_name, 1, 2),
'xxxxx',
SUBSTRING(account_name,LENGTH(account_name), LENGTH(account_name))),
campaign_name = CONCAT(
SUBSTRING(campaign_name, 1, 2),
'yyyyyyyyyyy',
SUBSTRING(campaign_name,LENGTH(campaign_name), LENGTH(campaign_name)))
WHERE account_name IS NOT NULL;
UPDATE `dgpulse_ads_bq.audience_performance`
SET
account_name = CONCAT(
SUBSTRING(account_name, 1, 2),
'xxxxx',
SUBSTRING(account_name,LENGTH(account_name), LENGTH(account_name))),
audience_name = CONCAT(
SUBSTRING(audience_name, 1, 2),
'xxxxx',
SUBSTRING(audience_name,LENGTH(audience_name), LENGTH(audience_name))),
campaign_name = CONCAT(
SUBSTRING(campaign_name, 1, 2),
'yyyyyyyyyyy',
SUBSTRING(campaign_name,LENGTH(campaign_name), LENGTH(campaign_name)))
WHERE account_name IS NOT NULL;
If you can’t find an answer for your question/a solution to your problem here, please post your question in our public group.
** This is not an officially supported Google product.**
Copyright 2024 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.