Glossary

Platform

In the context of reporting in PPC Robot: an on-line marketing platform, e.g. AdWords or Sklik.

Service Account

User’s management account to external service in one of the Platforms, e.g. AdWords or Sklik. Credentials to access the API on behalf of the user is stored in the database.

The service account itself is not supposed to contain any PPC campaigns, it is only a bunch of credentials that is used to access other accounts.

Service Account has one or more client accounts that are loaded and updated on regular intervals (currently set to every 6 hours).

Client Account

Account managed by user, which contains PPC campaigns in the external service.

If the users Service Account is not a management account and contains the campaigns, Service Account will have a single Client Account whose name and ID will be equal.

Client

User-defined group of Client Accounts that forms a single client/website. User can combine accounts from multiple Platforms. User can define goals in each group (target PNO/ROAS, CPA, budgets, …) and setup Robots.

Job

A that is created by user. The job runs at intervals specified by user.

Job can be tied to a concrete Client Account (client-account job) or to whole Service Account (service-account job). Service-account jobs

A Job has many to one relation to Job Definition.

The generic term “job” is used because in the future, the PPC Robot might get extended with additional functionality that is not a report.

Job Definition

Parameters defining a job: Task Type + Task Type Version, output type (XLS, Google Sheets), schedule and task-type specific parameters (e.g. which fields should be included in the report).

The task-type specific parameters is defined by a dictionary with string keys (stored as a JSON object).

Multiple reports can share a single job definition. This enables user to perform mass updates, e.g. to add a new field to multiple reports at once.

PPC Robot enables user to update a single job (or multiple jobs): in this case, Job Definition is copied, updated and jobs are linked to the new definition. Old definition remains intact.

Job Type
Task Type
Report Type

A type of job, e.g. URL Check Report, AdWords Custom Report etc. The type is defined by a factory, which takes the parameters of a job and returns list (or generator) of steps that needs to be executed in order to generate a report.

A Job Type is either client-account level types, or service-account level types. Each job is then of the same type as its Job Type.

PPC Robot supports multiple versions of a single Job Type, they are marked by an ascending integers. For instance, AdWords Custom Report might have versions 1 (oldest), 2, 3 (newest and created by default). Each version has to define a function that upgrades report parameters from previous version.

Report

Task which reads data from marketing platforms, transforms and analyzes them and generates an output.

Robot

Specialized task that can perform various read-write operations: generate new campaigns in a client account, update bids and so on. Robot can have an output, but most of them will have just notifications and a specialized interface that can be used for tracking robot state and execution. Robot is always linked to an existing client.

Task

An instance of job that is prepared to run or running. It is a list of concrete step instances that were built based on the job definition and parameters.

Step

Steps are deprecated in favour of functional reporting model.

A single operation in the report, e.g. Download an AdWords Report, filter table, compute a new column in table, write results to Google Sheets and so on. Each step is defined by a class that is instantiated before execution of the report with correct parameters.

When executed, step receives a Task Context. Each step usually modifies the Work Set.

Task Context

An instance of ppc_robot_lib.tasks.task_context.TaskContext. Contains information about the job, task ID, service account credentials, credentials to user’s account which can be used to access his Google Drive, Client Account’s ID in the platform and a Work Set.

Work Set

Work Set consists of:

  • a collection of pandas.DataFrames that are created and processed by steps,

  • a dictionary for arbitrary objects that can be written and read by steps for further processing. For instance, one step can add some intermediate data for further processing by next steps.

Worker

A program that prepares (loads parameters and creates list of steps) and executes tasks.