設定 API 存取權

以下說明如何使用 SDK 或 REST 設定 Data Manager API 的存取權。

必要條件

使用 Data API 前,請先確認下列事項:

  1. Google Cloud 專案
  2. 在 Google Cloud 專案中具有 serviceusage.services.enable 權限的 Google 帳戶,或具有包含該權限的角色。舉例來說,roles/ownerroles/serviceusage.serviceUsageAdmin 都包含 serviceusage.services.enable 權限。如要查看權限,請參閱「查看目前的存取權」。

啟用 API

如果尚未啟用 Data Manager API,請按一下「啟用 Data Manager API」,或按照操作說明手動執行這個步驟。

啟用 Data Manager API

如果找不到 Data Manager API 或無法啟用 Data Manager API,請確認您的 Google 帳戶符合必要條件

設定驗證方法

除了 API 金鑰,您也可以使用Google 的任何驗證方法。建議您參閱「為您的用途選擇合適的驗證方法」,決定適合您用途的方法。

常見的驗證方法有使用者帳戶服務帳戶

  • 使用者帳戶:代表直接與 Google API 和服務互動的人員。
  • 服務帳戶:代表應用程式 (而非使用者) 存取資源。應用程式可透過這些 API 管理驗證和授權。例如,如果一個應用程式需要存取 Google Cloud 資源。

您的整合項目可以使用應用程式預設憑證 (ADC),自動從環境中尋找憑證,因此您不必變更用戶端程式碼來進行驗證。

選擇使用者帳號服務帳號模擬來設定 ADC:

以下是使用 使用者帳戶憑證進行驗證的步驟:

  1. 為您的專案配置 Google Auth Platform 設定。

    1. 在 Google Cloud 控制台中開啟 品牌頁面

    2. 選取專案。

    3. 填寫表格並點選建立

  2. 由於 Data Manager API 範圍屬於機密範圍,因此必須執行下列步驟:

    1. 前往項目的 資料存取 設定。

    2. 點選新增或移除作用域

    3. 在作用域清單中選取 資料管理器 API 旁的複選框,然後按一下 更新

    4. 按一下 [儲存]

    5. 前往 Google Cloud 控制台中的 受眾群體,並更新 發布狀態使用者類型。瞭解更多關於這些設定的信息,請參閱管理應用程式受眾

  3. 按一下 建立 OAuth2 用戶端 在專案中建立 OAuth2 用戶端,或依照 說明 建立 桌面 OAuth2 用戶端。

    建立 OAuth2 客戶端

    最後一步,點選下載客戶端設定,並記下您選擇的下載位置。

  4. 運行以下命令產生本地 ADC 檔案。這個指令會啟動網路流程,提示您登入 API 使用的 Google 帳戶。

    PATH_TO_CLIENT_JSON 替換為您下載的 JSON 檔案的名稱。

    gcloud auth application-default login \
      --scopes="https://www.googleapis.com/auth/datamanager,https://www.googleapis.com/auth/cloud-platform" \
      --client-id-file="PATH_TO_CLIENT_JSON"
    
  5. 使用下列指令確認憑證設定正確無誤。 如果成功,該命令會將存取權杖列印到控制台。

    gcloud auth application-default print-access-token
    

如要進一步瞭解應用程式的驗證和憑證,請參閱「Google 的驗證方式」和「應用程式預設憑證的運作方式」。

設定操作帳戶存取權限

授予與使用者帳戶相關聯的電子郵件地址存取權, Destination

  • 如果使用 Google Ads 或資料合作夥伴帳戶,按照說明操作將使用者的電子郵件地址新增至帳戶。
  • 如果使用 Display & Video 360 帳戶,請按照操作說明將使用者的電子郵件地址新增至帳戶。

為程式設計語言設定 SDK

在本機上,安裝您選擇的 SDK:

