ไลบรารีของไคลเอ็นต์ Google Ads API มีการตั้งค่าการกำหนดค่าหลายอย่างที่คุณใช้เพื่อปรับแต่งลักษณะการทำงานของไลบรารีได้
กำหนดค่าไลบรารีที่รันไทม์
วิธีที่แนะนำในการกำหนดค่าไลบรารีของไคลเอ็นต์คือการเริ่มต้นออบเจ็กต์
GoogleAdsConfig ที่รันไทม์
GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
ตัวเลือกการกำหนดค่าอื่น
นอกจากนี้ เรายังมีตัวเลือกเพิ่มเติมในการกำหนดค่าไลบรารีของไคลเอ็นต์ด้วย โดยหากต้องการเปิดใช้ ให้เพิ่มการอ้างอิง Nuget ไปยังGoogle.Ads.GoogleAds.Extensions
แพ็กเกจในโปรเจ็กต์
หากใช้ตัวเลือกใดตัวเลือกหนึ่งเหล่านี้ ระบบจะไม่เลือกการตั้งค่าการกำหนดค่าโดยอัตโนมัติ คุณควรโหลดการตั้งค่าอย่างชัดเจนตามที่แสดงด้านล่าง
ใช้ 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=""/>
    <!-- API-specific settings -->
    <add key="DeveloperToken" value="******"/>
    <!-- OAuth2 settings -->
    <add key = "OAuth2Mode" value="APPLICATION"/>
    <add key = "OAuth2ClientId" value = "******.apps.googleusercontent.com" />
    <add key = "OAuth2ClientSecret" value = "******" />
    <add key = "OAuth2RefreshToken" value = "******" />
  </GoogleAdsApi>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>
หากต้องการโหลดการตั้งค่าการกำหนดค่าจากไฟล์ App.config ให้เรียกใช้เมธอด
LoadFromDefaultAppConfigSection ในออบเจ็กต์ GoogleAdsConfig
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
ระบุไฟล์ App.config แยกต่างหาก
หากไม่ต้องการให้ App.config รก คุณสามารถย้ายการกำหนดค่าเฉพาะไลบรารีไปยังไฟล์กำหนดค่าของตัวเองได้โดยใช้พร็อพเพอร์ตี้ configSource
ขั้นตอนที่ 1: ระบุ 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>
ขั้นตอนที่ 2: ระบุเนื้อหาของไฟล์การกำหนดค่า
ตอนนี้ให้สร้างไฟล์การกำหนดค่าอีกไฟล์หนึ่งโดยใช้ชื่อที่คุณระบุใน configSource
และย้ายโหนดการกำหนดค่าจาก App.config ไปยังไฟล์นี้
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
  ... More settings.
</GoogleAdsApi>
ขั้นตอนที่ 3: แก้ไขกฎการสร้างใน csproj
สุดท้าย ให้รวมไฟล์การกำหนดค่าใหม่ไว้ในโปรเจ็กต์ เปลี่ยนพร็อพเพอร์ตี้ ของไฟล์นี้เป็นคัดลอกไปยังโฟลเดอร์เอาต์พุตเสมอ
ตอนนี้ให้สร้างและเรียกใช้โปรเจ็กต์ แอปพลิเคชันจะเริ่มรับค่า จากไฟล์การกำหนดค่าใหม่
ใช้ไฟล์ JSON ที่กำหนดเอง
คุณสามารถใช้
IConfigurationRoot
อินสแตนซ์เพื่อกำหนดค่าไลบรารีของไคลเอ็นต์ได้
สร้างไฟล์ JSON
สร้างไฟล์ JSON ชื่อ GoogleAdsApi.json ที่มีโครงสร้างคล้ายกับไฟล์
App.config
{
    "Timeout": "2000",
    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",
    "DeveloperToken": "******",
    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}
