Akses ke bucket penyimpanan Transfer Data dikelola melalui peran pengguna di Google Ad Manager. Setelah memiliki izin peran pengguna yang diperlukan, Anda dapat menggunakan metode pilihan Anda untuk mengakses file Transfer Data.
Langsung ke sebuah bagian artikel ini
- Tentang peran pengguna untuk izin
- Melihat izin dalam peran
- Metode untuk mengakses bucket penyimpanan
- Menggunakan Google Cloud Storage API
Tentang peran pengguna untuk izin
Untuk mengakses bucket penyimpanan, Anda harus memiliki peran dengan izin "Melihat bucket transfer data" diaktifkan.
- Peran pengguna Administrator: Izin diaktifkan secara default untuk peran pengguna Administrator bawaan.
- Peran pengguna khusus: Izin dapat ditambahkan ke peran pengguna khusus.
Untuk membuat perubahan pada peran pengguna, Anda harus merupakan Administrator di jaringan, atau memiliki izin "Mengedit pengguna, peran, dan tim di tab Admin". Perhatikan bahwa seorang pengguna hanya dapat dikaitkan dengan satu peran dalam satu waktu.
Untuk mengetahui detail selengkapnya, buka Mengelola keanggotaan peran pengguna.
Melihat izin dalam peran
Anda dapat meninjau peran yang saat ini dimiliki pengguna dan menambahkan atau menghapus izin sebagaimana diperlukan.
- Login ke Google Ad Manager.
- Klik Admin, lalu Akses & otorisasi.
- Klik Peran, lalu nama peran.
- Di bagian "Pelaporan", temukan izin "Melihat bucket transfer data".
- (Opsional) Untuk mengaktifkan izin untuk peran, centang kotak.
Metode untuk mengakses bucket penyimpanan
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.
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.
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 , lalu 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
. Tambahkan pengguna akun layanan ke jaringan Ad Manager Anda, dan pastikan mereka memiliki peran dengan izin "Melihat bucket transfer data". -
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.
-
- Pengguna dengan izin "Melihat bucket transfer data" akan memiliki akses ke bucket penyimpanan Ad Manager 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 dibuat setelah membuat Client ID Akun Layanan di * Google Developers Console, dan dapat diambil dari halaman * Kredensial. */ 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 untuk izin "Melihat bucket transfer data" * untuk bucket, dan Anda tidak dapat meminta hak akses yang * tidak diberikan melalui izin tersebut. */ 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.