REST

  1. 請使用您的帳戶和目的地的值更新以下範例中的佔位符,例如 OPERATING_ACCOUNT_PRODUCTOPERATING_ACCOUNT_IDAUDIENCE_ID
  2. PROJECT_ID 替換為您的 Google Cloud ID。
  3. 將範例複製到命令列以發送請求。

    如果您不是透過已建立的產品連結存取 operatingAccount,請刪除 destinations 中條目的 linkedAccount 屬性。

    #!/bin/bash
    
    # Uses gcloud to get an access token. If the Application Default
    # Credentials aren't for a service account, the command that specifies
    # --scopes fails. This sample falls back to the command without the
    # --scopes argument.
    DATA_MANAGER_ACCESS_TOKEN="$(gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/datamanager || \
      gcloud auth application-default print-access-token)"
    
    # Fetches and prints the scope information for the access token. If you
    # get scope-related errors when you send the request in the next step,
    # verify that this output includes the Data Manager API scope:
    #   https://www.googleapis.com/auth/datamanager
    curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token="${DATA_MANAGER_ACCESS_TOKEN}"
    
    # Sends the request.
    curl -X POST "https://datamanager.googleapis.com/v1/audienceMembers:ingest" \
      --header "Authorization: Bearer ${DATA_MANAGER_ACCESS_TOKEN}" \
      --header "x-goog-user-project: PROJECT_ID" \
      --header "Content-Type: application/json" \
      --data @- <<EOF
    {
      "destinations": [
        {
          "operatingAccount": {
            "accountType": "OPERATING_ACCOUNT_TYPE",
            "accountId": "OPERATING_ACCOUNT_ID"
          },
          "loginAccount": {
            "accountType": "LOGIN_ACCOUNT_TYPE",
            "accountId": "LOGIN_ACCOUNT_ID"
          },
          "linkedAccount": {
            "accountType": "LINKED_ACCOUNT_TYPE",
            "accountId": "LINKED_ACCOUNT_ID"
          },
          "productDestinationId": "AUDIENCE_ID"
        }
      ],
      "audienceMembers": [
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
              },
              {
                "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
              }
            ]
          }
        },
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3"
              },
              {
                "emailAddress": "54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51"
              },
              {
                "emailAddress": "e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478"
              }
            ]
          }
        },
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0"
              },
              {
                "emailAddress": "f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5"
              }
            ]
          }
        },
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f"
              },
              {
                "emailAddress": "223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4"
              }
            ]
          }
        }
      ],
      "consent": {
        "adUserData": "CONSENT_GRANTED",
        "adPersonalization": "CONSENT_GRANTED"
      },
      "encoding": "HEX",
      "termsOfService": {
        "customerMatchTermsOfServiceStatus": "ACCEPTED"
      },
      "validateOnly": true
    }
    EOF
    

.NET

安裝用戶端程式庫

請依照 .NET 用戶端程式庫安裝指南 中的說明,在專案中新增對客戶端程式庫的依賴項。

(可選)取得實用程式庫和程式碼範例。

  1. 下載並解壓縮 data-manager-dotnet.tar.gz

  2. 在你的 .NET 專案中,聲明對實用程式庫的 ProjectReference 相依性。將 PATH_TO_UTILITY_LIBRARY 替換為您從 data-manager-dotnet.tar.gz 提取 data-manager-dotnet 目錄的位置。

    <ProjectReference Include="PATH_TO_UTILITY_LIBRARY\Google.Ads.DataManager.Util\src\Google.Ads.DataManager.Util.csproj" />
    
  3. 如要格式化資料,請在 .NET 專案中使用 Formatter 公用程式。

  4. 瀏覽 samples 子目錄中的程式碼範例。

    切換到 samples 目錄,然後使用 dotnet run 取得可用樣本清單。

    dotnet run
    

    執行範例時傳遞 --help 引數,即可列印用法陳述式和預期參數。

    dotnet run -- ingest-audience-members --help
    

    為了幫助您開始使用一些範例數據,請使用位於 samples/sampledata/audience_members_1.csv 的檔案。

Java

