gaarf exporter - Prometheus exporter for Google Ads.
Installation and usage
Locally
- Install
gaarf-exporterfrom pip:
pip install gaarf-exporter
- Run
gaarf-exporter:
gaarf-exporter
Docker
docker run --network=host \
-v /path/to/google-ads.yaml:/google-ads.yaml \
-v `pwd`/gaarf_exporter.yaml:/app/gaarf_exporter.yaml \
gaarf_exporter
docker run --network=host gaarf_exporter \
--config gs://path/to/gaarf_config.yaml \
--ads-config gs://path/to/google-ads.yaml
By default it will start http_server on localhost:8000 and will push some basic metrics to it.
Customization
--ads-config- path togoogle-ads.yamlads-configcan be taken from local storage or remote storage (gs, s3, azure, ssh, stfp, scrp, hdfs, webhdfs).--config- path togaarf_exporter.yamlconfigcan be taken from local storage or remote storage (same as--ads-config).--collectors- names of one or more collectors (separated by comma).--expose-type- type of exposition (httporpushgateway,httpis used by default)--host- address of your http server (localhostby default)--port- port of your http server (8000by default)--delay-minutes- delay in minutes between scrapings (15by default)
Customizing with macros:
Customizing fetching dates
By default gaarf-exporter fetches performance data for TODAY; if you want to
customize it you can provide optional flags:
--macro.start_date=:YYYYMMDD-N, whereNis number of days starting from today--macro.end_date=:YYYYMMDD-M, whereNis number of days starting from today
It will add an additional metric to be exposed to Prometheus *_n_days (i.e.
googleads_clicks_n_days).
Collectors
You can specify collectors with --collectors <collector_name> CLI argument. Some collectors available by default, other you need to specify explicitly.
There are two types of collectors - registry (contains other collectors grouped logically) and collectors themselves.
default registry.
performance- extracts clicks, impressions, cost, conversions on by ad_network and ad_group_idconversion_action- extracts all_conversions by conversion_id and account_idmapping- performance mapping between ad_group_id, ad_group_name, campaign_id, campaign_name, campaign_status, account_id, account_name
disapprovals registry.
ad_disapprovals- extracts approval_status, review_status, topic, topic_type by ad_group_id and ad_id only for not approved adsad_group_ad_asset_disapprovals- extracts approval_status, review_status, topic, topic_type by ad_group_id and asset_id only for enabled assets.sitelink_disapprovals- extracts approval_status, review_status, topic, topic_type by asset_id, sitelink_title and both sitelink descriptions only for not approved sitelinks.pmax_disapprovals- extracts approval_status, review_status, topic, topic_type by asset_id, asset_group_id for active asset group assets.
app registry.
app_campaign_mapping- performs mapping between campaign_id, app_id, app_store, and bidding_strategy only for active campaigns.app_asset_mapping- performs mapping between asset_id and its type, source, and content (name, text, video_id) only for app assets (HTML5, TEXT, IMAGE, VIDEO).asset_performance- extracts clicks, impressions, cost, installs, inapps, and conversions_value by ad_group_id, ad_network and asset_idasset_perf_label- extracts performance_label by ad_group_id and asset_id
pmax registry.
pmax_mapping- performs mapping between asset_group_id, asset_group_name, and meta information on campaign and account only for active campaigns and enabled asset groups.pmax_performance- extracts clicks, impressions, cost, installs, inapps, and conversions_value by asset_group_id.pmax_disapprovals- extracts approval_status, review_status, topic, topic_type by asset_id, asset_group_id for active asset group assets.
search registry.
search_terms- extracts clicks, impressions, cost, conversions on by search_term and ad_group_idsearch_terms_conversion_split- extracts all_conversions by search_term and conversion_id on ad_group_id levelkeywords- extracts clicks, impressions, cost, conversions, and historical auality_score by keyword and match_type on ad_group level.keywords_conversion_split- extracts all_conversions by keyword and match_type on ad_group level.
placements registry.
placements- extracts clicks, impressions, cost, conversions on by placement_name and placement_type for each account.placements_conversion_split- extracts all_conversions by placement_type and placement_type for each account.
demographics registry.
age- extracts clicks, impressions, cost, conversions by age_range and campaign_idage_conversion_split- extracts all_conversions by age_range and conversion_id on campaign_id levelgender- extracts clicks, impressions, cost, conversions by gender and campaign_idgender_conversion_split- extracts all_conversions by gender and conversion_id on campaign_id level
geo registry.
user_location- extracts clicks, impressions, cost, conversions by country_id and campaign_id only for active campaigns.user_location_conversion_split- extracts all_conversions by country_id and campaign_idonly for active campaigns.
collectors without registry.
bid_budgets- extracts current values of bid (target_cpa, target_roas) and campaign budgets.bids- extracts current values of bid (target_cpa, target_roas).budgets- extracts current values of campaign budgets.account_status- extracts customer_status for each account.campaign_service_status- extracts primary_status for each campaign.
Metadata
Release files for gaarf-exporter 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gaarf_exporter-1.2.1.tar.gz | 28.4 kB | Without provenance | Details for gaarf_exporter-1.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gaarf_exporter-1.2.1-py3-none-any.whl | Python 3 | none | any | Details for gaarf_exporter-1.2.1-py3-none-any.whl |
Total release size: 55.3 kB
Release files / gaarf_exporter-1.2.1.tar.gz
| Download URL | gaarf_exporter-1.2.1.tar.gz |
|---|---|
| Size | 28.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11afb33e8e022bafb8e3457f172f74ded7b765200b7067fb58a3b005b4fd9d05
|
|
BLAKE2b-256 checksum How to use checksums |
20d971da30c963ab49dfff5f76c0e85f084978ebcd2a4bbdfa16bff0350cbb1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|
Release files / gaarf_exporter-1.2.1-py3-none-any.whl
| Download URL | gaarf_exporter-1.2.1-py3-none-any.whl |
|---|---|
| Size | 26.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
17ceb2936b746cbee9888ecdf29be2d6f7294c153235843b138612ac9d2d4c27
|
|
BLAKE2b-256 checksum How to use checksums |
b3b0ee8b2a8d400cf32a44a443adcdb2a2c0550b5e57ea87681df1e00c04e953
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|
Security for gaarf-exporter 1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.