Αποκτήστε πρόσβαση σε κάδους αποθηκευτικού χώρου του Ad Manager

Πώς να κατεβάσετε τα αρχεία της Μεταφοράς δεδομένων

Το Google Cloud Storage είναι ένα ξεχωριστό προϊόν της Google που χρησιμοποιεί το Ad Manager ως χώρο φύλαξης για τις αναφορές της Μεταφοράς δεδομένων και αναγνωριστικά cookie κοινού μαζικής μεταφόρτωσης.

Αυτό το άρθρο προορίζεται να σας βοηθήσει να χρησιμοποιήσετε τις βασικές τεχνολογίες του Google Cloud Storage στη διεπαφή με τη ρύθμιση του συγκεκριμένου αποθηκευτικού χώρου cloud του Ad Manager. Ωστόσο, η κύρια αναφορά σας για το Google Cloud Storage είναι ο ιστότοπος προγραμματιστών του Google Cloud Storage.

Μέθοδοι

Υπάρχουν τρεις τρόποι με τους οποίους μπορείτε να αποκτήσετε πρόσβαση σε κάδους αποθηκευτικού χώρου του Ad Manager. Κατά σειρά πολυπλοκότητας:

  • Στον ιστό: Επισκεφτείτε τη διεύθυνση https://console.developers.google.com/storage/gdfp-[κωδικός δικτύου Ad Manager].
  • Το gsutil είναι ένα εργαλείο γραμμής εντολών που βασίζεται σε Python, το οποίο παρέχει εντολές τύπου Unix για την αλληλεπίδραση με τον κάδο του αποθηκευτικού χώρου. Ο έλεγχος ταυτότητας για τον κάδο αφαιρείται και ο χειρισμός του γίνεται αυτόματα.
  • Το API Google Cloud Storage είναι ένα API πλήρους λειτουργικότητας για τη διαχείριση του κάδου του αποθηκευτικού χώρου, το οποίο είναι διαθέσιμο μέσω διεπαφών ιστού JSON ή XML RESTful. Οι βιβλιοθήκες εφαρμογών πελατών API διατίθενται για πολλά δημοφιλή περιβάλλοντα προγραμματισμού, συμπεριλαμβανομένων των Java, JavaScript, Python και Objective-C. Αυτή η προσέγγιση είναι η πιο χρήσιμη, αν χρειάζεται να διαχειριστείτε τους κάδους του αποθηκευτικού χώρου μέσω προγραμματισμού για την ενσωμάτωση με την εφαρμογή Google App Engine ή μια εφαρμογή ιστού Java.

Αυτό το άρθρο παρέχει λεπτομέρειες σχετικά με το API του Google Cloud Storage. Η διαχείριση της πρόσβασης στον ιστό και το gsutil είναι πιο εύκολη, επομένως συνιστούμε να εξερευνήσετε πρώτα αυτές τις μεθόδους. Η πλήρης τεκμηρίωση είναι διαθέσιμη στον ιστότοπο προγραμματιστών του Google Cloud Storage.

Διαχειριστείτε την πρόσβαση στους κάδους αποθηκευτικού χώρου του Ad Manager

Οι κάδοι αποθηκευτικού χώρου που χρησιμοποιούνται από το Ad Manager περιλαμβάνονται σε ένα έργο αποθηκευτικού χώρου cloud που ανήκει στην Google. Οι κάδοι αποθηκευτικού χώρου του Ad Manager δεν εμφανίζονται στη δική σας λίστα έργων στο Google Developers Console.

Θα χρειαστεί να συνεργαστείτε με τον αντιπρόσωπο της Google για να ρυθμίσετε λειτουργίες που εξαρτώνται από τους κάδους αποθηκευτικού χώρου του Ad Manager. Θα παρέχει μια ομάδα Google που μπορείτε να χρησιμοποιήσετε για τη διαχείριση των κάδων αποθηκευτικού χώρου.

Εάν είστε ο διαχειριστής μιας υπάρχουσας ομάδας G Suite, μπορείτε να δώσετε το όνομα της ομάδας σας G Suite Google στον αντιπρόσωπό σας στο πλαίσιο της διαδικασίας ενεργοποίησης λειτουργιών. Θα συνεργαστεί μαζί σας για την ενεργοποίηση οποιασδήποτε λειτουργίας που χρησιμοποιεί τον κάδο αποθηκευτικού χώρου του Ad Manager χρησιμοποιώντας την υπάρχουσα ομάδα σας.

Εάν διαχειρίζεστε περισσότερα από ένα δίκτυα Ad Manager με πρόσβαση στη Μεταφορά δεδομένων, θα πρέπει να το γνωστοποιήσετε στον αντιπρόσωπο της Google, για την ενοποίηση της διαχείρισης του δικτύου. Θα χρησιμοποιηθεί μία ομάδα για τη διαχείριση όλων των κάδων της Μεταφοράς δεδομένων στα δίκτυά σας.

