Menggunakan Layanan Agregasi di Google Cloud Platform (GCP)

1. 1. Prasyarat

Estimasi waktu penyelesaian: 1-2 jam

Ada 2 mode untuk melakukan codelab ini: Pengujian Lokal atau Layanan Agregasi. Mode Pengujian Lokal memerlukan komputer lokal dan browser Chrome (tidak ada pembuatan/penggunaan resource Google Cloud). Mode Layanan Agregasi memerlukan deployment penuh Layanan Agregasi di Google Cloud.

Untuk melakukan codelab ini dalam salah satu mode, beberapa prasyarat diperlukan. Setiap persyaratan ditandai sesuai dengan apakah persyaratan tersebut diperlukan untuk Pengujian Lokal atau Layanan Penggabungan.

1.1. Menyelesaikan Pendaftaran dan Pengesahan (Layanan Agregasi)

Untuk menggunakan API Privacy Sandbox, pastikan Anda telah menyelesaikan Pendaftaran dan Pengesahan untuk Chrome dan Android.

1.2. Mengaktifkan API privasi Iklan (Pengujian Lokal dan Layanan Agregasi)

Karena kita akan menggunakan Privacy Sandbox, sebaiknya Anda mengaktifkan Privacy Sandbox Ads API.

Di browser Anda, buka chrome://settings/adPrivacy dan aktifkan semua API Privasi iklan.

Pastikan juga bahwa cookie pihak ketiga Anda diaktifkan.

Mulai chrome://settings/cookies, pastikan cookie pihak ketiga TIDAK diblokir. Bergantung pada versi Chrome Anda, Anda mungkin melihat opsi yang berbeda di menu setelan ini, tetapi konfigurasi yang dapat diterima mencakup:

  • "Blokir semua cookie pihak ketiga" = DINONAKTIFKAN
  • "Blokir cookie pihak ketiga" = DINONAKTIFKAN
  • "Blokir cookie pihak ketiga dalam mode Samaran" = AKTIF

Mengaktifkan Cookie Mengaktifkan Cookie

1.3. Mendownload Alat Pengujian Lokal (Pengujian Lokal)

Pengujian Lokal akan memerlukan download Alat Pengujian Lokal. Alat ini akan membuat laporan ringkasan dari laporan debug yang tidak dienkripsi.

Alat Pengujian Lokal tersedia untuk didownload di Arsip JAR Cloud Function di GitHub. File tersebut harus diberi nama LocalTestingTool_{version}.jar.

1.4. Verifikasi bahwa JAVA JRE telah diinstal (Layanan Pengujian Lokal dan Penggabungan)

Buka "Terminal" dan gunakan java --version untuk memeriksa apakah mesin Anda telah menginstal Java atau openJDK.

Periksa versi Java. Periksa versi Java.

Jika belum diinstal, Anda dapat mendownload dan menginstalnya dari situs Java atau situs openJDK.

1.5. Download aggregatable_report_converter (Pengujian Lokal dan Layanan Agregasi)

Anda dapat mendownload salinan aggregatable_report_converter dari repositori GitHub Demo Privacy Sandbox. Repositori GitHub menyebutkan penggunaan IntelliJ atau Eclipse, tetapi keduanya tidak diperlukan. Jika Anda tidak menggunakan alat ini, download file JAR ke lingkungan lokal Anda.

1.6. Menyiapkan Lingkungan Cloud Platform (Layanan Agregasi)

Layanan Agregasi memerlukan penggunaan Trusted Execution Environment yang menggunakan penyedia cloud. Dalam codelab ini, Layanan Penggabungan akan di-deploy di Google Cloud, tetapi AWS juga didukung.

Ikuti Petunjuk Deployment di GitHub untuk menyiapkan gcloud CLI, mendownload biner dan modul Terraform, serta membuat resource Google Cloud untuk Layanan Agregasi.

