Přístup k segmentům úložiště Přenosu dat se spravuje pomocí uživatelských rolí ve službě Google Ad Manager. Jakmile získáte potřebné oprávnění uživatelské role, můžete k souborům Přenosu dat přistupovat libovolnou metodou.
Odkazy k přechodu na sekce článku:
- Uživatelské role pro oprávnění
- Zobrazení oprávnění v roli
- Metody přístupu k segmentům úložiště
- Použití rozhraní Google Cloud Storage API
Uživatelské role pro oprávnění
K přístupu k segmentům úložiště je potřeba role s oprávněním Zobrazit segmenty přenosu dat.
- Administrátorské uživatelské role: U integrované uživatelské role Administrátor je toto oprávnění zapnuté ve výchozím nastavení.
- Vlastní uživatelské role: Oprávnění lze přidat k vlastním uživatelským rolím.
Pokud chcete provádět změny uživatelských rolí, musíte být v síti administrátorem nebo mít oprávnění Úprava uživatelů, rolí a týmů na kartě Administrátor. Uživatel může být vždy přidružen jen k jedné roli.
Další informace najdete v článku Správa členství v uživatelských rolích.
Zobrazení oprávnění v roli
Můžete zkontrolovat, jakou roli uživatel momentálně má, a podle potřeby oprávnění přidat nebo odebrat.
- Přihlaste se do služby Google Ad Manager.
- Klikněte na Administrátor a poté na Přístup a autorizace.
- Klikněte na Role a poté na název role.
- V části Přehledy vyhledejte oprávnění Zobrazit segmenty přenosu dat.
- (Volitelné) Pokud chcete oprávnění pro roli povolit, zaškrtněte políčko.
Metody přístupu k segmentům úložiště
Google Cloud Storage je samostatná služba Google, kterou služba Ad Manager používá jako datové úložiště pro přehledy Přenosu dat a hromadně nahraná ID souborů cookie publika.
K segmentům služby Ad Manager v cloudovém úložišti lze získat přístup třemi způsoby. V pořadí podle složitosti:
- Na webu: Navštivte stránku
https://console.developers.google.com/storage/gdfp-[[kód sítě Ad Manager]]
. - gsutil je na Pythonu založený nástroj příkazového řádku, který umožňuje interakci se segmenty v úložišti prostřednictvím příkazů podobných Unixu. Ověření pro segmenty je abstrahováno a provádí se automaticky.
- Google Cloud Storage API je úplné rozhraní API k manipulaci se segmentem úložiště dostupné prostřednictvím RESTful webových rozhraní JSON a XML. Klientské knihovny rozhraní API jsou k dispozici pro mnoho oblíbených programovacích prostředí, včetně Javy, JavaScriptu, Pythonu a Objective-C. Tento přístup je nejužitečnější, pokud se segmenty úložiště potřebujete manipulovat programaticky kvůli integraci s aplikací Google App Engine nebo webovou aplikací v jazyce Java.
Tento článek obsahuje podrobné informace o rozhraní Google Cloud Storage API. Správa přístupu pomocí webu a nástroje gsutil je snazší, proto doporučujeme nejdříve prozkoumat tyto metody. Jsou plně zdokumentovány na webu Google Cloud Storage pro vývojáře.
Použití rozhraní Google Cloud Storage API
Pokud jste vyhodnotili, že je pro vaše potřeby nejlepší přístup přes rozhraní API, doporučujeme vám nakonfigurovat servisní účet služby Google Cloud Storage.
Konfigurace servisního účtu služby Google Cloud Storage
Při přístupu k segmentu v úložišti přes rozhraní API doporučujeme nepoužívat kontext uživatele, ale servisní účet. Servisní účty vývoj aplikací zjednodušují, protože se u nich k ověření namísto dynamicky generovaného tokenu OAuth používá soukromý klíč. Servisní účet nakonfigurujete takto:
-
Přejděte do konzole Google Developer Console.
-
Vytvořte nový projekt (nebo vyberte existující projekt), pod který aplikace bude patřit, a klikněte na něj.
-
(Volitelné) Pokud máte v plánu kopírovat soubory ze segmentu služby Ad Manager v úložišti do svého účtu Google Cloud Storage, klikněte na Billing & settings (Fakturace a nastavení) a přidejte do projektu zdroj fakturace.
-
Vytvořte nové ID klienta:
-
Klikněte na APIs & Services (API a služby) a pak na Credentials (Identifikační údaje).
-
Klikněte na Create new Client ID (Vytvořit nové ID klienta).
-
Jako typ aplikace vyberte Service account (Servisní účet) a poté klikněte na Create Client ID (Vytvořit ID klienta).
-
Vygenerovaná e‑mailová adresa bude mít formát
[jedinečné-id]@developer.gserviceagccount.com
. Přidejte uživatele servisního účtu do sítě Ad Manager a zajistěte, aby měl roli s oprávněním Zobrazit segmenty přenosu dat. -
Klikněte na Generate new P12 key (Vytvořit nový klíč P12). Soubor se uloží do počítače. Tento klíč použijte k přístupu k rozhraní API v aplikacích, které vyvíjíte, jak je uvedeno v příkladu kódu níže.
-
- Uživatelé s oprávněním Zobrazit segmenty přenosu dat budou mít přístup k vašim segmentům služby Ad Manager v úložišti.
Společnost Google poskytuje ukázky kódu a knihovny pro službu Google Cloud Storage. Následující příklad v jazyce Java ke čtení souboru ze segmentu služby Ad Manager v cloudovém úložišti ukazuje, jak mohou být součásti nakonfigurované při nastavování účtu služby začleněny do kódu:
-
Název projektu: Název projektu Google Cloud Storage.
-
E‑mailová adresa servisního účtu: E‑mailová adresa, kterou jste vygenerovali.
-
Soubor klíče .p12: Stažený soubor.
-
Název segmentu: Tento název poskytuje Google při aktivaci funkce, která využívá segmenty služby Ad Manager v cloudovém úložišti.
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 { /** * The name of the project under which the service account was created. * * This information is displayed under the Google Developers Console. */ private static final String PROJECT_NAME = "project name"; /** * Developer Email address of the service account. * * This email is generated upon creating a Service Account Client ID in your * Google Developers Console, and can be retrieved from the Credentials * page. */ private static final String SERVICE_ACCOUNT_EMAIL = "service account email address"; /** * Bucket to use for storage operations. * * The name of this bucket was provided to you by your Account * Manager. It likely has a name similar to "gdfp-12345678" or * "gdfp_cookieupload_12345678", depending on the Ad Manager add-on you're using. */ private static final String BUCKET_NAME = "bucket name"; /** * Google Cloud Storage OAuth 2.0 scope for read/write. This should * correspond to the access rights for your "View data transfer buckets" * permission for the bucket, and you cannot request access rights that are * not granted via the permission. */ private static final String STORAGE_SCOPE = "https://googleapis.com/auth/devstorage.read_write"; /** * Path to the key.p12 file providing access to the bucket. * * This file is created when the service client ID is created. If you don't * have this file, you will need to generate a new client p12 key from the * Google Developers Console. */ private static final String KEY_P12 = "path to .p12 key file"; /** HTTP transport. */ 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); } } /** * 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(); } /** * Method to download the specified file from the storage bucket * * @param filename * Name of the file that should be downloaded. * @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."); } /** * Main method to execute the different tests. * * @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()); } } }
Omezování a souběžná připojení
Není dán žádný předdefinovaný limit souběžných připojení. Ve snaze zabránit zneužívání však společnost Google požadavky k načtení Přenosu dat omezuje.