โหลดการกำหนดค่า
จากนั้นโหลดไฟล์ 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":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}
จากนั้นคุณจะใช้อินสแตนซ์ IConfiguration ในหน้าเว็บได้โดยทำดังนี้
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
ใช้ตัวแปรสภาพแวดล้อม
คุณยังเริ่มต้น GoogleAdsClient โดยใช้ตัวแปรสภาพแวดล้อมได้ด้วย
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
ดูรายการตัวแปรสภาพแวดล้อมทั้งหมดที่รองรับ
ใช้สตรีมทั่วไป
นอกจากนี้ คุณยังโหลดการกำหนดค่าหรือบางส่วนของการกำหนดค่าจากสตรีมทั่วไปได้ด้วย รวมถึงสตรีมที่เข้ารหัสด้วย
GoogleAdsConfig config = new GoogleAdsConfig()
{
  //Set some configuration properties in code.
  DeveloperToken = "******",
  OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file.
CryptoStream strm = ....
StreamReader rdr = new StreamReader(strm);
// Configure the OAuth credentials from the encrypted file.
config.LoadOAuth2SecretsFromStream(rdr);
GoogleAdsClient client = new GoogleAdsClient(config);
ฟิลด์การกำหนดค่า
ต่อไปนี้คือรายการการตั้งค่าที่ไลบรารี .NET ของ Google Ads รองรับ
การตั้งค่าการเชื่อมต่อ
- Timeout: ใช้คีย์นี้เพื่อตั้งค่าการหมดเวลาของบริการเป็นมิลลิวินาที ค่าเริ่มต้นจะตั้งค่าตามการตั้งค่า- method_config/timeoutใน googleads_grpc_service_config.json ตั้งค่าให้ต่ำลงหากต้องการบังคับใช้ขีดจำกัดที่สั้นลงสำหรับเวลาสูงสุด ในการเรียก API คุณตั้งค่าการหมดเวลาเป็น 2 ชั่วโมงขึ้นไปได้ แต่ API อาจยังคงหมดเวลาสำหรับคำขอที่ใช้เวลานานมากและแสดงข้อผิดพลาด- DEADLINE_EXCEEDED
- ProxyServer: ตั้งค่านี้เป็น URL ของพร็อกซีเซิร์ฟเวอร์ HTTP หากคุณใช้พร็อกซีเพื่อเชื่อมต่อกับอินเทอร์เน็ต
- ProxyUser: ตั้งค่านี้เป็นชื่อผู้ใช้ที่คุณต้องใช้เพื่อตรวจสอบสิทธิ์กับพร็อกซีเซิร์ฟเวอร์ ปล่อยให้ว่างไว้หากไม่จำเป็นต้องใช้ชื่อผู้ใช้
- ProxyPassword: ตั้งค่านี้เป็นรหัสผ่านของ- ProxyUserหากคุณตั้งค่าสำหรับ- ProxyUser
- ProxyDomain: ตั้งค่านี้เป็นโดเมนสำหรับ- ProxyUserหากพร็อกซีเซิร์ฟเวอร์ กำหนดให้ต้องตั้งค่า
- MaxReceiveMessageLengthInBytes: ใช้การตั้งค่านี้เพื่อเพิ่มขนาดสูงสุดของคำตอบ API ที่ไลบรารีของไคลเอ็นต์จัดการได้ ค่าเริ่มต้นคือ 64 MB
- MaxMetadataSizeInBytes: ใช้การตั้งค่านี้เพื่อเพิ่มขนาดสูงสุด ของการตอบกลับข้อผิดพลาดของ 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
เมื่อใช้ OAuth2 เพื่อให้สิทธิ์การเรียกไปยังเซิร์ฟเวอร์ Google Ads API คุณควรตั้งค่าคีย์การกำหนดค่าต่อไปนี้
- AuthorizationMethod: ตั้งค่าเป็น- OAuth2
- OAuth2Mode: ตั้งค่าเป็น- APPLICATIONหรือ- SERVICE_ACCOUNT
- OAuth2ClientId: ตั้งค่านี้เป็นรหัสไคลเอ็นต์ OAuth2
- OAuth2ClientSecret: ตั้งค่านี้เป็นรหัสลับไคลเอ็นต์ OAuth2
- OAuth2Scope: ตั้งค่านี้เป็นขอบเขตอื่นหากต้องการให้สิทธิ์ โทเค็น OAuth2 สำหรับ API หลายรายการ การตั้งค่านี้จะระบุหรือไม่ก็ได้
หากใช้ OAuth2Mode == APPLICATION คุณจะต้องตั้งค่าคีย์การกำหนดค่าเพิ่มเติมต่อไปนี้
- OAuth2RefreshToken: ตั้งค่านี้เป็นโทเค็นการรีเฟรช OAuth2 ที่สร้างไว้ล่วงหน้า หากต้องการนำโทเค็น OAuth2 กลับมาใช้ซ้ำ การตั้งค่านี้จะระบุหรือไม่ก็ได้
- OAuth2RedirectUri: ตั้งค่านี้เป็น URL เปลี่ยนเส้นทาง OAuth2 การตั้งค่านี้ ไม่บังคับ
ดูรายละเอียดเพิ่มเติมได้ในคู่มือต่อไปนี้
หากใช้ OAuth2Mode == SERVICE_ACCOUNT คุณจะต้องตั้งค่าคีย์การกำหนดค่าเพิ่มเติมต่อไปนี้
- OAuth2PrnEmail: ตั้งค่านี้เป็นอีเมลของบัญชีที่คุณ แอบอ้าง
- OAuth2SecretsJsonPath: ตั้งค่านี้เป็นเส้นทางไฟล์การกำหนดค่า JSON ของ OAuth2
ดูรายละเอียดเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับขั้นตอนบัญชีบริการ OAuth
การตั้งค่าการเดินทาง
- UseGrpcCore: ตั้งค่านี้เป็น- trueเพื่อใช้ไลบรารี- Grpc.Coreเป็นเลเยอร์การรับส่งข้อมูลพื้นฐาน ดูหัวข้อ ใช้ไลบรารี Grpc รุ่นเดิม
การตั้งค่า Google Ads API
การตั้งค่าต่อไปนี้มีไว้สำหรับ Google Ads API โดยเฉพาะ
- DeveloperToken: ตั้งค่านี้เป็นโทเค็นนักพัฒนาซอฟต์แวร์
- LoginCustomerId: นี่คือรหัสลูกค้าของลูกค้าที่ได้รับอนุญาตให้ใช้ ในคำขอ โดยไม่มีขีดกลาง (- -)
- LinkedCustomerId: ส่วนหัวนี้จำเป็นสำหรับเมธอดที่อัปเดต ทรัพยากรของเอนทิตีเมื่อได้รับสิทธิ์ผ่านบัญชีที่ลิงก์ใน UI ของ Google Ads (ทรัพยากร- AccountLinkใน Google Ads API) เท่านั้น ตั้งค่านี้เป็น รหัสลูกค้าของผู้ให้บริการข้อมูลที่อัปเดตทรัพยากรของ รหัสลูกค้าที่ระบุ โดยควรตั้งค่าโดยไม่มีขีดกลาง (- -) ดูข้อมูลเพิ่มเติมเกี่ยวกับบัญชีที่ลิงก์