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 模板bodyimpersonation_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 參數搭配使用,即可讓您動態決定值。

這個條目有幫助嗎?