安裝用戶端程式庫

  1. 下載並解壓縮 google-cloud-ads-datamanager-v1-java.tar.gz
  2. 前往 google-cloud-ads-datamanager-v1-java 目錄。
  3. 執行下列指令,將程式庫建構及發布至本機 Maven 存放區,以搭配 Maven 或 Gradle 使用。

    ./gradlew install
    
  4. 在 Java 專案中,宣告 Data Manager API 程式庫的依附元件。

    Gradle:

    implementation 'com.google.cloud:gapic-google-cloud-ads-datamanager-v1-java:0.1.4'
    

    Maven:

    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>gapic-google-cloud-ads-datamanager-v1-java</artifactId>
      <version>0.1.4</version>
    </dependency>
    

選用:取得公用程式庫和程式碼範例。

  1. 複製 GitHub 存放區

    git clone https://github.com/googleads/data-manager-java.git
    
  2. 前往 data-manager-java 目錄。

  3. 建立實用程式庫並將其發布到本機 Maven 倉庫。

    ./gradlew data-manager-util:install
    
  4. 在你的 Java 專案中,聲明對實用程式庫的依賴關係。

    Gradle:

    implementation 'com.google.api-ads:data-manager-util:0.1.0'
    

    Maven:

    <dependency>
       <groupId>com.google.api-ads</groupId>
       <artifactId>data-manager-util</artifactId>
       <version>0.1.0</version>
    </dependency>
    
  5. 如要格式化及加密資料,請在 Java 專案中使用 UserDataFormatterEncrypter 公用程式。

  6. 瀏覽 data-manager-samples 子目錄中的程式碼範例,或 GitHub 上的程式碼範例。如要從指令列執行範例,請使用 Gradle run 工作。

    舉例來說,下列指令會執行 IngestAudienceMembers 範例,並列印用法陳述式:

    ./gradlew data-manager-samples:run \
       --args='IngestAudienceMembers --help'
    

    為了幫助您開始使用一些範例數據,請使用位於 data-manager-samples/src/main/resources/sampledata/audience_members_1.csv 的檔案。

Node.js

安裝用戶端程式庫

  1. 下載並解壓縮 ads-datamanager-v1-nodejs.tar.gz
  2. 前往 ads-datamanager-v1-nodejs 目錄。
  3. 執行以下命令,將客戶端程式庫編譯並打包到 .tgz 檔案中,以便與 npm 一起使用。

    npm pack
    

    這項指令會產生名為 google-cloud-datamanager-0.1.4.tgz 的封存檔。請記下文件位置,以便在後續步驟中使用。

  4. 在你的 Node.js 專案中,透過新增 dependencies 條目來宣告對資料管理器 API 用戶端程式庫的依賴,該條目包含 google-cloud-datamanager-0.1.4.tgz 檔案的完整路徑和檔案名稱。

    {
       "dependencies": {
          ...
          "@google-cloud/datamanager": "file:PATH_TO_CLIENT_LIBRARY/google-cloud-datamanager-0.1.4.tgz",
          ...
       }
    }
    

選用:取得公用程式庫和程式碼範例。

  1. 下載並解壓縮 data-manager-node.tar.gz
  2. 前往 data-manager-node 目錄。
  3. 切換至 util 目錄。

    cd util
    
  4. 執行以下命令,將實用程式庫編譯並打包到 .tgz 檔案中,以便與 npm 一起使用。

    npm pack
    

    這個指令會產生一個名為 google-ads-datamanager-util-0.1.0.tgz 的歸檔檔。 請記下文件位置,以便在後續步驟中使用。

  5. 在 Node.js 專案中,為 Data Manager API 公用程式庫宣告依附元件,方法是為 google-ads-datamanager-util-0.1.0.tgz 檔案的完整路徑和檔案名稱新增 dependencies 項目。

    {
       "dependencies": {
          ...
          "@google-ads/data-manager-util": "file:PATH_TO_UTILITY_LIBRARY/google-ads-datamanager-util-0.1.0.tgz",
          ...
       }
    }
    

    若要格式化數據,請在 Node.js 專案中使用 UserDataFormatter 工具。

  6. 瀏覽 samples 子目錄中的程式碼範例。請依照以下步驟運行範例:

    1. google-cloud-datamanager-0.1.4.tgz 複製到 data-manager-node 目錄的父項目錄。

    2. 導航至 data-manager-node 下的 samples 目錄。

    3. 執行下列指令來編譯範例。

      npm run compile
      
    4. 運行範例,並傳遞任何必要的參數。執行範例時傳遞 --help 參數,以列印帶有預期參數的使用說明。

      例如,以下命令執行 ingest_audience_members 範例並列印用法說明:

      npx ts-node audiences/ingest_audience_members.ts --help
      

    如要開始使用一些範例資料,請使用 samples/sampledata/audience_members_1.csv 中的檔案。

