Skip to main content

AI Creative Concept Analysis library

Project description

Filonov library & CLI tool

PyPI

Prerequisites

Installation

pip install filonov

Install filonov with UI support to have a visual way of file generation pip install filonov[ui]

Usage

Run filonov based on one of the following sources:

Alternatively run filonov-ui to generate files in an interactive UI.

filonov supports three main modes determined by the --source argument:

  • googleads - fetch all assets from a Google Ads account / MCC.
  • file - fetch all assets with their tags and metrics from CSV files
  • youtube - fetch public videos from a YouTube channel.

Google Ads API

filonov --source googleads --media-type <MEDIA_TYPE> \
  --db-uri=<CONNECTION_STRING> \
  --tagger=<TAGGER_TYPE> \
  --googleads.ads_config_path=<PATH-TO-GOOGLE-ADS-YAML> \
  --googleads.campaign-types=<CAMPAIGN_TYPE> \
  --googleads.account=<ACCOUNT_ID> \
  --googleads.start-date=YYYY-MM-DD \
  --googleads.end-date=YYYY-MM-DD  \
  --size-base=cost \
  --trim-tags-threshold <TAG_TRIM_THRESHOLD> \
  --parallel-threshold <N_THREADS> \
  --output-name <FILE_NAME>

where:

  • <MEDIA_TYPE> - one of IMAGE or YOUTUBE_VIDEO
  • <CAMPAIGN_TYPE> - all possible combinations app, pmax, demandgen, display, video separated by commas.
  • <TAGGER_TYPE> - one of possible media taggers listed here
  • <ACCOUNT_ID> - Google Ads Account Id in 1234567890 format. Can be MCC.
  • <CONNECTION_STRING> - Connection string to the database with tagging results (i.e. sqlite:///tagging.db). Make sure that DB exists.

    To create an empty Sqlite DB call touch database.db.

  • <PATH-TO-GOOGLE-ADS-YAML> - path to google-ads.yaml.
  • <TAG_TRIM_THRESHOLD> - Remove all tags with score lower than provided threshold.
  • <FILE_NAME> - Path to store results of running filonov. By default results are stored in the same folder where filonov is run, but you can provide any custom path (including remote one).

Examples

  1. Analyze all images in App campaigns for the last 30 days
filonov --source googleads --media-type IMAGE \
  --googleads.campaign-types=app \
  --googleads.account=<ACCOUNT_ID>
  1. Analyze all images in DemandGen campaigns for the January 2025
filonov --source googleads --media-type IMAGE \
  --googleads.campaign-types=demandgen \
  --googleads.start_date=2025-01-01 \
  --googleads.end_date=2025-01-31 \
  --googleads.account=<ACCOUNT_ID>
  1. Save results to Google Cloud Storage
filonov --source googleads --media-type IMAGE \
  --googleads.campaign-types=app \
  --googleads.account=<ACCOUNT_ID> \
  --output-name gs://<YOUR_BUCKET>/filonov

In order to use filonov for tagging YOUTUBE_VIDEO in Google Ads account (with parameters --source googleads --media-type YOUTUBE_VIDEO) you need to be a content owner or request data only for publicly available videos. Alternatively if you have access to video files you can perform media tagging before running filonov. Check media-tagging README for more details.

Local files

filonov --source file --media-type <MEDIA_TYPE> \
  --db-uri=<CONNECTION_STRING> \
  --tagger=<TAGGER_TYPE> \
  --file.path=<PATH_TO_CSV_WITH_PERFORMANCE_RESULTS> \
  --file.media_identifier=<COLUMN_WITH_MEDIA_URL> \
  --file.media_name=<COLUMN_WITH_MEDIA_NAME> \
  --file.metric_names=<COMMA_SEPARATED_METRICS_IN_FILE> \
  --size-base=cost \
  --parallel-threshold <N_THREADS> \
  --output-name <FILE_NAME>

where:

  • <MEDIA_TYPE> - one of IMAGE, VIDEO or YOUTUBE_VIDEO
  • <TAGGER_TYPE> - one of possible media taggers listed here

tagger can be omitted - in that case filonov will search any loaded tagging data in provided database.

  • <CONNECTION_STRING> - Connection string to the database with tagging results (i.e. sqlite:///tagging.db). Make sure that DB exists.

    To create an empty Sqlite DB call touch database.db.

  • <PATH_TO_CSV_WITH_PERFORMANCE_RESULTS> - path to csv file containing performance results.
  • <COLUMN_WITH_MEDIA_URL> - column name in the file where media urls are found (defaults to media_url).
  • <COLUMN_WITH_MEDIA_NAME> - column name in the file where name of media is found (defaults to media_name).
  • <COMMA_SEPARATED_METRICS_IN_FILE> - comma separated names of metrics to be injected into the output.
  • <FILE_NAME> - Path to store results of running filonov. By default results are stored in the same folder where filonov is run, but you can provide any custom path (including remote one).

Examples

  1. Get performance data from performance.csv file and search for tags in provided DB.
filonov --source file --media-type IMAGE \
  --file.path=performance.csv \
  --db-uri sqlite:///tagging.db
  1. Get performance data from performance.csv file and perform tagging with gemini tagger.
filonov --source file --media-type IMAGE \
  --file.path=performance.csv \
  --tagger gemini

YouTube Channel

filonov --source youtube \
  --db-uri=<CONNECTION_STRING> \
  --youtube.channel=YOUR_CHANNEL_ID \
  --parallel-threshold 10 \
  --output-name <FILE_NAME>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

filonov-0.10.1.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

filonov-0.10.1-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file filonov-0.10.1.tar.gz.

File metadata

  • Download URL: filonov-0.10.1.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for filonov-0.10.1.tar.gz
Algorithm Hash digest
SHA256 d036b3c414dea68408dbac749893432d1ed8becbd652b0b538b76d9eadc0e41e
MD5 36fb38bbc0b22515d0d5e2bd74c3748f
BLAKE2b-256 199193462e5657a41cab8fbcc63ef65f9e36e55624b4a9ce5b7fd1f04726cb00

See more details on using hashes here.

File details

Details for the file filonov-0.10.1-py3-none-any.whl.

File metadata

  • Download URL: filonov-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for filonov-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ebdeeaa280880658943aa8a3e806bf5dcc771612770f8c48a755b4f86e21672
MD5 9773abdef2b3ed1ad49ea470a67b77e9
BLAKE2b-256 fc413d820f8811d5942e1d0b5dbc84cbb4a9f0177e95b3dc8f9e8ceb62f27387

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page