Thông báo

Chỉ có trong Google Ad Manager 360.

Truy cập bộ chứa lưu trữ của Ad Manager

Cách tải tệp Chuyển dữ liệu của bạn xuống

Google Cloud Storage là một sản phẩm riêng biệt của Google mà Ad Manager sử dụng làm kho lưu trữ dữ liệu cho báo cáo Chuyển dữ liệumã cookie đối tượng được tải lên hàng loạt.

Bài viết này nhằm giúp bạn sử dụng các công nghệ chuẩn của Google Cloud Storage để tích hợp với quá trình thiết lập bộ nhớ đám mây cụ thể của Ad Manager. Tuy nhiên, tài liệu chính bạn cần tham khảo cho Google Cloud Storage là trang web dành cho nhà phát triển Google Cloud Storage.

Các phương pháp

Có ba cách để bạn có thể truy cập vào bộ chứa lưu trữ đám mây Ad Manager. Các cách đó (xếp theo thứ tự phức tạp) như sau:

  • Trên web: Truy cập https://console.developers.google.com/storage/gdfp-[Mã mạng Ad Manager].
  • gsutil là một công cụ dòng lệnh dựa trên Python, cung cấp các lệnh giống Unix để tương tác với bộ chứa lưu trữ. Quy trình xác thực bộ chứa được tóm tắt và xử lý tự động.
  • API Google Cloud Storage là một API đầy đủ tính năng để chỉnh sửa bộ chứa lưu trữ, có sẵn trên giao diện web của JSON, XML hoặc RESTful. Thư viện ứng dụng API được cung cấp cho nhiều môi trường lập trình phổ biến, bao gồm cả Java, JavaScript, Python và Objective-C. Cách tiếp cận này hữu ích nhất nếu bạn cần chỉnh sửa bộ chứa lưu trữ theo chương trình để tích hợp với ứng dụng Google App Engine hoặc ứng dụng web Java.

Bài viết này cung cấp thông tin chi tiết về API Google Cloud Storage. Phương pháp truy cập web và gsutil dễ quản lý hơn, vì vậy bạn nên khám phá các phương pháp này trước. Bạn có thể xem tài liệu đầy đủ về các phương pháp này trên trang web của nhà phát triển Google Cloud Storage.

Quản lý quyền truy cập vào bộ chứa lưu trữ Ad Manager

Bộ chứa lưu trữ mà Ad Manager sử dụng thuộc về một dự án bộ nhớ đám mây do Google sở hữu. Bộ chứa lưu trữ của Ad Manager không xuất hiện trong danh sách dự án của riêng bạn trong Google Developers Console.

Bạn sẽ cần làm việc với đại diện Google của mình để thiết lập các tính năng phụ thuộc vào bộ chứa lưu trữ của Ad Manager. Người đại diện sẽ cung cấp một nhóm Google để giúp bạn quản lý các bộ chứa lưu trữ của mình.

Nếu là quản trị viên của một nhóm hiện có trên G Suite, thì bạn có thể cung cấp tên của nhóm Google G Suite cho người đại diện của mình trong quy trình kích hoạt tính năng. Họ sẽ làm việc với bạn để kích hoạt bất kỳ tính năng nào có sử dụng bộ chứa lưu trữ của Ad Manager bằng cách sử dụng nhóm hiện có của bạn.

Nếu quản lý nhiều hơn một mạng Ad Manager có quyền truy cập vào tính năng Chuyển dữ liệu, thì bạn nên liên hệ với đại diện Google của mình để có thể hợp nhất việc quản lý mạng. Bạn sẽ sử dụng một nhóm để quản lý tất cả bộ chứa Chuyển dữ liệu trên các mạng của bạn.

Bạn không thể dùng các nhóm Google không thuộc G Suite để quản lý bộ chứa lưu trữ của Ad Manager.

Sử dụng API Google Cloud Storage

Nếu đã xác định rằng truy cập API là phương pháp phù hợp nhất cho nhu cầu của mình, thì bạn nên định cấu hình tài khoản dịch vụ Google Cloud Storage.

Định cấu hình tài khoản dịch vụ Google Cloud Storage

Khi truy cập vào bộ chứa lưu trữ thông qua API, bạn nên định cấu hình tài khoản dịch vụ thay vì chạy trong bối cảnh của người dùng. Tài khoản dịch vụ giúp đơn giản hóa quá trình phát triển ứng dụng bằng cách sử dụng khóa riêng để xác thực, thay vì mã thông báo OAuth do hệ thống tự động tạo. Để định cấu hình tài khoản dịch vụ:

  1. Chuyển đến Google Developer Console.

  2. Tạo một dự án mới (hoặc chọn một dự án hiện có) làm dự án gốc của ứng dụng của bạn và nhấp vào đó.

  3. (Tùy chọn) Nếu bạn dự định sao chép các tệp từ bộ chứa lưu trữ của Ad Manager vào tài khoản Google Cloud Storage của riêng mình, hãy nhấp vào Thanh toán và cài đặt để thêm nguồn thanh toán vào dự án của bạn.

  4. Tạo mã ứng dụng mới:

    1. Nhấp vào API và Dịch vụ > Thông tin xác thực.

    2. Nhấp vào Tạo mã ứng dụng mới.

    3. Chọn Tài khoản dịch vụ làm loại ứng dụng sau đó nhấp vào Tạo mã ứng dụng.

    4. Địa chỉ email được tạo có định dạng [unique-id]@developer.gserviceagccount.com. Sao chép và lưu địa chỉ email này để thêm vào nhóm Google của bạn.

    5. Nhấp vào Tạo khóa P12 mới. Tệp được lưu vào máy tính. Bạn có thể sử dụng khóa này trong các ứng dụng mình phát triển để truy cập API, như trong mã ví dụ bên dưới.

  5. Thêm địa chỉ email vào nhóm Google bạn đã tạo để quản lý quyền truy cập vào bộ chứa lưu trữ của Ad Manager. Nhấp vào Thêm thành viên trực tiếp thay vì 'mời' để thêm tài khoản dịch vụ. Nếu bạn không có quyền truy cập, hãy yêu cầu quản trị viên nhóm Google thay mặt cho bạn thêm địa chỉ. 