Langkah-langkah utama dalam Petunjuk Deployment:

  1. Siapkan CLI "gcloud" dan Terraform di lingkungan Anda.
  2. Buat bucket Cloud Storage untuk menyimpan status Terraform.
  3. Download dependensi.
  4. Perbarui adtech_setup.auto.tfvars dan jalankan Terraform adtech_setup. Lihat Lampiran untuk contoh file adtech_setup.auto.tfvars. Catat nama bucket data yang dibuat di sini – nama ini akan digunakan dalam codelab untuk menyimpan file yang kita buat.
  5. Perbarui dev.auto.tfvars, tiru identitas akun layanan deployment, dan jalankan Terraform dev. Lihat Lampiran untuk contoh file dev.auto.tfvars.
  6. Setelah deployment selesai, ambil frontend_service_cloudfunction_url dari output Terraform, yang akan diperlukan untuk membuat permintaan ke Layanan Agregasi pada langkah-langkah berikutnya.

1.7. Menyelesaikan Orientasi Layanan Agregasi (Layanan Agregasi)

Layanan Agregasi memerlukan aktivasi ke koordinator agar dapat menggunakan layanan. Lengkapi formulir Aktivasi Layanan Agregasi dengan memberikan Situs Pelaporan dan informasi lainnya, memilih "Google Cloud", dan memasukkan alamat akun layanan Anda. Akun layanan ini dibuat dalam prasyarat sebelumnya (1.6. Menyiapkan Lingkungan Google Cloud). (Petunjuk: jika Anda menggunakan nama default yang diberikan, akun layanan ini akan dimulai dengan "worker-sa@").

Tunggu hingga 2 minggu hingga proses aktivasi selesai.

1.8. Tentukan metode Anda untuk memanggil endpoint API (Layanan Agregasi)

Codelab ini menyediakan 2 opsi untuk memanggil endpoint API Layanan Agregasi: cURL dan Postman. cURL adalah cara yang lebih cepat dan mudah untuk memanggil endpoint API dari Terminal Anda, karena hanya memerlukan penyiapan minimal dan tidak memerlukan software tambahan. Namun, jika tidak ingin menggunakan cURL, Anda dapat menggunakan Postman untuk mengeksekusi dan menyimpan permintaan API untuk digunakan pada masa mendatang.

Di bagian 3.2. Penggunaan Layanan Agregasi, Anda akan menemukan petunjuk mendetail untuk menggunakan kedua opsi tersebut. Anda dapat melihat pratinjaunya sekarang untuk menentukan metode yang akan digunakan. Jika Anda memilih Postman, lakukan penyiapan awal berikut.

1.8.1. Menyiapkan ruang kerja

Daftar untuk membuat akun Postman. Setelah mendaftar, ruang kerja akan otomatis dibuat untuk Anda.

Ruang kerja Postman. Ruang kerja Postman.

Jika ruang kerja tidak dibuat untuk Anda, buka item navigasi atas "Ruang kerja", lalu pilih "Buat Ruang Kerja".

Pilih "Ruang kerja kosong", klik berikutnya, lalu beri nama "GCP Privacy Sandbox". Pilih "Pribadi", lalu klik "Buat".

Download konfigurasi JSON ruang kerja yang telah dikonfigurasi sebelumnya dan file Lingkungan Global.

Impor kedua file JSON ke "Ruang Kerja Saya" menggunakan tombol "Impor".

Tombol Impor. Tombol Impor.

Tindakan ini akan membuat koleksi "GCP Privacy Sandbox" untuk Anda beserta permintaan HTTP createJob dan getJob.

1.8.2. Menyiapkan otorisasi

Klik koleksi "GCP Privacy Sandbox" dan buka tab "Authorization".

Tombol otorisasi. Tombol otorisasi.

Anda akan menggunakan metode "Token Bearer". Dari lingkungan Terminal Anda, jalankan perintah ini dan salin outputnya.

gcloud auth print-identity-token

Kemudian, tempel nilai token ini di kolom "Token" pada tab otorisasi Postman:

