Penting: Mulai awal November 2024, akses ke bucket penyimpanan Ad Manager untuk Transfer Data akan mulai dimigrasikan dari Google Grup ke izin peran pengguna Ad Manager yang baru.
Untuk mengetahui detail tentang jadwal migrasi dan langkah berikutnya, buka Memigrasikan akses Transfer Data dari Google Grup ke Izin Ad Manager.
Google Cloud Storage adalah produk Google terpisah yang digunakan Ad Manager sebagai repositori data untuk laporan Transfer Data dan ID cookie audiens yang diupload secara massal.
Metode
Ada tiga cara untuk mengakses bucket penyimpanan cloud Ad Manager. Sesuai urutan kompleksitasnya:
- Di web: Buka
https://console.developers.google.com/storage/gdfp-[kode jaringan Ad Manager]
. - gsutil adalah alat command line berbasis Python yang menyediakan perintah seperti Unix untuk berinteraksi dengan bucket penyimpanan. Autentikasi bucket diabstraksi dan ditangani secara otomatis.
- Google Cloud Storage API adalah API dengan fitur penuh untuk memanipulasi bucket penyimpanan, yang tersedia melalui antarmuka web XML RESTful atau JSON. Library klien API tersedia untuk banyak lingkungan pemrograman populer, termasuk Java, JavaScript, Python, dan Objective-C. Pendekatan ini paling berguna jika Anda perlu memanipulasi bucket penyimpanan secara terprogram untuk mengintegrasikan dengan aplikasi Google App Engine atau aplikasi web Java.
Artikel ini memberikan detail tentang Google Cloud Storage API. Akses gsutil dan web lebih mudah dikelola, jadi sebaiknya pelajari metode ini terlebih dahulu. Metode tersebut sepenuhnya didokumentasikan di situs developer Google Cloud Storage.
Mengelola akses ke bucket penyimpanan Ad Manager Anda
Proses baru (tersedia pada November 2024)
Mulai November 2024, Anda dapat mulai memigrasikan pengguna yang memerlukan akses ke bucket penyimpanan Transfer Data dari Google Grup ke izin peran pengguna Ad Manager yang baru. Pengguna dalam peran Administrator akan dapat mengakses bucket penyimpanan secara default. Untuk pengguna lain, Anda dapat menambahkan mereka ke peran pengguna dengan izin "Melihat bucket transfer data" yang baru. Pelajari migrasi ini lebih lanjut.
Proses saat ini (tersedia hingga Januari 2025)
Catatan: Sebaiknya tinjau fase migrasi dan lakukan langkah-langkah sebelum Januari 2025.
Bucket penyimpanan yang digunakan oleh Ad Manager disertakan dalam project penyimpanan cloud milik Google. Bucket penyimpanan Ad Manager tidak muncul dalam daftar project Anda sendiri di Google Developers Console.
Anda harus bekerja sama dengan perwakilan Google untuk menyiapkan fitur yang bergantung pada bucket penyimpanan Ad Manager. Fitur tersebut akan menyediakan grup Google untuk Anda guna mengelola bucket penyimpanan.
Jika Anda adalah administrator grup G Suite yang sudah ada, Anda dapat memberikan nama grup Google G Suite ke perwakilan Anda sebagai bagian dari proses pengaktifan fitur. Mereka akan bekerja sama dengan Anda untuk mengaktifkan fitur apa pun yang menggunakan bucket penyimpanan Ad Manager menggunakan grup yang sudah ada.
Jika Anda mengelola lebih dari satu jaringan Ad Manager dengan akses ke Transfer Data, Anda harus menyampaikan hal ini kepada perwakilan Google agar pengelolaan jaringan dapat dikonsolidasikan. Satu grup akan digunakan untuk mengelola semua bucket Transfer Data di seluruh jaringan Anda.
Menggunakan Google Cloud Storage API
Jika Anda telah menentukan bahwa akses API adalah pilihan yang terbaik untuk kebutuhan Anda, sebaiknya konfigurasikan akun layanan Google Cloud Storage.
Mengonfigurasi akun layanan Google Cloud Storage
Saat mengakses bucket penyimpanan melalui API, sebaiknya konfigurasi akun layanan daripada menjalankannya dalam konteks pengguna. Akun layanan menyederhanakan pengembangan aplikasi dengan menggunakan kunci pribadi untuk autentikasi, sebagai ganti dari token OAuth yang dibuat secara dinamis. Untuk mengonfigurasi akun layanan:
-
Buat project baru (atau pilih project yang ada) untuk menjadi induk dari aplikasi Anda dan klik project tersebut.
-
(Opsional) Jika Anda berencana untuk menyalin file dari bucket penyimpanan Ad Manager ke akun Google Cloud Storage Anda sendiri, klik Penagihan & setelan untuk menambahkan sumber penagihan ke project Anda.
-
Buat client ID baru:
-
Klik API & Layanan > Kredensial.
-
Klik Buat Client ID baru.
-
Pilih Akun layanan sebagai jenis aplikasi Anda, lalu klik Buat Client ID.
-
Alamat email yang dibuat menggunakan format
[id-unik]@developer.gserviceagccount.com
. Salin dan simpan untuk menambahkannya ke Google grup Anda. -
Klik Buat kunci P12 baru. File tersebut disimpan ke komputer. Gunakan kunci ini dalam aplikasi yang Anda kembangkan untuk mengakses API, seperti yang ditunjukkan pada contoh kode di bawah.
-
- Tambahkan alamat email ke grup Google yang Anda buat untuk mengelola akses ke bucket penyimpanan Ad Manager. Klik Langsung tambahkan anggota, bukan 'undang', untuk menambahkan akun layanan. Jika Anda tidak memiliki akses, minta administrator grup Google untuk menambahkan alamat untuk Anda.
Google menyediakan contoh kode dan library untuk Google Cloud Storage. Contoh Java berikut untuk membaca file dari bucket penyimpanan cloud Ad Manager menunjukkan bagaimana komponen yang telah Anda konfigurasi saat menyiapkan akun layanan diterapkan di kode Anda:
-
Nama project: Nama project Google Cloud Storage.
-
Alamat email akun layanan: Alamat email yang Anda buat.
-
File kunci .p12: File yang didownload.
-
Nama bucket: Google memberikan nama ini saat Anda mengaktifkan fitur yang menggunakan bucket penyimpanan cloud Ad Manager.
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.security.GeneralSecurityException; import java.util.Collections; import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.services.storage.Storage; import com.google.api.services.storage.model.StorageObject; public class GcsApiTest { /** * Nama project tempat akun layanan dibuat. * * Informasi ini ditampilkan di Google Developers Console. */ private static final String PROJECT_NAME = "nama project"; /** * Alamat email developer akun layanan. * * Email ini dihasilkan setelah membuat Client ID Akun Layanan di * Google Developers Console, dan dapat diambil dari halaman * Kredensial. Email ini juga harus ditambahkan ke grup Google yang digunakan untuk mengontrol * akses ke bucket penyimpanan. */ private static final String SERVICE_ACCOUNT_EMAIL = "alamat email akun layanan"; /** * Bucket yang digunakan untuk operasi penyimpanan. * * Nama bucket ini diberikan kepada Anda oleh Account * Manager. Bucket ini dapat memiliki nama yang serupa dengan "gdfp-12345678" atau * "gdfp_cookieupload_12345678", tergantung add-on Ad Manager yang Anda gunakan. */ private static final String BUCKET_NAME = "nama bucket"; /** * Cakupan Google Cloud Storage OAuth 2.0 untuk membaca/menulis. Ini harus * sesuai dengan hak akses yang dimiliki Google Grup Anda untuk * bucket, dan Anda tidak dapat meminta hak akses yang tidak diberikan ke * Grup (yang mungkin bersifat hanya_baca). */ private static final String STORAGE_SCOPE = "https://www.googleapis.com/auth/devstorage.read_write"; /** * Jalur ke file key.p12 yang memberikan akses ke bucket. * * File ini dibuat saat client ID layanan dibuat. Jika tidak * memiliki file ini, Anda perlu membuat kunci p12 klien baru dari * Google Developers Console. */ private static final String KEY_P12 = "jalur ke file kunci .p12"; /** HTTP transport. */ private HttpTransport httpTransport; private Storage storage; // konstruktor, menyiapkan kredensial dan objek penyimpanan publik GcsApiTest() { File p12File = new File(KEY_P12); try { httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactory(JacksonFactory.getDefaultInstance()) .setServiceAccountId(SERVICE_ACCOUNT_EMAIL) .setServiceAccountScopes( Collections.singleton(STORAGE_SCOPE)) .setServiceAccountPrivateKeyFromP12File(p12File).build(); storage = new Storage.Builder(httpTransport, JacksonFactory.getDefaultInstance(), credential) .setApplicationName(PROJECT_NAME).build(); } catch (GeneralSecurityException | IOException e1) { e1.printStackTrace(); System.exit(1); } } /** * Metode untuk menampilkan nama file pertama dalam bucket. * * @return nama file, atau null jika bucket kosong * @throws IOException */ public String GetFirstFile() throws IOException { Storage.Objects.List listObjects = storage.objects().list(BUCKET_NAME); listObjects.setMaxResults(5L); com.google.api.services.storage.model.Objects objects = listObjects .execute(); // bucket kosong? if (null == objects.getItems() || objects.getItems().isEmpty()) { System.out.println("Bucket \"" + BUCKET_NAME + "\" empty or invalid."); return null; } StorageObject object = objects.getItems().get(0); System.out.println("First object in bucket: \"" + object.getName() + "\"."); return object.getName(); } /** * Metode untuk mendownload file yang ditentukan dari bucket penyimpanan * * @param nama file * Nama file yang harus didownload. * @throws IOException */ public void DownloadFile(String filename) throws IOException { Storage.Objects.Get getObject = storage.objects().get(BUCKET_NAME, filename); OutputStream os = new FileOutputStream(filename, true); getObject.getMediaHttpDownloader().setDirectDownloadEnabled(true); getObject.executeMediaAndDownloadTo(os); System.out.println("File \"" + filename + "\" downloaded."); } /** * Metode utama untuk menjalankan pengujian yang berbeda. * * @param args */ public static void main(String[] args) { GcsApiTest gcsApiTest = new GcsApiTest(); try { String filename = gcsApiTest.GetFirstFile(); gcsApiTest.DownloadFile(filename); } catch (IOException e) { System.out.println(e.getMessage()); } } }
Sambungan serentak dan pemerlambat
Tidak ada batas dari sistem untuk sambungan serentak. Namun, untuk menghindari penyalahgunaan, Google memperlambat permintaan pengambilan Transfer Data.