Ads Max
了解如何使用此来源实现最高付费广告可见性。
该 google_ads 源已针对以付费广告形式检索 Google 搜索 (SERP) 和 Google AI 概览结果进行优化,显示位置为 最高广告费率。该源每页仅返回十个结果,从而确保付费结果出现的概率最高。除此之外,它支持与常规相同的参数 网页 搜索.
请求示例
在此示例中,我们向 google.nl 发出请求以检索关键字的搜索结果 adidas。
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "google_ads",
"domain": "nl",
"query": "adidas",
"parse": true
}'import requests
from pprint import pprint
# 构建负载(payload)。
payload = {
'source': 'google_ads',
'domain': 'nl',
'query': 'adidas',
'parse': True
}
# 获取响应。
response = requests.request(
'POST',
'https://realtime.oxylabs.io/v1/queries',
auth=('USERNAME', 'PASSWORD'),
json=payload,
)
# 将美化后的响应打印到标准输出。
pprint(response.json())const https = require("https");
const username = "USERNAME";
const password = "PASSWORD";
const body = {
source: "google_ads",
domain: "nl",
query: "adidas",
parse: true,
};
const options = {
hostname: "realtime.oxylabs.io",
path: "/v1/queries",
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization:
"Basic " + Buffer.from(`${username}:${password}`).toString("base64"),
},
};
const request = https.request(options, (response) => {
let data = "";
response.on("data", (chunk) => {
data += chunk;
});
response.on("end", () => {
const responseData = JSON.parse(data);
console.log(JSON.stringify(responseData, null, 2));
});
});
request.on("error", (error) => {
console.error("Error:", error);
});
request.write(JSON.stringify(body));
request.end();https://realtime.oxylabs.io/v1/queries?source=google_ads&domain=nl&query=adidas&parse=true&access_token=12345abcde<?php
$params = array(
'source' => 'google_ads',
'domain' => 'nl',
'query' => 'adidas',
'parse' => true
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "USERNAME" . ":" . "PASSWORD");
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo $result;
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
const Username = "USERNAME"
const Password = "PASSWORD"
payload := map[string]interface{}{
"source": "google_ads",
"domain": "nl",
"query": "adidas",
"parse": true,
}
jsonValue, _ := json.Marshal(payload)
client := &http.Client{}
request, _ := http.NewRequest("POST",
"https://realtime.oxylabs.io/v1/queries",
bytes.NewBuffer(jsonValue),
)
request.SetBasicAuth(Username, Password)
response, _ := client.Do(request)
responseText, _ := ioutil.ReadAll(response.Body)
fmt.Println(string(responseText))
}using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;
namespace OxyApi
{
class Program
{
static async Task Main()
{
const string Username = "USERNAME";
const string Password = "PASSWORD";
var parameters = new {
source = "google_ads",
domain = "nl",
query = "adidas",
parse = true
};
var client = new HttpClient();
Uri baseUri = new Uri("https://realtime.oxylabs.io");
client.BaseAddress = baseUri;
var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");
requestMessage.Content = JsonContent.Create(parameters);
var authenticationString = $"{Username}:{Password}";
var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.ASCIIEncoding.UTF8.GetBytes(authenticationString));
requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);
var response = await client.SendAsync(requestMessage);
var contents = await response.Content.ReadAsStringAsync();
Console.WriteLine(contents);
}
}
}package org.example;
import okhttp3.*;
import org.json.JSONObject;
import java.util.concurrent.TimeUnit;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization";
public static final String USERNAME = "USERNAME";
public static final String PASSWORD = "PASSWORD";
public void run() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("source", "google_ads");
jsonObject.put("domain", "nl");
jsonObject.put("query", "adidas");
jsonObject.put("parse", true);
Authenticator authenticator = (route, response) -> {
String credential = Credentials.basic(USERNAME, PASSWORD);
return response
.request()
.newBuilder()
.header(AUTHORIZATION_HEADER, credential)
.build();
};
var client = new OkHttpClient.Builder()
.authenticator(authenticator)
.readTimeout(180, TimeUnit.SECONDS)
.build();
var mediaType = MediaType.parse("application/json; charset=utf-8");
var body = RequestBody.create(jsonObject.toString(), mediaType);
var request = new Request.Builder()
.url("https://realtime.oxylabs.io/v1/queries")
.post(body)
.build();
try (var response = client.newCall(request).execute()) {
if (response.body() != null) {
try (var responseBody = response.body()) {
System.out.println(responseBody.string());
}
}
} catch (Exception exception) {
System.out.println("Error: " + exception.getMessage());
}
System.exit(0);
}
public static void main(String[] args) {
new Thread(new Main()).start();
}
}{
"source": "google_ads",
"domain": "nl",
"query": "adidas",
"parse": true
}在我们的示例中,我们使用同步的 Realtime 集成方法。如果您想使用 Proxy Endpoint 或异步的 Push-Pull 集成,请参阅 集成方法 部分。
请求参数值
通用
用于抓取 Google 广告的基本设置和自定义选项。
- 必填参数
本地化
将搜索结果适配到特定的地理位置、域和语言。
分页
用于管理分页和检索搜索结果的控制项。
start_page
起始页码。
1
pages
要检索的页数。
1
过滤
根据各种条件筛选和细化搜索结果的选项。
其他
用于专门需求的附加高级设置和控制。
context:
nfpr
true 将关闭拼写自动更正
false
上下文参数
所有上下文参数应作为对象添加到 context 数组中,包含 key 和 value 键值对,例如:
...
"context": [
{
"key": "filter",
"value": "0"
}
]
...输出示例
输出字典
google_ads 输出包含 URL、页面、结果等字段。下表详细列出我们解析的每个 Google Ads Max 元素,包括描述、数据类型和相关元数据。
url
Google 搜索结果页面的 URL。
字符串
page
页码。
整数
results
包含所有搜索结果类型的对象。
对象
results.paid
包含标题、描述、URL 及站点链接等详细信息的付费广告结果列表。
数组
results.organic
包含标题、描述、URL 及站点链接等的自然(非付费)搜索结果列表。
数组
results.images
搜索页面上显示的图片轮播结果。
对象
results.knowledge
知识图谱面板数据,包括标题、描述、图片、事实点和相关搜索。
对象
results.navigation
用于在搜索类型之间切换的导航选项卡(图片、视频、新闻等)。
数组
results.instant_answers
页面上显示的特殊功能或即时答案框。
数组
results.related_searches
包含建议查询及其位置信息的相关搜索建议。
对象
results.search_information
关于搜索的元数据,包括查询和总结果数。
对象
results.total_results_count
对该查询估计的结果总数。
整数
parse_status_code
解析操作的状态码。
整数
created_at
抓取任务创建的时间戳。
时间戳
updated_at
抓取任务完成的时间戳。
时间戳
job_id
与抓取任务关联的作业 ID。
字符串
最后更新于
这有帮助吗?

