ไลบรารีของไคลเอ็นต์ Google Ads API มีการตั้งค่าการกำหนดค่าหลายอย่างที่คุณใช้เพื่อปรับแต่งลักษณะการทำงานของไลบรารีได้
กำหนดค่าไลบรารีที่รันไทม์
วิธีที่แนะนำในการกำหนดค่าไลบรารีของไคลเอ็นต์คือการเริ่มต้นออบเจ็กต์
GoogleAdsConfig ที่รันไทม์
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_CLIENT_ID.apps.googleusercontent.com",
OAuth2ClientSecret = "INSERT_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN"
};
GoogleAdsClient client = new GoogleAdsClient(config);
ตัวเลือกการกำหนดค่าอื่น
นอกจากนี้ ไลบรารียังมีตัวเลือกเพิ่มเติมในการโหลดการตั้งค่าการกำหนดค่าด้วย หากต้องการเปิดใช้ ให้เพิ่มการอ้างอิง NuGet ไปยังGoogle.Ads.GoogleAds.Extensionsแพ็กเกจในโปรเจ็กต์
หากคุณใช้ตัวเลือกใดตัวเลือกหนึ่งเหล่านี้ ระบบจะไม่เลือกการตั้งค่าการกำหนดค่าโดยอัตโนมัติ คุณต้องโหลดการตั้งค่าอย่างชัดเจนตามที่แสดงในส่วนต่อไปนี้ โปรดตรวจสอบว่าได้จัดการข้อยกเว้นของ I/O ของไฟล์ (เช่น
FileNotFoundException หรือ UnauthorizedAccessException) เมื่อโหลดการตั้งค่า
จากไฟล์หรือสตรีมภายนอก
ใช้ App.config
การตั้งค่าทั้งหมดที่เฉพาะเจาะจงสำหรับ Google Ads API จะจัดเก็บไว้ในโหนด GoogleAdsApi
ของไฟล์ App.config การกำหนดค่าทั่วไป App.config มีดังนี้
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="GoogleAdsApi"
type="System.Configuration.DictionarySectionHandler" />
</configSections>
<GoogleAdsApi>
<!-- Set the service timeout in milliseconds. -->
<add key="Timeout" value="2000" />
<!-- Proxy settings for library. -->
<add key="ProxyServer" value="http://localhost:8888" />
<add key="ProxyUser" value="" />
<add key="ProxyPassword" value="" />
<add key="ProxyDomain" value="" />
<!-- OAuth2 settings -->
<add key="OAuth2Mode" value="APPLICATION" />
<add key="OAuth2ClientId"
value="INSERT_CLIENT_ID.apps.googleusercontent.com" />
<add key="OAuth2ClientSecret" value="INSERT_CLIENT_SECRET" />
<add key="OAuth2RefreshToken" value="INSERT_REFRESH_TOKEN" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
หากต้องการโหลดการตั้งค่าการกำหนดค่าจากไฟล์ App.config ให้เรียกใช้เมธอด
LoadFromDefaultAppConfigSection ในออบเจ็กต์ GoogleAdsConfig
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
ระบุไฟล์ App.config แยกต่างหาก
หากไม่ต้องการให้ App.config รก คุณสามารถย้ายการกำหนดค่าเฉพาะไลบรารีไปยังไฟล์การกำหนดค่าของตัวเองได้โดยใช้พร็อพเพอร์ตี้ configSource
ระบุ
configSourceในApp.configแก้ไขApp.configเพื่ออ้างอิงไฟล์การกำหนดค่าภายนอก<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" /> </configSections> <GoogleAdsApi configSource="GoogleAdsApi.config" /> </configuration>ระบุเนื้อหาของไฟล์การกำหนดค่า สร้างไฟล์การกำหนดค่าอีกไฟล์หนึ่งโดยใช้ชื่อที่คุณระบุใน
configSource(GoogleAdsApi.config) แล้วย้ายโหนดการกำหนดค่าGoogleAdsApiจากApp.configไปยังไฟล์นี้<?xml version="1.0" encoding="utf-8" ?> <GoogleAdsApi> <!-- More settings. --> </GoogleAdsApi>อัปเดตกฎการสร้างใน
.csprojรวมไฟล์การกำหนดค่าใหม่ ไว้ในโปรเจ็กต์และตั้งค่าพร็อพเพอร์ตี้คัดลอกไปยังไดเรกทอรีเอาต์พุตเป็น คัดลอกเสมอ สร้างและเรียกใช้โปรเจ็กต์เพื่อให้แอปพลิเคชันรับค่าจากไฟล์กำหนดค่าใหม่
ใช้ไฟล์ JSON ที่กำหนดเอง
คุณสามารถใช้อินสแตนซ์ IConfigurationRoot เพื่อกำหนดค่า
ไลบรารีของไคลเอ็นต์ได้
สร้างไฟล์ JSON
สร้างไฟล์ JSON ชื่อ GoogleAdsApi.json ที่มีโครงสร้างคล้ายกับไฟล์
App.config
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
โหลดการกำหนดค่า
จากนั้นโหลดไฟล์ JSON ลงใน IConfigurationRoot ดังนี้
ConfigurationBuilder builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);
ใช้ settings.json
กระบวนการที่นี่คล้ายกับการใช้ไฟล์ JSON ที่กำหนดเอง ยกเว้นว่าคีย์
ควรอยู่ในส่วนที่ชื่อ GoogleAdsApi
{
"GoogleAdsApi": {
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
จากนั้นดึงส่วน GoogleAdsApi จากอินสแตนซ์ IConfiguration ของแอปพลิเคชัน (เช่น ที่ ASP.NET Core แทรก หรือสร้างด้วย ConfigurationBuilder)
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
หรือจะโหลดไฟล์ settings.json โดยตรงตามเส้นทางด้วย
config.LoadFromSettingsJson(filePath, "GoogleAdsApi") หรือจากตัวแปรสภาพแวดล้อม
GOOGLE_ADS_CONFIGURATION_FILE_PATH
(EnvironmentVariableNames.CONFIG_FILE_PATH) โดยใช้
config.TryLoadFromEnvironmentFilePath ก็ได้
ใช้ตัวแปรสภาพแวดล้อม
คุณยังเริ่มต้น GoogleAdsClient โดยใช้ตัวแปรสภาพแวดล้อมได้ด้วย
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
ดูรายการตัวแปรสภาพแวดล้อมที่รองรับทั้งหมด
ใช้สตรีมทั่วไป
นอกจากนี้ คุณยังโหลดการกำหนดค่าหรือบางส่วนของการกำหนดค่าจากสตรีมทั่วไปได้ด้วย รวมถึงสตรีมที่เข้ารหัสด้วย
GoogleAdsConfig config = new GoogleAdsConfig()
{
// Set some configuration properties in code.
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file and dispose of the streams properly.
using (CryptoStream strm = GetEncryptedCredentialsStream())
using (StreamReader rdr = new StreamReader(strm))
{
// Configure the OAuth credentials from the encrypted stream.
config.LoadOAuth2SecretsFromStream(rdr);
}
GoogleAdsClient client = new GoogleAdsClient(config);
ฟิลด์การกำหนดค่า
ส่วนต่อไปนี้แสดงรายการการตั้งค่าที่ไลบรารี .NET ของ Google Ads รองรับ
การตั้งค่าการเชื่อมต่อ
Timeout: ใช้คีย์นี้เพื่อตั้งค่าการหมดเวลาของบริการเป็นมิลลิวินาที ค่าเริ่มต้นจะตั้งค่าตามmethod_config/timeoutในการตั้งค่าในgoogleads_grpc_service_config.jsonตั้งค่าให้ต่ำลงหาก คุณต้องการบังคับใช้ขีดจำกัดที่สั้นลงสำหรับเวลาสูงสุดในการเรียก API คุณตั้งค่าการหมดเวลาเป็น 2 ชั่วโมงขึ้นไปได้ แต่ API อาจยังคงหมดเวลา สำหรับคำขอที่ใช้เวลานานมากและแสดงข้อผิดพลาดDEADLINE_EXCEEDEDProxyServer: ตั้งค่านี้เป็น URL ของพร็อกซีเซิร์ฟเวอร์ HTTP หากคุณใช้พร็อกซีเพื่อเชื่อมต่ออินเทอร์เน็ตProxyUser: ตั้งค่านี้เป็นชื่อผู้ใช้ที่คุณต้องใช้เพื่อตรวจสอบสิทธิ์กับ พร็อกซีเซิร์ฟเวอร์ เว้นว่างไว้หากไม่จำเป็นต้องใช้ชื่อผู้ใช้ProxyPassword: ตั้งค่านี้เป็นรหัสผ่านของProxyUserหากคุณตั้งค่าสำหรับProxyUserProxyDomain: ตั้งค่านี้เป็นโดเมนสำหรับProxyUserหากพร็อกซีเซิร์ฟเวอร์ กำหนดให้ตั้งค่าMaxReceiveMessageLengthInBytes: ใช้การตั้งค่านี้เพื่อเพิ่มขนาดสูงสุด ของการตอบกลับ API ที่ไลบรารีของไคลเอ็นต์จัดการได้ ค่าเริ่มต้น คือ 64 MBMaxMetadataSizeInBytes: ใช้การตั้งค่านี้เพื่อเพิ่มขนาดสูงสุดของ การตอบกลับข้อผิดพลาดของ API ที่ไลบรารีของไคลเอ็นต์จัดการได้ ค่าเริ่มต้น คือ 16 MB
ปรับการตั้งค่า MaxReceiveMessageLengthInBytes และ MaxMetadataSizeInBytes
เพื่อแก้ไขข้อผิดพลาด ResourceExhausted บางอย่าง การตั้งค่าเหล่านี้จะแก้ไขข้อผิดพลาด
ในรูปแบบต่อไปนี้
Status(StatusCode="ResourceExhausted",Detail="Received
message larger than max (423184132 versus 67108864)"
ในตัวอย่างนี้ ข้อผิดพลาดเกิดจากขนาดข้อความ (423184132 bytes)
ใหญ่กว่าที่ไลบรารีรองรับได้ (67108864 bytes) ให้เพิ่ม
MaxReceiveMessageLengthInBytes เป็น 500000000 เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ โปรดทราบ
ว่าข้อผิดพลาดนี้ยังบ่งชี้ว่าโค้ดของคุณจัดการออบเจ็กต์การตอบกลับที่มีขนาดใหญ่มาก (เช่น SearchGoogleAdsResponse ขนาดใหญ่)
ซึ่งอาจส่งผลต่อประสิทธิภาพของโค้ดเนื่องจากกองออบเจ็กต์ขนาดใหญ่ของ .NET หากประสิทธิภาพกลายเป็นปัญหา คุณอาจต้อง
พิจารณาวิธีจัดระเบียบการเรียก API ใหม่หรือออกแบบแอปบางส่วนใหม่
การตั้งค่า OAuth2
เมื่อใช้ OAuth 2.0 เพื่อให้สิทธิ์การเรียกไปยังเซิร์ฟเวอร์ Google Ads API คุณควรตั้งค่าคีย์การกำหนดค่าต่อไปนี้
AuthorizationMethod: ตั้งค่าเป็นOAuth2OAuth2Mode: ตั้งค่าเป็นAPPLICATIONหรือSERVICE_ACCOUNTOAuth2ClientId: ตั้งค่านี้เป็นรหัสไคลเอ็นต์ OAuth 2.0OAuth2ClientSecret: ตั้งค่านี้เป็นรหัสลับไคลเอ็นต์ OAuth 2.0OAuth2Scope: ตั้งค่านี้เป็นขอบเขตอื่นหากต้องการให้สิทธิ์ โทเค็น OAuth 2.0 สำหรับ API หลายรายการ การตั้งค่านี้ไม่บังคับUseApplicationDefaultCredentials: ตั้งค่านี้เป็นtrueเพื่อตรวจสอบสิทธิ์ โดยใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน (รองรับในGoogle.Ads.GoogleAdsv24.1.0ขึ้นไปconfig.LoadFromEnvironmentVariables()จะอ่าน ตัวแปรสภาพแวดล้อมUSE_APPLICATION_DEFAULT_CREDENTIALSที่ไม่มีคำนำหน้า)Credentials: (รันไทม์เท่านั้น รองรับในv27.0.0ขึ้นไป) แทรกอินสแตนซ์ICredentialหรือGoogleCredentialที่สร้างไว้ล่วงหน้าโดยตรงในGoogleAdsConfigที่รันไทม์
หากใช้ OAuth2Mode == APPLICATION คุณจะต้องตั้งค่าคีย์การกำหนดค่าเพิ่มเติมต่อไปนี้
OAuth2RefreshToken: ตั้งค่านี้เป็นโทเค็นเพื่อรีเฟรช OAuth 2.0 ที่สร้างไว้ล่วงหน้า หากต้องการนำโทเค็น OAuth 2.0 กลับมาใช้ซ้ำ การตั้งค่านี้ไม่บังคับOAuth2RedirectUri: ตั้งค่านี้เป็น URL เปลี่ยนเส้นทาง OAuth 2.0 คุณจะ ตั้งค่าหรือไม่ก็ได้
ดูรายละเอียดเพิ่มเติมได้ที่คำแนะนำต่อไปนี้
หากใช้ OAuth2Mode == SERVICE_ACCOUNT คุณจะต้องตั้งค่าคีย์การกำหนดค่าเพิ่มเติมต่อไปนี้
OAuth2SecretsJsonPath: ตั้งค่านี้เป็นเส้นทางของไฟล์คีย์ JSON ของ OAuth 2.0OAuth2PrnEmail: ตั้งค่านี้เป็นอีเมลของบัญชีที่คุณ แอบอ้างเมื่อใช้การมอบสิทธิ์ระดับโดเมนของ Google Workspace คุณจะ ตั้งค่าหรือไม่ก็ได้
ดูรายละเอียดเพิ่มเติมได้ที่คู่มือขั้นตอนการทำงานของบัญชีบริการ OAuth
การตั้งค่าการขนส่ง
UseGrpcCore: ตั้งค่านี้เป็นtrueเพื่อใช้ไลบรารีGrpc.Coreเป็นเลเยอร์การรับส่งพื้นฐาน ดูหัวข้อ ใช้Grpc.Coreคลัง
การตั้งค่า Google Ads API
การตั้งค่าต่อไปนี้มีไว้สำหรับ Google Ads API โดยเฉพาะ
DeveloperToken: ไม่บังคับในv27.3.0ขึ้นไป (GOOGLE_ADS_DEVELOPER_TOKEN) เราได้หยุดให้บริการโทเค็นของนักพัฒนาเมื่อวันที่ 9 กันยายน 2026 ในเซิร์ฟเวอร์ API ระดับการเข้าถึงจะกำหนดโดยโปรเจ็กต์ Google Cloud ของคุณโดยไม่คำนึงถึงเวอร์ชันไลบรารีของไคลเอ็นต์ และเซิร์ฟเวอร์ API จะไม่สนใจส่วนหัวdeveloper-token(จนกว่า Google Ads API เวอร์ชันหลักในอนาคตจะปฏิเสธ) หากต้องการละเว้นหรือนำDeveloperTokenออกจากการกำหนดค่า ให้ใช้Google.Ads.GoogleAdsv27.3.0ขึ้นไป ซึ่งนำการตรวจสอบฝั่งไคลเอ็นต์ในเครื่องของDeveloperTokenออก (เวอร์ชันก่อนหน้ากำหนดให้ต้องมีDeveloperTokenที่ไม่ว่างเปล่าสำหรับการตรวจสอบในเครื่อง)LoginCustomerId: นี่คือรหัสลูกค้าของลูกค้าที่ได้รับอนุญาตให้ใช้ในคำขอ โดยไม่มีขีดกลาง (-)LinkedCustomerId: ส่วนหัวนี้จำเป็นสำหรับเมธอดที่อัปเดต ทรัพยากรของเอนทิตีเมื่อได้รับสิทธิ์ผ่านบัญชีที่ลิงก์ใน UI ของ Google Ads (ทรัพยากรAccountLinkใน Google Ads API) เท่านั้น ตั้งค่านี้เป็น รหัสลูกค้าของผู้ให้บริการข้อมูลที่อัปเดตทรัพยากรของ รหัสลูกค้าที่ระบุ โดยควรตั้งค่าโดยไม่มีขีดกลาง (-) ดูข้อมูลเพิ่มเติมเกี่ยวกับบัญชีที่ลิงก์