Οι ομάδες Google που δεν ανήκουν στο G Suite δεν μπορούν να χρησιμοποιηθούν για τη διαχείριση των κάδων αποθηκευτικού χώρου του Ad Manager.

Χρησιμοποιήστε το API του Google Cloud Storage

Εάν έχετε διαπιστώσει ότι η πρόσβαση API καλύπτει καλύτερα τις ανάγκες σας, σάς συνιστούμε να διαμορφώσετε έναν λογαριασμό υπηρεσίας Google Cloud Storage.

Διαμορφώστε έναν λογαριασμό υπηρεσίας του Google Cloud Storage

Κατά την πρόσβαση στον κάδο αποθηκευτικού χώρου μέσω του API, είναι προτιμότερο να διαμορφώσετε έναν λογαριασμό υπηρεσίας αντί για την εκτέλεση στο πλαίσιο ενός χρήστη. Οι λογαριασμοί υπηρεσίας απλοποιούν την ανάπτυξη εφαρμογών χρησιμοποιώντας ένα ιδιωτικό κλειδί για τον έλεγχο ταυτότητας αντί για ένα διακριτικό OAuth που δημιουργείται δυναμικά. Για να διαμορφώσετε έναν λογαριασμό υπηρεσίας:

  1. Μεταβείτε στο Google Developer Console.

  2. Δημιουργήστε ένα νέο έργο (ή επιλέξτε ένα υπάρχον έργο) ως γονικό στοιχείο της εφαρμογής σας και κάντε κλικ σε αυτό.

  3. (Προαιρετικό) Εάν σκοπεύετε να αντιγράψετε αρχεία από τον κάδο αποθηκευτικού χώρου του Ad Manager στον δικό σας λογαριασμό Google Cloud Storage, κάντε κλικ στην επιλογή Χρέωση και ρυθμίσεις για να προσθέσετε μια πηγή χρέωσης στο έργο σας.

  4. Δημιουργήστε νέο αναγνωριστικό πελάτη:

    1. Κάντε κλικ στην επιλογή API και υπηρεσίες > Διαπιστευτήρια.

    2. Κάντε κλικ στη Δημιουργία νέου αναγνωριστικού πελάτη.

    3. Επιλέξτε Λογαριασμός υπηρεσίας ως τύπο εφαρμογής και, στη συνέχεια, κάντε κλικ στη Δημιουργία αναγνωριστικού πελάτη.

    4. Η διεύθυνση ηλεκτρονικού ταχυδρομείου που δημιουργείται λαμβάνει τη μορφή [unique-id]@developer.gserviceagccount.com. Αντιγράψτε και αποθηκεύστε τη για να την προσθέσετε στην ομάδα σας Google.

    5. Κάντε κλικ στη Δημιουργία νέου κλειδιού P12. Το αρχείο αποθηκεύεται στον υπολογιστή σας. Χρησιμοποιήστε αυτό το κλειδί στις εφαρμογές που αναπτύσσετε για να αποκτήσετε πρόσβαση στο API, όπως φαίνεται στο παρακάτω παράδειγμα κώδικα.

  5. Προσθέστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου στην ομάδα Google που δημιουργήσατε για να διαχειριστείτε την πρόσβαση στους κάδους αποθηκευτικού χώρου του Ad Manager. Κάντε κλικ στην επιλογή Άμεση προσθήκη μελών αντί για πρόσκληση για την προσθήκη του λογαριασμού υπηρεσίας. Εάν δεν έχετε πρόσβαση, ζητήστε από τον διαχειριστή της ομάδας Google να προσθέσει τη διεύθυνση εκ μέρους σας. 
Παράδειγμα κώδικα

