* Add and incrementally populate a table for google ads campaign cost metrics
* Register dag in dags.yaml
* make two strings match that apparently have to match
* Consistentify another thing in the dag
* Reformat a sql file
* Update sql/moz-fx-data-shared-prod/fenix_derived/google_ads_campaign_cost_breakdowns_v1/metadata.yaml
Add update dependency on upstream table
Co-authored-by: Lucia <30448600+lucia-vargas-a@users.noreply.github.com>
* Small adjustments apropos of review
* Attempt to fix verify-dags-up-to-date
* Evidently there are too many blank lines in the metadata file
* Stop dry running an access denied table
Also raise the line length limit on the linter, which otherwise prevented the needed change
* represent micros more accurately
* Update dags.yaml to include Frank as maintainer
Co-authored-by: Frank Bertsch <frank.bertsch@gmail.com>
* rename ad_clicks
* Update sql/moz-fx-data-shared-prod/fenix_derived/google_ads_campaign_cost_breakdowns_v1/query.sql
Co-authored-by: Frank Bertsch <frank.bertsch@gmail.com>
* Add conversions to columns of output table
* Group stats table by campaign id and date
* Add revenue generating ad clicks and disambiguate that number from marketing ad clicks
* SO IT TURNS OUT, campaigns with the same ID can have different names over time. This associates the appropriate names with each id so we can sum up metrics by campaign rather than by NAME of campaign.
* ./bqetl format /Users/chelseatroy/mozilla/bigquery-etl/sql/moz-fx-data-shared-prod/fenix_derived/google_ads_campaign_cost_breakdowns_v1/query.sql
* Document the fenix campaign identifier
* ./bqetl format
* ./bqetl dag generate bqetl_campaign_cost_breakdowns
* ./bqetl dag generate bqetl_org_mozilla_firefox_derived
Co-authored-by: Lucia <30448600+lucia-vargas-a@users.noreply.github.com>
Co-authored-by: Frank Bertsch <frank.bertsch@gmail.com>
* Dryrun stored procedures
* Reformat SQL
* Update tests for reformatted sql
* Fix doc format again
* Let black run past max-line-length
Black does not mandate line-length, it only tries to adhere to it.
For that reason, we can't have flake8 fail at too-long line length.
https://black.readthedocs.io/en/stable/the_black_code_style.html#line-length
* Why doesn't pydoctest run locally?
* Apply suggestions from code review
Co-authored-by: Anna Scholtz <anna@scholtzan.net>
Co-authored-by: Anna Scholtz <anna@scholtzan.net>