تستخدم Google Ads API بروتوكول OAuth 2.0 للمصادقة والتفويض، على غرار واجهات برمجة التطبيقات الأخرى من Google. يتيح بروتوكول OAuth 2.0 لتطبيق العميل في Google Ads API الوصول إلى حساب المستخدم على "إعلانات Google" بدون الحاجة إلى معالجة معلومات تسجيل دخول المستخدم أو تخزينها.
التعرّف على نموذج الوصول إلى "إعلانات Google"
للعمل بفعالية مع Google Ads API، عليك فهم آلية عمل نموذج الوصول إلى "إعلانات Google". ننصحك بقراءة دليل نموذج الوصول إلى "إعلانات Google".
مسارات عمل OAuth
هناك ثلاثة مسارات عمل شائعة تُستخدم عند العمل مع Google Ads API.
مسار عمل حساب الخدمة
هذا هو مسار العمل المقترَح إذا كان مسار عملك لا يتطلّب أي تفاعل بشري. يتطلّب مسار العمل هذا خطوة إعداد، حيث يضيف المستخدم حساب خدمة إلى حسابه على "إعلانات Google" . يمكن للتطبيق بعد ذلك استخدام بيانات اعتماد حساب الخدمة لإدارة حساب المستخدم على "إعلانات Google". يمكن ضبط مكتبة PHP على النحو التالي:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withJsonKeyFilePath('PATH_TO_CREDENTIALS_JSON')
->withScopes('https://www.googleapis.com/auth/adwords')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->build();
يُرجى الرجوع إلى دليل مسار عمل حساب الخدمة لـ مزيد من المعلومات.
مسار عمل مصادقة مستخدم واحد
يمكن استخدام مسار العمل هذا إذا لم تتمكّن من استخدام حسابات الخدمة. يتطلّب مسار العمل هذا خطوتَي إعداد:
- منح مستخدم واحد إذن الوصول إلى جميع الحسابات التي ستتم إدارتها باستخدام Google Ads API. هناك نهج شائع يتمثل في منح المستخدم إذن الوصول إلى حساب إداري على Google Ads API، وربط جميع حسابات "إعلانات Google" ضمن هذا الحساب الإداري.
بعد ذلك، يشغّل هذا المستخدم أداة سطر أوامر، مثل
GenerateUserCredentialsللسماح لتطبيقك بإدارة جميع حساباته على "إعلانات Google" نيابةً عنه.
يمكن تهيئة المكتبة باستخدام بيانات اعتماد OAuth 2.0 الخاصة بالمستخدم على النحو التالي:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID')
->withClientSecret('INSERT_CLIENT_SECRET')
->withRefreshToken('INSERT_REFRESH_TOKEN')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
يُرجى الرجوع إلى دليل مسار عمل مصادقة مستخدم واحد
لمزيد من المعلومات.
مسار عمل مصادقة تعدد المستخدمين
هذا هو مسار العمل المقترَح إذا كان تطبيقك يسمح للمستخدمين بتسجيل الدخول والسماح لتطبيقك بإدارة حساباتهم على "إعلانات Google" نيابةً عنهم. ينشئ تطبيقك بيانات اعتماد مستخدم OAuth 2.0 ويديرها. يمكن تهيئة المكتبة باستخدام بيانات اعتماد المستخدم على النحو التالي:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID')
->withClientSecret('INSERT_CLIENT_SECRET')
->withRefreshToken('INSERT_REFRESH_TOKEN')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
يُرجى الرجوع إلى دليل مسار عمل مصادقة تعدد المستخدمين
لمزيد من المعلومات.
ماذا لو كان المستخدم يدير حسابات متعددة؟
من الشائع أن يدير المستخدم أكثر من حساب على "إعلانات Google"، إما من خلال الوصول المباشر إلى الحسابات أو من خلال حساب إداري على "إعلانات Google". تقدّم مكتبة عملاء PHP نماذج الرموز البرمجية التالية التي توضّح كيفية التعامل مع هذه الحالات.
يعرض نموذج الرمز البرمجي GetAccountHierarchy
كيفية استرداد قائمة بجميع الحسابات ضمن حساب إداري على "إعلانات Google".
يعرض نموذج الرمز البرمجي ListAccessibleCustomers
كيفية استرداد قائمة بجميع الحسابات التي يمكن للمستخدم الوصول إليها مباشرةً. يمكن بعد ذلك استخدام هذه الحسابات كقيم صالحة لإعداد
loginCustomerId.