เวิร์กโฟลว์การตรวจสอบสิทธิ์แบบหลายผู้ใช้

ในเวิร์กโฟลว์การตรวจสอบสิทธิ์แบบหลายผู้ใช้ คุณจะสร้างโฟลว์ OAuth ของคุณเองเพื่อตรวจสอบสิทธิ์ผู้ใช้ มีแอปหลายประเภทที่กล่าวถึงในส่วนของเอกสารประกอบเกี่ยวกับตัวตนของ Google และการกำหนดค่าโปรเจ็กต์ Google Cloud Console ที่คุณต้องใช้เพื่อรองรับแอปประเภทนั้น Google Ads API รองรับแอปทุกประเภทที่กล่าวมา รายละเอียดทางเทคนิคเพิ่มเติมที่ควรทราบมีดังนี้

  1. หากต้องการเข้าถึง Google Ads API คุณควรกำหนดค่าแอปพลิเคชันเพื่อตรวจสอบสิทธิ์สำหรับขอบเขตต่อไปนี้

    https://www.googleapis.com/auth/adwords
    
  2. แอปของคุณอาจต้องทำการเรียก API ในนามของผู้ใช้ขณะที่ผู้ใช้ออฟไลน์ อยู่ สถานการณ์ทั่วไปคือการดาวน์โหลดเมตริกบัญชีแบบออฟไลน์เพื่อสร้าง รายงานและทำการวิเคราะห์บัญชี ด้วยเหตุนี้ เราจึงขอแนะนำให้คุณ ขอสิทธิ์เข้าถึงแบบออฟไลน์ของ OAuth

  3. คุณควรทำตามกระบวนการยืนยันแอป OAuth และรับการรับรองแอป

การกำหนดค่าไลบรารีของไคลเอ็นต์

เมื่อให้สิทธิ์ผู้ใช้และรับข้อมูลเข้าสู่ระบบ OAuth 2.0 แล้ว คุณจะกำหนดค่า ไลบรารีของไคลเอ็นต์ได้โดยทำตามวิธีการในแท็บที่สอดคล้องกับ ภาษาโปรแกรมของคุณ

Java

คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้างการเรียก API ไปยังบัญชีของผู้ใช้รายนั้น

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId(OAUTH_CLIENT_ID)
        .setClientSecret(OAUTH_CLIENT_SECRET)
        .setRefreshToken(REFRESH_TOKEN)
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the developer token which enables API access.
        .setDeveloperToken(DEVELOPER_TOKEN)
        // Sets the OAuth credentials which provide Google Ads account access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();
``` See the [configuration guide][java-config-guide] for additional options.

.NET

คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้างการเรียก API ไปยังบัญชีของผู้ใช้รายนั้น

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

ดูตัวเลือกเพิ่มเติมได้ในคำแนะนำในการกำหนดค่า

Python

คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้างการเรียก API ไปยังบัญชีของผู้ใช้รายนั้น

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "REFRESH_TOKEN",
    "client_id": "OAUTH_CLIENT_ID",
    "client_secret": "OAUTH_CLIENT_SECRET"}

client = GoogleAdsClient.load_from_dict(credentials)

ดูตัวเลือกเพิ่มเติมได้ในคำแนะนำในการกำหนดค่า

PHP

คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้างการเรียก API ไปยังบัญชีของผู้ใช้รายนั้น

$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

ดูตัวเลือกเพิ่มเติมได้ในคำแนะนำในการกำหนดค่า

Ruby

คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้างการเรียก API ไปยังบัญชีของผู้ใช้รายนั้น

  client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
    config.client_id = 'INSERT_CLIENT_ID_HERE'
    config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
    config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
    config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
    config.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
  end

ดูตัวเลือกเพิ่มเติมได้ในคำแนะนำในการกำหนดค่า

Perl

คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้างการเรียก API ไปยังบัญชีของผู้ใช้รายนั้น

my $api_client = Google::Ads::GoogleAds::Client->new({
  developer_token   => "INSERT_DEVELOPER_TOKEN_HERE",
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");

ดูตัวเลือกเพิ่มเติมได้ในคำแนะนำในการกำหนดค่า

curl

เริ่มต้นด้วยการใช้ไคลเอ็นต์ HTTP เพื่อดึงข้อมูลโทเค็นเพื่อการเข้าถึง OAuth 2.0 คู่มือนี้ ใช้คำสั่ง curl

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

ตอนนี้คุณใช้โทเค็นเพื่อเข้าถึงในการเรียก API ได้แล้ว ตัวอย่างต่อไปนี้ แสดงวิธีเรียกใช้รายงานแคมเปญโดยใช้เมธอด GoogleAdsService.SearchStream เพื่อดึงข้อมูล แคมเปญในบัญชี คู่มือนี้ไม่ได้กล่าวถึงรายละเอียดของการรายงาน

curl -i -X POST https://googleads.googleapis.com/v21/customers/CUSTOMER_ID/googleAds:searchStream \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer ACCESS_TOKEN" \
   -H "developer-token: DEVELOPER_TOKEN" \
   -H "login-customer-id: LOGIN_CUSTOMER_ID" \
   --data-binary "@query.json"

เนื้อหาของ query.json มีดังนี้

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}