Apache Airflow
Running Arba in Apache Airflow is easy.
You'll need to provide three arguments for running DockerOperator inside your DAG:
/path/to/google-ads.yaml- absolute path togoogle-ads.yamlfile (can be remote)service_account.json- absolute path to service account json file
Example DAGs
Getting configuration files locally
Important
Don't forget to change /path/to/google-ads.yaml, path/to/service_account.json
valid paths.
from airflow import DAG
from datetime import datetime, timedelta
from airflow.providers.docker.operators.docker import DockerOperator
from docker.types import Mount
default_args = {
'description' : 'arba',
'depend_on_past' : False,
'start_date' : datetime(2026, 3, 1),
'email_on_failure' : False,
'email_on_retry' : False,
'retries' : 1,
'retry_delay' : timedelta(minutes=5)
}
with DAG(
'arba',
default_args=default_args,
schedule_interval="0 0 * * *",
catchup=False) as dag:
app_reporting_pack = DockerOperator(
task_id='arba_docker',
image='ghcr.io/google-marketing-solutions/arba:latest',
api_version='auto',
auto_remove=True,
command=[
"-c", "/google-ads.yaml",
"-a", "GOOGLE_ADS_ACCOUNT",
],
environment={
'GEMINI_API_KEY': GEMINI_API_KEY,
'GOOGLE_CLOUD_PROJECT': GOOGLE_CLOUD_PROJECT,
},
docker_url="unix://var/run/docker.sock",
mounts=[
Mount(
source="/path/to/service_account.json",
target="/app/service_account.json",
type="bind"),
Mount(
source="/path/to/google-ads.yaml",
target="/google-ads.yaml",
type="bind"),
]
)