Η Google παρέχει δείγματα κώδικα και βιβλιοθήκες για το Google Cloud Storage. Το παρακάτω παράδειγμα Java για την ανάγνωση ενός αρχείου από έναν κάδο αποθηκευτικού χώρου cloud του Ad Manager δείχνει τον τρόπο με τον οποίο τα στοιχεία που έχετε διαμορφώσει κατά τη ρύθμιση του λογαριασμού υπηρεσίας ενδέχεται να επηρεάζουν τον κώδικα σας:

  • Όνομα έργου: Το όνομα έργου του Google Cloud Storage.

  • Διεύθυνση ηλεκτρονικού ταχυδρομείου λογαριασμού υπηρεσίας: Η διεύθυνση ηλεκτρονικού ταχυδρομείου που δημιουργήσατε

  • Αρχείο κλειδιού .p12: Το αρχείο που κατεβάσατε.

  • Όνομα κάδου: Το Google παρέχει αυτό το όνομα κατά την ενεργοποίηση μιας λειτουργίας που χρησιμοποιεί κάδους αποθηκευτικού χώρου 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 {
    /**
     * Το όνομα του έργου στο οποίο δημιουργήθηκε ο λογαριασμός υπηρεσίας.
     * 
     * Αυτές οι πληροφορίες εμφανίζονται στο Google Developers Console.
     */
    private static final String PROJECT_NAME = "project name";

    /**
     * Διεύθυνση ηλεκτρονικού ταχυδρομείου του λογαριασμού υπηρεσίας.
     * 
     * Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου δημιουργείται κατά τη δημιουργία ενός αναγνωριστικού πελάτη λογαριασμού υπηρεσίας στο
     * Google Developers Console και μπορεί να ανακτηθεί από τη σελίδα
     * Διαπιστευτηρίων. Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου θα πρέπει να προστεθεί επίσης στην Ομάδα Google που χρησιμοποιείται για τον έλεγχο
     * της πρόσβασης στον κάδο αποθηκευτικού χώρου.
     */
    private static final String SERVICE_ACCOUNT_EMAIL = "service account email address";

    /**
     * Κάδος που χρησιμοποιείται για τις λειτουργίες του αποθηκευτικού χώρου.
     * 
     * Το όνομα αυτού του κάδου παρασχέθηκε σε εσάς από τον Υπεύθυνο
     * λογαριασμού. Ενδέχεται να έχει ένα όνομα παρόμοιο με "gdfp-12345678" ή
     * "gdfp_cookieupload_12345678", ανάλογα με το πρόσθετο Ad Manager που χρησιμοποιείτε.
     */
    private static final String BUCKET_NAME = "bucket name";

    /**
     * Εύρος OAuth 2.0 Google Cloud Storage για ανάγνωση/εγγραφή. Αυτό θα πρέπει να
     * αντιστοιχεί στα δικαιώματα πρόσβασης που έχει η Ομάδα Google για τον
     * κάδο και δεν μπορείτε να ζητήσετε δικαιώματα πρόσβασης που δεν έχουν παραχωρηθεί στην
     * Ομάδα (τα οποία μπορεί να είναι read_only).
     */
    private static final String STORAGE_SCOPE = 
        "https://www.googleapis.com/auth/devstorage.read_write";

    /**
     * Διαδρομή στο αρχείο key.p12 που παρέχει πρόσβαση στον κάδο.
     * 
     * Αυτό το αρχείο δημιουργείται κατά τη δημιουργία του αναγνωριστικού πελάτη υπηρεσίας. Εάν δεν
     * έχετε αυτό το αρχείο, θα πρέπει να δημιουργήσετε ένα νέο κλειδί πελάτη p12 από το
     * Google Developers Console.
     */
    private static final String KEY_P12 = "path to .p12 key file";

    /** HTTP transport. */
    private HttpTransport httpTransport;
    private Storage storage;

    // simple 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);
	}
    }

    /**
     * Simple method to return the name of the first file in the bucket.
     * 
     * @return the name of the file, or null if the bucket is empty
     * @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();
    }

    /**
     * Απλή μέθοδος για τη λήψη του καθορισμένου αρχείου από τον κάδο του αποθηκευτικού χώρου
     * 
     * @param filename
     *            Το όνομα του αρχείου του οποίου θα πρέπει να γίνει λήψη.
     * @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.");
    }

    /**
     * Κύρια μέθοδος εκτέλεσης των διαφορετικών ελέγχων.
     * 
     * @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());
	}
    }
}

Περιορισμός και ταυτόχρονες συνδέσεις

Δεν υπάρχει προκαθορισμένο όριο στις ταυτόχρονες συνδέσεις. Ωστόσο, για να αποφευχθεί η κατάχρηση, το Google περιορίζει τα αιτήματα ανάκτησης της Μεταφοράς δεδομένων.

Ανατρέξτε στην ενότητα Google Cloud Storage του επίσημου ιστολογίου Κώδικα Google για τις πιο πρόσφατες ειδήσεις και δημοσιεύστε ερωτήσεις στο Φόρουμ συζήτησης του Google Cloud Storage. Προσθέστε τις ενδείξεις "Σφάλμα" ή "Αίτημα λειτουργίας" στη γραμμή θέματος. Για περισσότερες ερωτήσεις σχετικά με το Google Cloud Storage, ανατρέξτε στις Συνήθεις ερωτήσεις για το Google Cloud Storage.
Σας βοήθησε αυτό;
Με ποιον τρόπο μπορούμε να το βελτιώσουμε;