Ví dụ về mã

Google cung cấp các mã mẫu và thư viện cho Google Cloud Storage. Ví dụ viết bằng Java sau đây về cách đọc tệp từ bộ chứa lưu trữ đám mây của Ad Manager cho thấy cách các thành phần bạn đã định cấu hình khi thiết lập tài khoản dịch vụ có thể ảnh hưởng đến mã của bạn như thế nào:

  • Tên dự án: Tên của dự án Google Cloud Storage.

  • Địa chỉ email tài khoản dịch vụ: Địa chỉ email bạn đã tạo.

  • Tệp khóa .p12: Tệp bạn đã tải xuống.

  • Tên bộ chứa: Google cung cấp tên này khi bạn kích hoạt một tính năng sử dụng bộ chứa lưu trữ đám mây của 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 {
    /**
     * Tên của dự án mà tài khoản dịch vụ đã được tạo.
     * 
     * Thông tin này hiển thị trong Google Developers Console.
     */
    private static final String PROJECT_NAME = "tên dự án";

    /**
     * Địa chỉ email của nhà phát triển tài khoản dịch vụ.
     * 
     * Email này được tạo khi Mã ứng dụng tài khoản dịch vụ trong
     * Google Developers Console được tạo và bạn có thể truy xuất email này từ trang Thông tin xác
     * thực. Bạn cũng cần thêm email này vào Nhóm Google dùng để kiểm soát
     * quyền truy cập vào bộ chứa lưu trữ.
     */
    private static final String SERVICE_ACCOUNT_EMAIL = "địa chỉ email tài khoản dịch vụ";

    /**
     * Bộ chứa để sử dụng cho các hoạt động lưu trữ.
     * 
     * Tên của bộ chứa này do Người quản lý tài khoản của bạn cung cấp cho
     * bạn. Tên này có thể tương tự như "gdfp-12345678" hoặc
     * "gdfp_cookieupload_12345678", tùy thuộc vào tiện ích Ad Manager bạn đang sử dụng.
     */
    private static final String BUCKET_NAME = "tên bộ chứa";

    /**
     * Phạm vi Google Cloud Storage OAuth 2.0 để đọc/ghi. Phạm vi này phải
     * tương ứng với các quyền truy cập mà Nhóm Google của bạn có cho
     * bộ chứa và bạn không thể yêu cầu quyền truy cập không được cấp cho
     * Nhóm (có thể là read_only).
     */
    private static final String STORAGE_SCOPE = 
        "https://www.googleapis.com/auth/devstorage.read_write";

    /**
     * Đường dẫn đến tệp key.p12 cung cấp quyền truy cập vào bộ chứa.
     * 
     * Tệp này được tạo khi ID ứng dụng dịch vụ được tạo. Nếu không
     * có tệp này, thì bạn sẽ cần tạo khóa p12 của ứng dụng mới từ
     * Google Developers Console.
     */
    private static final String KEY_P12 = "đường dẫn đến tệp khóa .p12";

    /** Chuyển HTTP. */
    private HttpTransport httpTransport;
    private Storage storage;

    // constructor, sets up credentials and storage objects
    public 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);
	}
    }

    /**
     * Phương thức trả về tên của tệp đầu tiên trong nhóm.
     * 
     * @trả về tên của tệp hoặc null nếu bộ chứa trống
     * @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();

	// empty bucket?
	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();
    }

    /**
     * Phương pháp tải tệp được chỉ định xuống từ bộ chứa
     * 
     * Tên tệp @param
     *            Tên của tệp cần được tải xuống.
     * @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.");
    }

    /**
     * Phương pháp chính để thực thi các thử nghiệm.
     * 
     * @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());
	}
    }
}

Kết nối điều chỉnh và đồng thời

Không có giới hạn định trước về các kết nối đồng thời. Tuy nhiên, để tránh lạm dụng, Google điều chỉnh các yêu cầu tìm nạp Chuyển dữ liệu.

Bạn có thể đọc phần Google Cloud Storage của blog Google Code chính thức để biết tin tức mới nhất và đăng câu hỏi lên Diễn đàn thảo luận về Google Cloud Storage. Hãy thêm "Lỗi" hoặc "Yêu cầu tính năng" vào dòng chủ đề nếu cần. Để biết thêm câu hỏi về Google Cloud Storage, hãy xem phần Câu hỏi thường gặp về Google Cloud Storage.

Thông tin này có hữu ích không?

Chúng tôi có thể cải thiện trang này bằng cách nào?
Tìm kiếm
Xóa nội dung tìm kiếm
Đóng tìm kiếm
Trình đơn chính
12454770268456749280
true
Tìm kiếm trong Trung tâm trợ giúp
true
true
true
true
true
148
false
false