[Panduan Kolom "Token".

1.8.3. Lingkungan penyiapan

Buka "Tampilan cepat lingkungan" di sudut kanan atas:

tombol tampilan cepat Lingkungan. Tombol tampilan cepat Lingkungan.

Klik "Edit", lalu perbarui "Nilai Saat Ini" dari "environment", "region", dan "cloud-function-id":

Tetapkan nilai saat ini. Menetapkan nilai saat ini.

Anda dapat mengosongkan "request-id" untuk saat ini, karena kami akan mengisinya nanti. Untuk kolom lainnya, gunakan nilai dari frontend_service_cloudfunction_url, yang ditampilkan dari penyelesaian deployment Terraform yang berhasil di Prasyarat 1.6. URL mengikuti format ini: https://--frontend-service--uc.a.run.app

2. 2. Codelab Pengujian Lokal

Estimasi waktu penyelesaian: <1 jam

Anda dapat menggunakan alat pengujian lokal di komputer untuk melakukan agregasi dan membuat laporan ringkasan menggunakan laporan debug yang tidak dienkripsi. Sebelum memulai, pastikan Anda telah menyelesaikan semua Prasyarat yang diberi label "Pengujian Lokal".

Langkah-langkah codelab

Langkah 2.1. Laporan pemicu: Memicu pelaporan Private Aggregation agar dapat mengumpulkan laporan.

Langkah 2.2. Buat Laporan AVRO Debug: Mengonversi laporan JSON yang dikumpulkan menjadi laporan berformat AVRO. Langkah ini akan serupa dengan saat teknologi iklan mengumpulkan laporan dari endpoint pelaporan API dan mengonversi laporan JSON menjadi laporan berformat AVRO.

Langkah 2.3. Mengambil Kunci Bucket: Kunci bucket dirancang oleh teknologi iklan. Dalam codelab ini, karena bucket telah ditentukan sebelumnya, ambil kunci bucket seperti yang diberikan.

Langkah 2.4. Buat AVRO Domain Output: Setelah kunci bucket diambil, buat file AVRO Domain Output.

Langkah 2.5. Buat Laporan Ringkasan: Gunakan Alat Pengujian Lokal agar dapat membuat Laporan Ringkasan di Lingkungan Lokal.

Langkah 2.6. Tinjau Laporan Ringkasan: Tinjau Laporan Ringkasan yang dibuat oleh Alat Pengujian Lokal.

2.1. Laporan pemicu

Untuk memicu laporan agregasi pribadi, Anda dapat menggunakan situs demo Privacy Sandbox (https://privacy-sandbox-demos-news.dev/?env=gcp) atau situs Anda sendiri (misalnya, https://adtechexample.com). Jika Anda menggunakan situs sendiri dan belum menyelesaikan Pendaftaran & Pengesahan dan Pengaktifan Layanan Agregasi, Anda harus menggunakan tanda Chrome dan pengalihan CLI.

Untuk demo ini, kita akan menggunakan situs demo Privacy Sandbox. Ikuti link untuk membuka situs; lalu, Anda dapat melihat laporan di chrome://private-aggregation-internals:

Halaman Internal Chrome. Halaman Internal Chrome.

Laporan yang dikirim ke endpoint {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage juga dapat ditemukan di "Isi Laporan" laporan yang ditampilkan di halaman Chrome Internals.

Anda mungkin melihat banyak laporan di sini, tetapi untuk codelab ini, gunakan laporan yang dapat diagregasi yang khusus untuk Google Cloud dan dibuat oleh endpoint debug. "URL Laporan" akan berisi "/debug/" dan aggregation_coordinator_origin field "Isi Laporan" akan berisi URL ini: https://publickeyservice.msmt.gcp.privacysandboxservices.com.

Laporan Debug Google Cloud. Laporan Debug Google Cloud.

2.2. Membuat Laporan Gabungan Debug

Salin laporan yang ada di "Report Body" chrome://private-aggregation-internals dan buat file JSON di folder privacy-sandbox-demos/tools/aggregatable_report_converter/out/artifacts/aggregatable_report_converter_jar (dalam repositori yang didownload di Prasyarat 1.5).

Dalam contoh ini, kita menggunakan vim karena kita menggunakan linux. Namun, Anda dapat menggunakan editor teks apa pun yang Anda inginkan.

vim report.json

Tempelkan laporan ke report.json dan simpan file Anda.

Kode JSON laporan. Kode JSON laporan.

Setelah Anda memilikinya, gunakan aggregatable_report_converter.jar untuk membantu membuat laporan debug yang dapat diagregasi. Tindakan ini akan membuat laporan yang dapat diagregasi bernama report.avro di direktori saat ini.

java -jar aggregatable_report_converter.jar \
  --request_type convertToAvro \
  --input_file report.json \
  --debug

2.3. Mengambil Kunci Bucket dari Laporan

Untuk membuat file output_domain.avro, Anda memerlukan kunci bucket yang dapat diambil dari laporan.

Kunci bucket dirancang oleh teknologi iklan. Namun, dalam hal ini, situs Demo Privacy Sandbox membuat kunci bucket. Karena penggabungan pribadi untuk situs ini dalam mode debug, kita dapat menggunakan debug_cleartext_payload dari "Isi Laporan" untuk mendapatkan kunci bucket.

Lanjutkan dengan menyalin debug_cleartext_payload dari isi laporan.

Debug Payload Cleartext. Debug Payload Cleartext.

Buka goo.gle/ags-payload-decoder, tempel debug_cleartext_payload Anda di kotak "INPUT", lalu klik "Decode".

Tombol dekode. Tombol dekode.

Halaman ini menampilkan nilai desimal dari kunci bucket. Berikut adalah contoh kunci bucket.

Contoh kunci bucket. Kunci bucket contoh.

2.4. Membuat AVRO Domain Output

Setelah memiliki kunci bucket, mari kita buat output_domain.avro di folder yang sama dengan yang telah kita kerjakan. Pastikan Anda mengganti kunci bucket dengan kunci bucket yang Anda ambil.

java -jar aggregatable_report_converter.jar \
  --request_type createDomainAvro \
  --bucket_key <bucket key>

Skrip akan membuat file output_domain.avro di folder saat ini.

2.5. Membuat Laporan Ringkasan menggunakan Alat Pengujian Lokal

Kita akan menggunakan LocalTestingTool_{version}.jar yang didownload di Prasyarat 1.3 untuk membuat laporan ringkasan menggunakan perintah berikut. Ganti {version} dengan versi yang Anda download. Jangan lupa untuk memindahkan LocalTestingTool_{version}.jar ke direktori saat ini, atau menambahkan jalur relatif untuk merujuk ke lokasinya saat ini.

java -jar LocalTestingTool_{version}.jar \
  --input_data_avro_file report.avro \
  --domain_avro_file output_domain.avro \
  --output_directory .

Anda akan melihat sesuatu yang mirip dengan berikut setelah perintah dijalankan. Laporan output.avro dibuat setelah proses ini selesai.

Output AVRO Output AVRO

2.6. Meninjau Laporan Ringkasan

Laporan ringkasan yang dibuat dalam format AVRO. Untuk dapat membacanya, Anda perlu mengonversinya dari AVRO ke format JSON. Idealnya, teknologi iklan harus menulis kode untuk mengonversi laporan AVRO kembali ke JSON.

Kita akan menggunakan aggregatable_report_converter.jar untuk mengonversi laporan AVRO kembali ke JSON.

java -jar aggregatable_report_converter.jar \
  --request_type convertToJson \
  --input_file output.avro

Tindakan ini akan menampilkan laporan yang mirip dengan berikut ini. Bersama dengan output.json laporan yang dibuat di direktori yang sama.

Output JSON Output JSON

Codelab selesai!

Ringkasan: Anda telah mengumpulkan laporan debug, membuat file domain output, dan membuat laporan ringkasan menggunakan alat pengujian lokal yang menyimulasikan perilaku agregasi Aggregation Service.

Langkah berikutnya: Setelah bereksperimen dengan alat Pengujian Lokal, Anda dapat mencoba latihan yang sama dengan deployment langsung Layanan Agregasi di lingkungan Anda sendiri. Buka kembali prasyarat untuk memastikan Anda telah menyiapkan semuanya untuk mode "Layanan Agregasi", lalu lanjutkan ke langkah 3.

3. 3. Codelab Layanan Agregasi

Estimasi waktu penyelesaian: 1 jam

Sebelum memulai, pastikan Anda telah menyelesaikan semua Prasyarat yang diberi label "Layanan Agregasi".

Langkah-langkah codelab

Langkah 3.1. Pembuatan Input Layanan Agregasi: Buat laporan Layanan Agregasi yang dikelompokkan untuk Layanan Agregasi.

  • Langkah 3.1.1. Laporan Pemicu
  • Langkah 3.1.2. Mengumpulkan Laporan Gabungan
  • Langkah 3.1.3. Mengonversi Laporan ke AVRO
  • Langkah 3.1.4. Buat AVRO output_domain
  • Langkah 3.1.5. Memindahkan Laporan ke bucket Cloud Storage

Langkah 3.2. Penggunaan Layanan Agregasi: Gunakan Aggregation Service API untuk membuat Laporan Ringkasan dan meninjau Laporan Ringkasan.

  • Langkah 3.2.1. Menggunakan Endpoint createJob untuk batch
  • Langkah 3.2.2. Menggunakan Endpoint getJob untuk mengambil status batch
  • Langkah 3.2.3. Meninjau Laporan Ringkasan

3.1. Pembuatan Input Layanan Agregasi

Lanjutkan untuk membuat laporan AVRO untuk pengelompokan ke Aggregation Service. Perintah shell dalam langkah-langkah ini dapat dijalankan dalam Cloud Shell Google Cloud (selama dependensi dari Prasyarat di-clone ke lingkungan Cloud Shell Anda) atau di lingkungan eksekusi lokal.

3.1.1. Laporan Pemicu

Ikuti link untuk membuka situs; lalu, Anda dapat melihat laporan di chrome://private-aggregation-internals:

Halaman Internal Chrome Halaman Internal Chrome

Laporan yang dikirim ke endpoint {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage juga dapat ditemukan di "Isi Laporan" laporan yang ditampilkan di halaman Chrome Internals.

Anda mungkin melihat banyak laporan di sini, tetapi untuk codelab ini, gunakan laporan yang dapat diagregasi yang khusus untuk Google Cloud dan dibuat oleh endpoint debug. "URL Laporan" akan berisi "/debug/" dan aggregation_coordinator_origin field "Isi Laporan" akan berisi URL ini: https://publickeyservice.msmt.gcp.privacysandboxservices.com.

Laporan Debug Google Cloud. Laporan Debug Google Cloud.

3.1.2. Mengumpulkan Laporan Gabungan

Kumpulkan laporan agregat Anda dari endpoint .well-known API terkait.

  • Agregasi Pribadi: {reporting-origin}/.well-known/private-aggregation/report-shared-storage
  • Pelaporan Atribusi - Laporan Ringkasan: {reporting-origin}/.well-known/attribution-reporting/report-aggregate-attribution

Untuk codelab ini, kita melakukan pengumpulan laporan secara manual. Dalam produksi, teknologi iklan diharapkan mengumpulkan dan mengonversi laporan secara terprogram.

Mari kita salin laporan JSON di "Isi Laporan" dari chrome://private-aggregation-internals.

Dalam contoh ini, kita menggunakan vim karena kita menggunakan linux. Namun, Anda dapat menggunakan editor teks apa pun yang Anda inginkan.

vim report.json

Tempelkan laporan ke report.json dan simpan file Anda.

JSON laporan JSON Laporan

3.1.3. Mengonversi Laporan ke AVRO

Laporan yang diterima dari endpoint .well-known berformat JSON dan perlu dikonversi ke format laporan AVRO. Setelah Anda memiliki laporan JSON, buka tempat report.json disimpan dan gunakan aggregatable_report_converter.jar untuk membantu membuat laporan agregat debug. Tindakan ini akan membuat laporan yang dapat diagregasi bernama report.avro di direktori saat ini.

java -jar aggregatable_report_converter.jar \
  --request_type convertToAvro \
  --input_file report.json

3.1.4. Buat AVRO output_domain

Untuk membuat file output_domain.avro, Anda memerlukan kunci bucket yang dapat diambil dari laporan.

Kunci bucket dirancang oleh teknologi iklan. Namun, dalam hal ini, situs Demo Privacy Sandbox membuat kunci bucket. Karena penggabungan pribadi untuk situs ini dalam mode debug, kita dapat menggunakan debug_cleartext_payload dari "Isi Laporan" untuk mendapatkan kunci bucket.

Lanjutkan dengan menyalin debug_cleartext_payload dari isi laporan.

Debug Payload Cleartext. Debug Payload Cleartext.

Buka goo.gle/ags-payload-decoder, tempel debug_cleartext_payload Anda di kotak "INPUT", lalu klik "Decode".

Tombol dekode. Tombol dekode.

Halaman ini menampilkan nilai desimal dari kunci bucket. Berikut adalah contoh kunci bucket.

Contoh kunci bucket. Kunci bucket contoh.

Setelah memiliki kunci bucket, mari kita buat output_domain.avro di folder yang sama dengan yang telah kita kerjakan. Pastikan Anda mengganti kunci bucket dengan kunci bucket yang Anda ambil.

java -jar aggregatable_report_converter.jar \
  --request_type createDomainAvro \
  --bucket_key <bucket key>

Skrip akan membuat file output_domain.avro di folder saat ini.

3.1.5. Memindahkan Laporan ke bucket Cloud Storage

Setelah laporan AVRO dan domain output dibuat, lanjutkan dengan memindahkan laporan dan domain output ke dalam bucket di Cloud Storage (yang Anda catat di Prasyarat 1.6).

Jika Anda telah menyiapkan gcloud CLI di lingkungan lokal, gunakan perintah berikut untuk menyalin file ke folder yang sesuai.

gcloud storage cp report.avro gs://<bucket_name>/reports/

gcloud storage cp output_domain.avro gs://<bucket_name>/output_domain/

Atau, upload file secara manual ke bucket Anda. Buat folder bernama "reports" dan upload file report.avro ke sana. Buat folder bernama "output_domains" dan upload file output_domain.avro ke sana.

3.2. Penggunaan Layanan Agregasi

Ingatlah di Prasyarat 1.8 bahwa Anda memilih curl atau Postman untuk membuat permintaan API ke endpoint Aggregation Service. Petunjuk untuk kedua opsi tersebut ada di bawah.

Jika tugas Anda gagal karena error, lihat dokumentasi pemecahan masalah kami di GitHub untuk mengetahui informasi selengkapnya tentang cara melanjutkan.

3.2.1. Menggunakan Endpoint createJob untuk batch

Gunakan salah satu petunjuk curl atau Postman berikut untuk membuat tugas.

curl

Di "Terminal", buat file isi permintaan (body.json) dan tempelkan objek JSON berikut. Pastikan untuk memperbarui nilai placeholder. Lihat dokumentasi API ini untuk mengetahui informasi selengkapnya tentang fungsi setiap kolom.

{
    "job_request_id": "<job_request_id>",
    "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
    "input_data_blob_prefixes": [ // Mutually exclusive to input_data_blob_prefix as of v2.11.0
      "<report_folder>/<report_name-1>/",
      "<report_folder>/<report_name-2>/",
      "<report_folder>/<report_name>.avro"
    ],
    "input_data_bucket_name": "<bucket_name>",
    "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
    "output_data_bucket_name": "<bucket_name>",
    "job_parameters": {
      "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
      "output_domain_bucket_name": "<bucket_name>",
      "attribution_report_to": "<reporting origin of report>",
      "reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
      "report_error_threshold_percentage": "10",
      "debug_run": "true"
    }
}

Jalankan permintaan berikut. Ganti placeholder di URL permintaan curl dengan nilai dari frontend_service_cloudfunction_url, yang merupakan output setelah berhasil menyelesaikan deployment Terraform di Prasyarat 1.6.

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  -d @body.json \
  https://<environment>-<region>-frontend-service-<cloud-function-id>-uc.a.run.app/v1alpha/createJob

Anda akan menerima respons HTTP 202 setelah permintaan diterima oleh Layanan Agregasi. Kode respons lain yang mungkin terjadi didokumentasikan dalam spesifikasi API.

Tukang Pos

Untuk endpoint createJob, isi permintaan diperlukan untuk memberikan lokasi dan nama file laporan yang dapat diagregasi, domain output, dan laporan ringkasan kepada Layanan Agregasi.

Buka tab "Body" permintaan createJob:

Tab Isi Tab Isi

Ganti placeholder dalam JSON yang disediakan. Untuk mengetahui informasi selengkapnya tentang kolom ini dan fungsinya, lihat dokumentasi API.

{
    "job_request_id": "<job_request_id>",
    "input_data_blob_prefix": "<report_folder>/",
    "input_data_blob_prefixes": [ // Mutually exclusive to input_data_blob_prefix as of v2.11.0
      "<report_folder>/<report_name-1>/",
      "<report_folder>/<report_name-2>/",
      "<report_folder>/<report_name>.avro"
    ],
    "input_data_bucket_name": "<bucket_name>",
    "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
    "output_data_bucket_name": "<bucket_name>",
    "job_parameters": {
      "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
      "output_domain_bucket_name": "<bucket_name>",
      "attribution_report_to": "<reporting origin of report>",
      "reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
      "report_error_threshold_percentage": "10",
      "debug_run": "true"
    }
}

"Kirim" permintaan API createJob:

Tombol untuk mengirim Tombol kirim

Kode respons dapat ditemukan di bagian bawah halaman:

Response code Kode respons

Anda akan menerima respons HTTP 202 setelah permintaan diterima oleh Layanan Agregasi. Kode respons lain yang mungkin terjadi didokumentasikan dalam spesifikasi API.

3.2.2. Menggunakan Endpoint getJob untuk mengambil status batch

Gunakan salah satu petunjuk curl atau Postman berikut untuk mendapatkan tugas.

curl

Jalankan permintaan berikut di Terminal Anda. Ganti placeholder di URL dengan nilai dari frontend_service_cloudfunction_url, yang merupakan URL yang sama dengan yang Anda gunakan untuk permintaan createJob. Untuk "job_request_id", gunakan nilai dari tugas yang Anda buat dengan endpoint createJob.

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  https://<environment>-<region>-frontend-service-<cloud-function-id>-uc.a.run.app/v1alpha/getJob?job_request_id=<job_request_id>

Hasilnya akan menampilkan status permintaan tugas Anda dengan status HTTP 200. "Isi" permintaan berisi informasi yang diperlukan seperti job_status, return_message, dan error_messages (jika tugas mengalami error).

Tukang Pos

Untuk memeriksa status permintaan tugas, Anda dapat menggunakan endpoint getJob. Di bagian "Params" permintaan getJob, perbarui nilai job_request_id menjadi job_request_id yang dikirim dalam permintaan createJob.

ID permintaan tugas ID permintaan tugas

"Kirim" permintaan getJob:

Tombol untuk mengirim Tombol kirim

Hasilnya akan menampilkan status permintaan tugas Anda dengan status HTTP 200. "Isi" permintaan berisi informasi yang diperlukan seperti job_status, return_message, dan error_messages (jika tugas mengalami error).

Tanggapan JSON Respons JSON

3.2.3. Meninjau Laporan Ringkasan

Setelah menerima laporan ringkasan di bucket Cloud Storage output, Anda dapat mendownloadnya ke lingkungan lokal. Laporan ringkasan dalam format AVRO dan dapat dikonversi kembali ke JSON. Anda dapat menggunakan aggregatable_report_converter.jar untuk membaca laporan menggunakan perintah ini.

java -jar aggregatable_report_converter.jar \
  --request_type convertToJson \
  --input_file <summary_report_avro>

Tindakan ini akan menampilkan json nilai gabungan dari setiap kunci bucket yang terlihat mirip dengan berikut ini.

Laporan ringkasan. Laporan ringkasan.

Jika permintaan createJob Anda menyertakan debug_run sebagai benar (true), Anda dapat menerima laporan ringkasan di folder debug yang ada di output_data_blob_prefix. Laporan dalam format AVRO dan dapat dikonversi ke JSON menggunakan perintah sebelumnya.

Laporan berisi kunci bucket, metrik tanpa derau, dan derau yang ditambahkan ke metrik tanpa derau untuk membentuk laporan ringkasan. Laporannya mirip dengan berikut ini.

Laporan kebisingan Laporan bising

Anotasi juga berisi "in_reports" atau "in_domain" (atau keduanya), yang berarti:

  • in_reports - kunci bucket tersedia di dalam laporan yang dapat diagregasi.
  • in_domain - kunci bucket tersedia di dalam file AVRO output_domain.

Codelab selesai!

Ringkasan: Anda telah men-deploy Layanan Agregasi di lingkungan cloud Anda sendiri, mengumpulkan laporan debug, membuat file domain output, menyimpan file ini di bucket Cloud Storage, dan menjalankan tugas dengan berhasil.

Langkah berikutnya: Terus gunakan Layanan Agregasi di lingkungan Anda, atau hapus resource cloud yang baru saja Anda buat dengan mengikuti petunjuk pembersihan di langkah 4.

4. 4. Membersihkan

Untuk menghapus resource yang dibuat untuk Layanan Agregasi menggunakan Terraform, gunakan perintah destroy di folder adtech_setup dan dev (atau lingkungan lainnya):

$ cd <repository_root>/terraform/gcp/environments/adtech_setup
$ terraform destroy
$ cd <repository_root>/terraform/gcp/environments/dev
$ terraform destroy

Untuk menghapus bucket Cloud Storage yang menyimpan laporan yang dapat digabungkan dan laporan ringkasan:

$ gcloud storage buckets delete gs://my-bucket

Anda juga dapat memilih untuk mengembalikan setelan cookie Chrome dari Prasyarat 1.2 ke status sebelumnya.

5. 5. Lampiran

Contoh file adtech_setup.auto.tfvars

/**
 * Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

project = "my-project-id"

# Required to generate identity token for access of Adtech Services API endpoints
service_account_token_creator_list = ["user:me@email.com"]

# Uncomment the below line if you like Terraform to create an Artifact registry repository
# for self-build container artifacts. "artifact_repo_location" defaults to "us".
artifact_repo_name     = "my-ags-artifacts"

# Note: Either one of [1] or [2] must be uncommented.

# [1] Uncomment below lines if you like Terraform grant needed permissions to
# pre-existing service accounts
# deploy_service_account_email = "<YourDeployServiceAccountName>@<ProjectID>.iam.gserviceaccount.com"
# worker_service_account_email = "<YourWorkerServiceAccountName>@<ProjectID>.iam.gserviceaccount.com"

# [2] Uncomment below lines if you like Terraform to create service accounts
# and needed permissions granted e.g "deploy-sa" or "worker-sa"
deploy_service_account_name = "deploy-sa"
worker_service_account_name = "worker-sa"
# Uncomment the below line if you want Terraform to create the
# below bucket. "data_bucket_location" defaults to "us".
data_bucket_name     = "my-ags-data"

# Uncomment the below lines if you want to specify service account customer role names
# deploy_sa_role_name = "<YourDeploySACustomRole>"
# worker_sa_role_name = "<YourWorkerSACustomRole>"

Contoh file dev.auto.tfvars

/**
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

# Example values required by job_service.tf
#
# These values should be modified for each of your environments.
region      = "us-central1"
region_zone = "us-central1-c"

project_id  = "my-project-id"
environment = "operator-demo-env"

# Co-locate your Cloud Spanner instance configuration with the region above.
# https://cloud.google.com/spanner/docs/instance-configurations#regional-configurations
spanner_instance_config = "regional-us-central1"

# Adjust this based on the job load you expect for your deployment.
# Monitor the spanner instance utilization to decide on scale out / scale in.
# https://console.cloud.google.com/spanner/instances
spanner_processing_units = 100

# Uncomment the line below at your own risk to disable Spanner database protection.
# This needs to be set to false and applied before destroying all resources is possible.
spanner_database_deletion_protection = false

instance_type = "n2d-standard-8" # 8 cores, 32GiB

# Container image location that packages the job service application
# If not set otherwise, uncomment and edit the line below:
#worker_image = "<location>/<project>/<repository>/<image>:<tag or digest>"

# Service account created and onboarded for worker
user_provided_worker_sa_email = "worker-sa@my-project-id.iam.gserviceaccount.com"

min_worker_instances = 1
max_worker_instances = 20