PHP

安裝用戶端程式庫

  1. 下載並解壓縮 google-cloud-ads-datamanager-v1-php.tar.gz
  2. 前往 google-cloud-ads-datamanager-v1-php 目錄。
  3. 執行以下命令來解決庫的依賴關係:

    composer update --prefer-dist
    
  4. 在同一主機上的 PHP 專案的 composer.json 檔案中,請依照下列步驟聲明對資料管理器 API 庫的依賴:

    1. 新增 repositories 區段,指向 google-cloud-ads-datamanager-v1-php 目錄的位置。

      "repositories" : [
         {
            "type" : "path",
            "url" : "PATH_TO_CLIENT_LIBRARY"
         }
      ]
      
    2. 聲明對資料管理器 API 庫的依賴關係。

      "require": {
         "googleads/data-manager": "0.1.4"
      }
      

(可選)取得實用程式庫和程式碼範例。

  1. 下載並解壓縮 data-manager-php.tar.gz
  2. 前往 data-manager-php 目錄。
  3. 執行以下命令來解決庫的依賴關係:

    composer update --prefer-dist
    
  4. 在同一主機上的 PHP 專案的 composer.json 檔案中,請依照下列步驟聲明對實用程式庫的依賴項:

    1. repositories 部分中新增一個指向 data-manager-php 目錄位置的項目。

      "repositories" : [
         {
            "type" : "path",
            "url" : "PATH_TO_UTILITY_LIBRARY"
         }
      ]
      
    2. 宣告公用程式庫的依附元件。

      "require": {
         "googleads/data-manager-util": "@dev"
      }
      

    若要格式化數據,請在 PHP 專案中使用 Formatter 工具。

  5. 瀏覽 samples 子目錄中的程式碼範例。請依照以下步驟運行範例:

    1. 前往 samples 目錄。

    2. DATA_MANAGER_PHP_LIB 環境變數設定為您解壓縮客戶端庫的路徑。

      export DATA_MANAGER_PHP_LIB="PATH_TO_CLIENT_LIBRARY"
      
    3. 執行下列指令,解決程式庫的依附元件問題:

      composer update --prefer-dist
      
    4. 運行範例,並傳遞任何必要的參數。執行範例時傳遞 --help 參數,以列印帶有預期參數的使用說明。

    為了幫助您開始使用一些範例數據,請使用位於 samples/sampledata/audience_members_1.csv 的檔案。

Python

安裝用戶端程式庫

請依照 Python 用戶端程式庫安裝指南 中的說明,在您的專案中新增對 google-ads-datamanager 用戶端程式庫的依賴項。

(可選)取得實用程式庫和程式碼範例。

  1. 下載並解壓縮 data-manager-python.tar.gz
  2. 前往 data-manager-python 目錄。
  3. 如要在 Python 環境中安裝公用程式庫,請執行下列指令:

    pip install .
    
  4. 在你的 Python 專案中,聲明對實用程式庫的依賴關係。 舉例來說,如果您在專案中使用 requirements.txt 檔案,請在檔案中新增下列程式碼:

    google-ads-data-manager-util=0.2.0
    
  5. 若要格式化和加密數據,請在 Python 專案中使用 FormatterEncrypter 工具。

  6. 瀏覽 samples 子目錄中的程式碼範例。若要執行範例,請安裝必要的依賴項:

    pip install .[samples]
    

    執行範例時傳遞 --help 參數,以列印帶有預期參數的使用說明。

    如要開始使用一些範例資料,請使用 samples/sampledata/audience_members_1.csv 中的檔案。

Ruby

安裝用戶端程式庫

請依照 Ruby 用戶端程式庫安裝指南 中的說明,在您的專案中新增對客戶端程式庫的依賴項。

後續步驟