Google Display & Video 360 操作符

Google Display & Video 360 具有您所需的端到端广告系列管理功能。

先决条件任务

要使用这些操作符,您必须执行以下操作:

创建查询

要创建 Display & Video 360 查询,请使用 GoogleDisplayVideo360CreateQueryOperator

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

create_query_v2 = GoogleDisplayVideo360CreateQueryOperator(body=REPORT_V2, task_id="create_query")

query_id = cast(str, XComArg(create_query_v2, key="query_id"))

使用 Jinja 模板 以及 body, impersonation_chain 参数,您可以动态确定值。您可以使用 ``.json`` 文件提供 body 定义,因为此操作符支持此模板扩展。结果将保存到 XCom,允许其他操作符使用该结果。

运行查询

GoogleDisplayVideo360RunQueryOperator.

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

run_query_v2 = GoogleDisplayVideo360RunQueryOperator(
    query_id=query_id, parameters=PARAMETERS, task_id="run_report"
)

query_id = cast(str, XComArg(run_query_v2, key="query_id"))
report_id = cast(str, XComArg(run_query_v2, key="report_id"))

您可以将 Jinja 模板query_idparametersimpersonation_chain 参数一起使用,这些参数允许您动态确定值。结果将保存到 XCom,允许其他操作符使用该结果。

删除报告

要删除 Display & Video 360 报告,请使用 GoogleDisplayVideo360DeleteReportOperator

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

delete_report_v2 = GoogleDisplayVideo360DeleteReportOperator(report_id=report_id, task_id="delete_report")

您可以将 Jinja 模板report_idimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

等待查询

要等待报告,请使用 GoogleDisplayVideo360RunQuerySensor

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

wait_for_query = GoogleDisplayVideo360RunQuerySensor(
    task_id="wait_for_query",
    query_id=query_id,
    report_id=report_id,
)

您可以将 Jinja 模板query_idreport_idimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

下载报告

要将报告下载到 GCS 存储桶,请使用 GoogleDisplayVideo360DownloadReportV2Operator

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

get_report_v2 = GoogleDisplayVideo360DownloadReportV2Operator(
    query_id=query_id,
    report_id=report_id,
    task_id="get_report",
    bucket_name=BUCKET,
    report_name="test1.csv",
)

您可以将 Jinja 模板query_idreport_idbucket_namereport_nameimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

下载广告订单项

该操作符接受 body 请求

  • Google API 一致

    REQUEST_BODY = {
    "filterType": ADVERTISER_ID,
    "format": "CSV",
    "fileSpec": "EWF"
    }
    

要下载 CSV 格式的广告订单项报告,请使用 GoogleDisplayVideo360DownloadLineItemsOperator

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

download_line_items = GoogleDisplayVideo360DownloadLineItemsOperator(
    task_id="download_line_items",
    request_body=DOWNLOAD_LINE_ITEMS_REQUEST,
    bucket_name=BUCKET,
    object_name=OBJECT_NAME,
    gzip=False,
)

您可以将 Jinja 模板request_bodybucket_nameobject_nameimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

上传广告订单项

要运行 Display & Video 360 上传广告订单项,请使用 GoogleDisplayVideo360UploadLineItemsOperator

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

upload_line_items = GoogleDisplayVideo360UploadLineItemsOperator(
    task_id="upload_line_items",
    bucket_name=BUCKET,
    object_name=BUCKET_FILE_LOCATION,
)

您可以将 Jinja 模板bucket_nameobject_nameimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

创建 SDF 下载任务

要创建 SDF 下载任务,请使用 GoogleDisplayVideo360CreateSDFDownloadTaskOperator

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

create_sdf_download_task = GoogleDisplayVideo360CreateSDFDownloadTaskOperator(
    task_id="create_sdf_download_task", body_request=CREATE_SDF_DOWNLOAD_TASK_BODY_REQUEST
)
operation_name = '{{ task_instance.xcom_pull("create_sdf_download_task")["name"] }}'

您可以将 Jinja 模板body_requestimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

将 SDF 文件保存在 Google Cloud Storage 中

要保存 SDF 文件并将它们保存在 Google Cloud Storage 中,请使用 GoogleDisplayVideo360SDFtoGCSOperator

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

save_sdf_in_gcs = GoogleDisplayVideo360SDFtoGCSOperator(
    task_id="save_sdf_in_gcs",
    operation_name=operation_name,
    bucket_name=BUCKET,
    object_name=BUCKET_FILE_LOCATION,
    gzip=False,
)

您可以将 Jinja 模板operation_namebucket_nameobject_nameimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

等待 SDF 操作

通过以下方式执行等待 SDF 操作:GoogleDisplayVideo360GetSDFDownloadOperationSensor

airflow/providers/google/marketing_platform/example_dags/example_display_video.py[源代码]

wait_for_operation = GoogleDisplayVideo360GetSDFDownloadOperationSensor(
    task_id="wait_for_operation",
    operation_name=operation_name,
)

您可以将 Jinja 模板operation_nameimpersonation_chain 参数一起使用,这些参数允许您动态确定值。

此条目是否有帮助?