Pladomate does 4 simple things:
- Connects to your Google Ads Account and downloads active placements report for the past 7 days
- Extracts Domains and sends them to Open Page Rank API for page rank evaluation
- Attaches the results of the OPR API with the domain report
- Based on the set criteria it sends the domains to be excluded in Google Ads on the Account level
And these allow you to automatically evaluate all the placements where your ads showed in the past 7 days and if they're of low page rank or underperforming - you can exclude them from targeting options on the account level.
The Pladomate.py
is just a python/terminal based control file that provides some control and options for the script implementation.
The future goal is to create a Flask based web app that will do this all in a browser with a nice UI.
Google Ads Client - User & Account ID is set in the googleads.yaml
file.
Pladomate creates the Google Ads client int the Pladomate.py
file in this line:
adwords_client = adwords.AdWordsClient.LoadFromStorage()
The LoadFromStorage
method takes the location of googleads.yaml
as an argument. Empty argument, signifies that the method will search for the googleads.yaml
file on the default location.
Get an empty googleads.yaml
file here.
The report report definition is found in the download_active_placements_gads.py
file.
By default Pladomate downloads several metrics and account details for the past 7 days.
To edit the scope of the report edit the ReportQueryBuidler()
method.
OPR API is provided thanks to DompCop.
It is the only free API I could find to get some stats on the domains rating and rank.
I'd like to try and use SEMRush, MOZ or Ahrefs API but all three of them are not available for free.
The whole script is prepared to exclude domains based on the:
- Domain Page Rank or
- Performance
Evaluation criteria that define which domains are to be excluded can be found in the process_api_results.py
file in extract_domains_to_exclude
method:
df_extracted = df_with_all_stats.loc[df_with_all_stats['page_rank_decimal'].values <= 4.5]
df_extracted = df_with_all_stats.loc[df_with_all_stats['rank'].values >= 50000]
df_extracted = df_with_all_stats.loc[df_with_all_stats['Impressions'].values > 1500]
df_extracted = df_with_all_stats.loc[df_with_all_stats['Conversions'].values == 0]
The df_extracted
is the Pandas dataframe that includes all the downloaded stats from Google Ads and ranks from OPR.
Any other custom qualification can be added with:
df_extracted = df_with_all_stats.loc[df_with_all_stats['ANYTHINGELSE'].values =<> ]
Yes beware, the scripts excludes placements on the Account Level in defined Google Ads client.
All tweaks, contributions and enhancements are welcomed.